diff options
633 files changed, 21363 insertions, 9341 deletions
diff --git a/AconfigFlags.bp b/AconfigFlags.bp index 3a772e1b43a8..44f3d706a0d0 100644 --- a/AconfigFlags.bp +++ b/AconfigFlags.bp @@ -62,6 +62,7 @@ aconfig_srcjars = [ ":surfaceflinger_flags_java_lib{.generated_srcjars}", ":android.view.contentcapture.flags-aconfig-java{.generated_srcjars}", ":android.hardware.usb.flags-aconfig-java{.generated_srcjars}", + ":android.tracing.flags-aconfig-java{.generated_srcjars}", ] filegroup { @@ -415,6 +416,7 @@ java_aconfig_library { defaults: ["framework-minus-apex-aconfig-java-defaults"], min_sdk_version: "30", apex_available: [ + "//apex_available:platform", "com.android.permission", ], @@ -695,3 +697,16 @@ java_aconfig_library { aconfig_declarations: "android.hardware.usb.flags-aconfig", defaults: ["framework-minus-apex-aconfig-java-defaults"], } + +// WindowingTools +aconfig_declarations { + name: "android.tracing.flags-aconfig", + package: "android.tracing", + srcs: ["core/java/android/tracing/flags.aconfig"], +} + +java_aconfig_library { + name: "android.tracing.flags-aconfig-java", + aconfig_declarations: "android.tracing.flags-aconfig", + defaults: ["framework-minus-apex-aconfig-java-defaults"], +} diff --git a/Android.bp b/Android.bp index 49386d44ede3..895ef98c5537 100644 --- a/Android.bp +++ b/Android.bp @@ -399,6 +399,7 @@ java_defaults { "soundtrigger_middleware-aidl-java", "modules-utils-binary-xml", "modules-utils-build", + "modules-utils-fastxmlserializer", "modules-utils-preconditions", "modules-utils-statemachine", "modules-utils-synchronous-result-receiver", diff --git a/Ravenwood.bp b/Ravenwood.bp index 1582266203c6..2f6709090093 100644 --- a/Ravenwood.bp +++ b/Ravenwood.bp @@ -30,7 +30,7 @@ java_genrule { name: "framework-minus-apex.ravenwood-base", tools: ["hoststubgen"], cmd: "$(location hoststubgen) " + - "@$(location :ravenwood-standard-options) " + + "@$(location ravenwood/ravenwood-standard-options.txt) " + "--out-stub-jar $(location ravenwood_stub.jar) " + "--out-impl-jar $(location ravenwood.jar) " + @@ -39,11 +39,13 @@ java_genrule { "--gen-input-dump-file $(location hoststubgen_dump.txt) " + "--in-jar $(location :framework-minus-apex-for-hoststubgen) " + - "--policy-override-file $(location framework-minus-apex-ravenwood-policies.txt) ", + "--policy-override-file $(location ravenwood/framework-minus-apex-ravenwood-policies.txt) " + + "--annotation-allowed-classes-file $(location ravenwood/ravenwood-annotation-allowed-classes.txt) ", srcs: [ ":framework-minus-apex-for-hoststubgen", - "framework-minus-apex-ravenwood-policies.txt", - ":ravenwood-standard-options", + "ravenwood/framework-minus-apex-ravenwood-policies.txt", + "ravenwood/ravenwood-standard-options.txt", + "ravenwood/ravenwood-annotation-allowed-classes.txt", ], out: [ "ravenwood.jar", @@ -77,10 +79,17 @@ android_ravenwood_libgroup { "framework-minus-apex.ravenwood", "hoststubgen-helper-runtime.ravenwood", "hoststubgen-helper-framework-runtime.ravenwood", + "junit", + "truth", + "ravenwood-junit", ], } android_ravenwood_libgroup { name: "ravenwood-utils", - libs: [], + libs: [ + "junit", + "truth", + "ravenwood-junit", + ], } diff --git a/TEST_MAPPING b/TEST_MAPPING index b215ee4e2537..3409838b5611 100644 --- a/TEST_MAPPING +++ b/TEST_MAPPING @@ -128,6 +128,17 @@ ] } ], + "postsubmit-ravenwood": [ + // TODO(ravenwood) promote it to presubmit + // TODO: Enable it once the infra knows how to run it. +// { +// "name": "CtsUtilTestCasesRavenwood", +// "file_patterns": [ +// "*Ravenwood*", +// "*ravenwood*" +// ] +// } + ], "postsubmit-managedprofile-stress": [ { "name": "ManagedProfileLifecycleStressTest" diff --git a/apex/blobstore/service/java/com/android/server/blob/BlobMetadata.java b/apex/blobstore/service/java/com/android/server/blob/BlobMetadata.java index 849432653bb3..4a0d57f55086 100644 --- a/apex/blobstore/service/java/com/android/server/blob/BlobMetadata.java +++ b/apex/blobstore/service/java/com/android/server/blob/BlobMetadata.java @@ -536,7 +536,7 @@ class BlobMetadata { private ParcelFileDescriptor createRevocableFd(FileDescriptor fd, String callingPackage, int callingUid) throws IOException { final RevocableFileDescriptor revocableFd = - new RevocableFileDescriptor(mContext, fd); + new RevocableFileDescriptor(mContext, fd, BlobStoreUtils.getRevocableFdHandler()); final Accessor accessor; synchronized (mRevocableFds) { accessor = new Accessor(callingPackage, callingUid); diff --git a/apex/blobstore/service/java/com/android/server/blob/BlobStoreSession.java b/apex/blobstore/service/java/com/android/server/blob/BlobStoreSession.java index 8eef8cebec3f..ede29ec168c0 100644 --- a/apex/blobstore/service/java/com/android/server/blob/BlobStoreSession.java +++ b/apex/blobstore/service/java/com/android/server/blob/BlobStoreSession.java @@ -223,7 +223,8 @@ class BlobStoreSession extends IBlobStoreSession.Stub { FileDescriptor fd = null; try { fd = openWriteInternal(offsetBytes, lengthBytes); - final RevocableFileDescriptor revocableFd = new RevocableFileDescriptor(mContext, fd); + final RevocableFileDescriptor revocableFd = new RevocableFileDescriptor(mContext, fd, + BlobStoreUtils.getRevocableFdHandler()); synchronized (mSessionLock) { if (mState != STATE_OPENED) { IoUtils.closeQuietly(fd); diff --git a/apex/blobstore/service/java/com/android/server/blob/BlobStoreUtils.java b/apex/blobstore/service/java/com/android/server/blob/BlobStoreUtils.java index 8f9427303dff..a4eae014bacd 100644 --- a/apex/blobstore/service/java/com/android/server/blob/BlobStoreUtils.java +++ b/apex/blobstore/service/java/com/android/server/blob/BlobStoreUtils.java @@ -24,6 +24,8 @@ import android.annotation.Nullable; import android.content.Context; import android.content.pm.PackageManager; import android.content.res.Resources; +import android.os.Handler; +import android.os.HandlerThread; import android.os.UserHandle; import android.text.format.TimeMigrationUtils; import android.util.Slog; @@ -63,4 +65,27 @@ class BlobStoreUtils { static String formatTime(long timeMs) { return TimeMigrationUtils.formatMillisWithFixedFormat(timeMs); } + + private static Handler sRevocableFdHandler; + private static final Object sLock = new Object(); + + // By default, when using a RevocableFileDescriptor, callbacks will be sent to the process' + // main looper. In this case that would be system_server's main looper, which is a heavily + // contended thread. It can also cause deadlocks, because the volume daemon 'vold' holds a lock + // while making these callbacks to the system_server, while at the same time the system_server + // main thread can make a call into vold, which requires that same vold lock. To avoid these + // issues, use a separate thread for the RevocableFileDescriptor's requests, so that it can + // make progress independently of system_server. + static @NonNull Handler getRevocableFdHandler() { + synchronized (sLock) { + if (sRevocableFdHandler != null) { + return sRevocableFdHandler; + } + final HandlerThread t = new HandlerThread("BlobFuseLooper"); + t.start(); + sRevocableFdHandler = new Handler(t.getLooper()); + + return sRevocableFdHandler; + } + } } diff --git a/apex/jobscheduler/service/Android.bp b/apex/jobscheduler/service/Android.bp index 887f7fe3a0e2..6c83add3b8e3 100644 --- a/apex/jobscheduler/service/Android.bp +++ b/apex/jobscheduler/service/Android.bp @@ -30,6 +30,10 @@ java_library { "unsupportedappusage", ], + static_libs: [ + "modules-utils-fastxmlserializer", + ], + // Rename classes shared with the framework jarjar_rules: "jarjar-rules.txt", diff --git a/apex/jobscheduler/service/java/com/android/server/AppStateTrackerImpl.java b/apex/jobscheduler/service/java/com/android/server/AppStateTrackerImpl.java index 5fc77451e832..e08200b055d8 100644 --- a/apex/jobscheduler/service/java/com/android/server/AppStateTrackerImpl.java +++ b/apex/jobscheduler/service/java/com/android/server/AppStateTrackerImpl.java @@ -23,7 +23,6 @@ import android.app.AppOpsManager; import android.app.AppOpsManager.PackageOps; import android.app.IActivityManager; import android.app.usage.UsageStatsManager; -import android.content.AttributionSource; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; @@ -747,10 +746,8 @@ public class AppStateTrackerImpl implements AppStateTracker { public void opChanged(int op, int uid, String packageName) throws RemoteException { boolean restricted = false; try { - final AttributionSource attributionSource = - new AttributionSource.Builder(uid).setPackageName(packageName).build(); - restricted = mAppOpsService.checkOperationWithState(TARGET_OP, - attributionSource.asState()) != AppOpsManager.MODE_ALLOWED; + restricted = mAppOpsService.checkOperation(TARGET_OP, + uid, packageName) != AppOpsManager.MODE_ALLOWED; } catch (RemoteException e) { // Shouldn't happen } diff --git a/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java index bff43534ce05..07475b4f2136 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java +++ b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java @@ -998,6 +998,7 @@ public class JobSchedulerService extends com.android.server.SystemService DEFAULT_SYSTEM_STOP_TO_FAILURE_RATIO); } + // TODO(141645789): move into ConnectivityController.CcConfig private void updateConnectivityConstantsLocked() { CONN_CONGESTION_DELAY_FRAC = DeviceConfig.getFloat(DeviceConfig.NAMESPACE_JOB_SCHEDULER, KEY_CONN_CONGESTION_DELAY_FRAC, diff --git a/apex/jobscheduler/service/java/com/android/server/job/controllers/ConnectivityController.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/ConnectivityController.java index ae4e99cfeef3..0cf0cc5dcd22 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/controllers/ConnectivityController.java +++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/ConnectivityController.java @@ -19,6 +19,9 @@ package com.android.server.job.controllers; import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_CONGESTED; import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_METERED; import static android.net.NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED; +import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR; +import static android.net.NetworkCapabilities.TRANSPORT_ETHERNET; +import static android.net.NetworkCapabilities.TRANSPORT_WIFI; import static com.android.server.job.JobSchedulerService.RESTRICTED_INDEX; import static com.android.server.job.JobSchedulerService.sElapsedRealtimeClock; @@ -29,6 +32,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.app.ActivityManager; import android.app.job.JobInfo; +import android.content.pm.PackageManager; import android.net.ConnectivityManager; import android.net.ConnectivityManager.NetworkCallback; import android.net.INetworkPolicyListener; @@ -40,6 +44,7 @@ import android.os.Handler; import android.os.Looper; import android.os.Message; import android.os.UserHandle; +import android.provider.DeviceConfig; import android.telephony.CellSignalStrength; import android.telephony.SignalStrength; import android.telephony.TelephonyCallback; @@ -53,6 +58,7 @@ import android.util.Pools; import android.util.Slog; import android.util.SparseArray; import android.util.SparseBooleanArray; +import android.util.SparseIntArray; import android.util.TimeUtils; import android.util.proto.ProtoOutputStream; @@ -117,6 +123,26 @@ public final class ConnectivityController extends RestrictingController implemen | ConnectivityManager.BLOCKED_METERED_REASON_DATA_SAVER | ConnectivityManager.BLOCKED_METERED_REASON_USER_RESTRICTED); + @VisibleForTesting + static final int TRANSPORT_AFFINITY_UNDEFINED = 0; + @VisibleForTesting + static final int TRANSPORT_AFFINITY_PREFER = 1; + @VisibleForTesting + static final int TRANSPORT_AFFINITY_AVOID = 2; + /** + * Set of affinities to different network transports. If a given network has multiple + * transports, the avoided ones take priority --- a network with an avoided transport + * should be avoided if possible, even if the network has preferred transports as well. + */ + @VisibleForTesting + static final SparseIntArray sNetworkTransportAffinities = new SparseIntArray(); + static { + sNetworkTransportAffinities.put(TRANSPORT_CELLULAR, TRANSPORT_AFFINITY_AVOID); + sNetworkTransportAffinities.put(TRANSPORT_WIFI, TRANSPORT_AFFINITY_PREFER); + sNetworkTransportAffinities.put(TRANSPORT_ETHERNET, TRANSPORT_AFFINITY_PREFER); + } + + private final CcConfig mCcConfig; private final ConnectivityManager mConnManager; private final NetworkPolicyManager mNetPolicyManager; private final NetworkPolicyManagerInternal mNetPolicyManagerInternal; @@ -138,7 +164,7 @@ public final class ConnectivityController extends RestrictingController implemen * latest capabilities to avoid unnecessary calls into ConnectivityManager. */ @GuardedBy("mLock") - private final ArrayMap<Network, NetworkCapabilities> mAvailableNetworks = new ArrayMap<>(); + private final ArrayMap<Network, CachedNetworkMetadata> mAvailableNetworks = new ArrayMap<>(); private final SparseArray<UidDefaultNetworkCallback> mCurrentDefaultNetworkCallbacks = new SparseArray<>(); @@ -267,6 +293,7 @@ public final class ConnectivityController extends RestrictingController implemen @NonNull FlexibilityController flexibilityController) { super(service); mHandler = new CcHandler(AppSchedulingModuleThread.get().getLooper()); + mCcConfig = new CcConfig(); mConnManager = mContext.getSystemService(ConnectivityManager.class); mNetPolicyManager = mContext.getSystemService(NetworkPolicyManager.class); @@ -279,6 +306,11 @@ public final class ConnectivityController extends RestrictingController implemen mConnManager.registerNetworkCallback(request, mNetworkCallback); mNetPolicyManager.registerListener(mNetPolicyListener); + + if (mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_WATCH)) { + // For now, we don't have network affinities on watches. + sNetworkTransportAffinities.clear(); + } } @GuardedBy("mLock") @@ -386,7 +418,9 @@ public final class ConnectivityController extends RestrictingController implemen synchronized (mLock) { for (int i = 0; i < mAvailableNetworks.size(); ++i) { final Network network = mAvailableNetworks.keyAt(i); - final NetworkCapabilities capabilities = mAvailableNetworks.valueAt(i); + final CachedNetworkMetadata metadata = mAvailableNetworks.valueAt(i); + final NetworkCapabilities capabilities = + metadata == null ? null : metadata.networkCapabilities; final boolean satisfied = isSatisfied(job, network, capabilities, mConstants); if (DEBUG) { Slog.v(TAG, "isNetworkAvailable(" + job + ") with network " + network @@ -589,6 +623,43 @@ public final class ConnectivityController extends RestrictingController implemen mHandler.sendEmptyMessage(MSG_UPDATE_ALL_TRACKED_JOBS); } + @Override + public void prepareForUpdatedConstantsLocked() { + mCcConfig.mShouldReprocessNetworkCapabilities = false; + mCcConfig.mFlexIsEnabled = mFlexibilityController.isEnabled(); + } + + @Override + public void processConstantLocked(@NonNull DeviceConfig.Properties properties, + @NonNull String key) { + mCcConfig.processConstantLocked(properties, key); + } + + @Override + public void onConstantsUpdatedLocked() { + if (mCcConfig.mShouldReprocessNetworkCapabilities + || (mFlexibilityController.isEnabled() != mCcConfig.mFlexIsEnabled)) { + AppSchedulingModuleThread.getHandler().post(() -> { + boolean shouldUpdateJobs = false; + for (int i = 0; i < mAvailableNetworks.size(); ++i) { + CachedNetworkMetadata metadata = mAvailableNetworks.valueAt(i); + if (metadata == null || metadata.networkCapabilities == null) { + continue; + } + boolean satisfies = satisfiesTransportAffinities(metadata.networkCapabilities); + if (metadata.satisfiesTransportAffinities != satisfies) { + metadata.satisfiesTransportAffinities = satisfies; + // Something changed. Update jobs. + shouldUpdateJobs = true; + } + } + if (shouldUpdateJobs) { + updateAllTrackedJobsLocked(false); + } + }); + } + } + private boolean isUsable(NetworkCapabilities capabilities) { return capabilities != null && capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_SUSPENDED); @@ -831,7 +902,7 @@ public final class ConnectivityController extends RestrictingController implemen if (!constants.CONN_USE_CELL_SIGNAL_STRENGTH) { return true; } - if (!capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) { + if (!capabilities.hasTransport(TRANSPORT_CELLULAR)) { return true; } if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_VPN)) { @@ -988,6 +1059,52 @@ public final class ConnectivityController extends RestrictingController implemen return false; } + private boolean satisfiesTransportAffinities(@Nullable NetworkCapabilities capabilities) { + if (!mFlexibilityController.isEnabled()) { + return true; + } + if (capabilities == null) { + Slog.wtf(TAG, "Network constraint satisfied with null capabilities"); + return !mCcConfig.AVOID_UNDEFINED_TRANSPORT_AFFINITY; + } + + if (sNetworkTransportAffinities.size() == 0) { + return !mCcConfig.AVOID_UNDEFINED_TRANSPORT_AFFINITY; + } + + final int[] transports = capabilities.getTransportTypes(); + if (transports.length == 0) { + return !mCcConfig.AVOID_UNDEFINED_TRANSPORT_AFFINITY; + } + + for (int t : transports) { + int affinity = sNetworkTransportAffinities.get(t, TRANSPORT_AFFINITY_UNDEFINED); + if (DEBUG) { + Slog.d(TAG, + "satisfiesTransportAffinities transport=" + t + " aff=" + affinity); + } + switch (affinity) { + case TRANSPORT_AFFINITY_UNDEFINED: + if (mCcConfig.AVOID_UNDEFINED_TRANSPORT_AFFINITY) { + // Avoided transports take precedence. + // Return as soon as we encounter a transport to avoid. + return false; + } + break; + case TRANSPORT_AFFINITY_PREFER: + // Nothing to do here. We like this transport. + break; + case TRANSPORT_AFFINITY_AVOID: + // Avoided transports take precedence. + // Return as soon as we encounter a transport to avoid. + return false; + } + } + + // Didn't see any transport to avoid. + return true; + } + @GuardedBy("mLock") private void maybeRegisterDefaultNetworkCallbackLocked(JobStatus jobStatus) { final int sourceUid = jobStatus.getSourceUid(); @@ -1172,6 +1289,12 @@ public final class ConnectivityController extends RestrictingController implemen @Nullable private NetworkCapabilities getNetworkCapabilities(@Nullable Network network) { + final CachedNetworkMetadata metadata = getNetworkMetadata(network); + return metadata == null ? null : metadata.networkCapabilities; + } + + @Nullable + private CachedNetworkMetadata getNetworkMetadata(@Nullable Network network) { if (network == null) { return null; } @@ -1234,14 +1357,16 @@ public final class ConnectivityController extends RestrictingController implemen return updateConstraintsSatisfied(jobStatus, nowElapsed, null, null); } final Network network = getNetworkLocked(jobStatus); - final NetworkCapabilities capabilities = getNetworkCapabilities(network); - return updateConstraintsSatisfied(jobStatus, nowElapsed, network, capabilities); + final CachedNetworkMetadata networkMetadata = getNetworkMetadata(network); + return updateConstraintsSatisfied(jobStatus, nowElapsed, network, networkMetadata); } private boolean updateConstraintsSatisfied(JobStatus jobStatus, final long nowElapsed, - Network network, NetworkCapabilities capabilities) { + Network network, @Nullable CachedNetworkMetadata networkMetadata) { // TODO: consider matching against non-default networks + final NetworkCapabilities capabilities = + networkMetadata == null ? null : networkMetadata.networkCapabilities; final boolean satisfied = isSatisfied(jobStatus, network, capabilities, mConstants); if (!satisfied && jobStatus.network != null @@ -1263,10 +1388,10 @@ public final class ConnectivityController extends RestrictingController implemen final boolean changed = jobStatus.setConnectivityConstraintSatisfied(nowElapsed, satisfied); - if (jobStatus.getPreferUnmetered()) { - jobStatus.setHasAccessToUnmetered(satisfied && capabilities != null - && capabilities.hasCapability(NET_CAPABILITY_NOT_METERED)); - + jobStatus.setTransportAffinitiesSatisfied(satisfied && networkMetadata != null + && networkMetadata.satisfiesTransportAffinities); + if (jobStatus.canApplyTransportAffinities()) { + // Only modify the flex constraint if the job actually needs it. jobStatus.setFlexibilityConstraintSatisfied(nowElapsed, mFlexibilityController.isFlexibilitySatisfiedLocked(jobStatus)); } @@ -1367,7 +1492,6 @@ public final class ConnectivityController extends RestrictingController implemen final JobStatus js = jobs.valueAt(i); final Network net = getNetworkLocked(js); - final NetworkCapabilities netCap = getNetworkCapabilities(net); final boolean match = (filterNetwork == null || Objects.equals(filterNetwork, net)); @@ -1375,7 +1499,7 @@ public final class ConnectivityController extends RestrictingController implemen // job hasn't yet been evaluated against the currently // active network; typically when we just lost a network. if (match || !Objects.equals(js.network, net)) { - changed |= updateConstraintsSatisfied(js, nowElapsed, net, netCap); + changed |= updateConstraintsSatisfied(js, nowElapsed, net, getNetworkMetadata(net)); } } return changed; @@ -1417,10 +1541,18 @@ public final class ConnectivityController extends RestrictingController implemen Slog.v(TAG, "onCapabilitiesChanged: " + network); } synchronized (mLock) { - final NetworkCapabilities oldCaps = mAvailableNetworks.put(network, capabilities); - if (oldCaps != null) { - maybeUnregisterSignalStrengthCallbackLocked(oldCaps); + CachedNetworkMetadata cnm = mAvailableNetworks.get(network); + if (cnm == null) { + cnm = new CachedNetworkMetadata(); + mAvailableNetworks.put(network, cnm); + } else { + final NetworkCapabilities oldCaps = cnm.networkCapabilities; + if (oldCaps != null) { + maybeUnregisterSignalStrengthCallbackLocked(oldCaps); + } } + cnm.networkCapabilities = capabilities; + cnm.satisfiesTransportAffinities = satisfiesTransportAffinities(capabilities); maybeRegisterSignalStrengthCallbackLocked(capabilities); updateTrackedJobsLocked(-1, network); postAdjustCallbacks(); @@ -1433,9 +1565,9 @@ public final class ConnectivityController extends RestrictingController implemen Slog.v(TAG, "onLost: " + network); } synchronized (mLock) { - final NetworkCapabilities capabilities = mAvailableNetworks.remove(network); - if (capabilities != null) { - maybeUnregisterSignalStrengthCallbackLocked(capabilities); + final CachedNetworkMetadata cnm = mAvailableNetworks.remove(network); + if (cnm != null && cnm.networkCapabilities != null) { + maybeUnregisterSignalStrengthCallbackLocked(cnm.networkCapabilities); } for (int u = 0; u < mCurrentDefaultNetworkCallbacks.size(); ++u) { UidDefaultNetworkCallback callback = mCurrentDefaultNetworkCallbacks.valueAt(u); @@ -1451,7 +1583,7 @@ public final class ConnectivityController extends RestrictingController implemen @GuardedBy("mLock") private void maybeRegisterSignalStrengthCallbackLocked( @NonNull NetworkCapabilities capabilities) { - if (!capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) { + if (!capabilities.hasTransport(TRANSPORT_CELLULAR)) { return; } TelephonyManager telephonyManager = mContext.getSystemService(TelephonyManager.class); @@ -1476,14 +1608,17 @@ public final class ConnectivityController extends RestrictingController implemen @GuardedBy("mLock") private void maybeUnregisterSignalStrengthCallbackLocked( @NonNull NetworkCapabilities capabilities) { - if (!capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) { + if (!capabilities.hasTransport(TRANSPORT_CELLULAR)) { return; } ArraySet<Integer> activeIds = new ArraySet<>(); for (int i = 0, size = mAvailableNetworks.size(); i < size; ++i) { - NetworkCapabilities nc = mAvailableNetworks.valueAt(i); - if (nc.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) { - activeIds.addAll(nc.getSubscriptionIds()); + final CachedNetworkMetadata metadata = mAvailableNetworks.valueAt(i); + if (metadata == null || metadata.networkCapabilities == null) { + continue; + } + if (metadata.networkCapabilities.hasTransport(TRANSPORT_CELLULAR)) { + activeIds.addAll(metadata.networkCapabilities.getSubscriptionIds()); } } if (DEBUG) { @@ -1573,6 +1708,57 @@ public final class ConnectivityController extends RestrictingController implemen } } + @VisibleForTesting + class CcConfig { + private boolean mFlexIsEnabled = FlexibilityController.FcConfig.DEFAULT_FLEXIBILITY_ENABLED; + private boolean mShouldReprocessNetworkCapabilities = false; + + /** + * Prefix to use with all constant keys in order to "sub-namespace" the keys. + * "conn_" is used for legacy reasons. + */ + private static final String CC_CONFIG_PREFIX = "conn_"; + + @VisibleForTesting + static final String KEY_AVOID_UNDEFINED_TRANSPORT_AFFINITY = + CC_CONFIG_PREFIX + "avoid_undefined_transport_affinity"; + + private static final boolean DEFAULT_AVOID_UNDEFINED_TRANSPORT_AFFINITY = false; + + /** + * If true, will avoid network transports that don't have an explicitly defined affinity. + */ + public boolean AVOID_UNDEFINED_TRANSPORT_AFFINITY = + DEFAULT_AVOID_UNDEFINED_TRANSPORT_AFFINITY; + + @GuardedBy("mLock") + public void processConstantLocked(@NonNull DeviceConfig.Properties properties, + @NonNull String key) { + switch (key) { + case KEY_AVOID_UNDEFINED_TRANSPORT_AFFINITY: + final boolean avoid = properties.getBoolean(key, + DEFAULT_AVOID_UNDEFINED_TRANSPORT_AFFINITY); + if (AVOID_UNDEFINED_TRANSPORT_AFFINITY != avoid) { + AVOID_UNDEFINED_TRANSPORT_AFFINITY = avoid; + mShouldReprocessNetworkCapabilities = true; + } + break; + } + } + + private void dump(IndentingPrintWriter pw) { + pw.println(); + pw.print(ConnectivityController.class.getSimpleName()); + pw.println(":"); + pw.increaseIndent(); + + pw.print(KEY_AVOID_UNDEFINED_TRANSPORT_AFFINITY, + AVOID_UNDEFINED_TRANSPORT_AFFINITY).println(); + + pw.decreaseIndent(); + } + } + private class UidDefaultNetworkCallback extends NetworkCallback { private int mUid; @Nullable @@ -1676,6 +1862,18 @@ public final class ConnectivityController extends RestrictingController implemen } } + private static class CachedNetworkMetadata { + public NetworkCapabilities networkCapabilities; + public boolean satisfiesTransportAffinities; + + public String toString() { + return "CNM{" + + networkCapabilities.toString() + + ", satisfiesTransportAffinities=" + satisfiesTransportAffinities + + "}"; + } + } + private static class UidStats { public final int uid; public int baseBias; @@ -1739,6 +1937,17 @@ public final class ConnectivityController extends RestrictingController implemen } } + @VisibleForTesting + @NonNull + CcConfig getCcConfig() { + return mCcConfig; + } + + @Override + public void dumpConstants(IndentingPrintWriter pw) { + mCcConfig.dump(pw); + } + @GuardedBy("mLock") @Override public void dumpControllerStateLocked(IndentingPrintWriter pw, diff --git a/apex/jobscheduler/service/java/com/android/server/job/controllers/FlexibilityController.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/FlexibilityController.java index 0e03ea1ebe7d..70f9a52f3299 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/controllers/FlexibilityController.java +++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/FlexibilityController.java @@ -247,6 +247,12 @@ public final class FlexibilityController extends StateController { mPrefetchLifeCycleStart.delete(userId); } + boolean isEnabled() { + synchronized (mLock) { + return mFlexibilityEnabled; + } + } + /** Checks if the flexibility constraint is actively satisfied for a given job. */ @GuardedBy("mLock") boolean isFlexibilitySatisfiedLocked(JobStatus js) { @@ -262,7 +268,8 @@ public final class FlexibilityController extends StateController { int getNumSatisfiedRequiredConstraintsLocked(JobStatus js) { return Integer.bitCount(mSatisfiedFlexibleConstraints) // Connectivity is job-specific, so must be handled separately. - + (js.getHasAccessToUnmetered() ? 1 : 0); + + (js.canApplyTransportAffinities() + && js.areTransportAffinitiesSatisfied() ? 1 : 0); } /** @@ -495,7 +502,7 @@ public final class FlexibilityController extends StateController { final int curPercent = getCurPercentOfLifecycleLocked(js, nowElapsed); int toDrop = 0; final int jsMaxFlexibleConstraints = NUM_SYSTEM_WIDE_FLEXIBLE_CONSTRAINTS - + (js.getPreferUnmetered() ? 1 : 0); + + (js.canApplyTransportAffinities() ? 1 : 0); for (int i = 0; i < jsMaxFlexibleConstraints; i++) { if (curPercent >= mPercentToDropConstraints[i]) { toDrop++; @@ -661,7 +668,6 @@ public final class FlexibilityController extends StateController { } } - @VisibleForTesting class FcConfig { private boolean mShouldReevaluateConstraints = false; @@ -682,7 +688,7 @@ public final class FlexibilityController extends StateController { static final String KEY_RESCHEDULED_JOB_DEADLINE_MS = FC_CONFIG_PREFIX + "rescheduled_job_deadline_ms"; - private static final boolean DEFAULT_FLEXIBILITY_ENABLED = false; + static final boolean DEFAULT_FLEXIBILITY_ENABLED = false; @VisibleForTesting static final long DEFAULT_DEADLINE_PROXIMITY_LIMIT_MS = 15 * MINUTE_IN_MILLIS; @VisibleForTesting diff --git a/apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java index cb6cc2bd58aa..d6ada4cd7fdc 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java +++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java @@ -16,7 +16,6 @@ package com.android.server.job.controllers; -import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_METERED; import static android.text.format.DateUtils.HOUR_IN_MILLIS; import static com.android.server.job.JobSchedulerService.ACTIVE_INDEX; @@ -163,9 +162,6 @@ public final class JobStatus { */ private int mNumDroppedFlexibleConstraints; - /** If the job is going to be passed an unmetered network. */ - private boolean mHasAccessToUnmetered; - /** If the effective bucket has been downgraded once due to being buggy. */ private boolean mIsDowngradedDueToBuggyApp; @@ -562,11 +558,10 @@ public final class JobStatus { /** The job's dynamic requirements have been satisfied. */ private boolean mReadyDynamicSatisfied; - /** - * The job prefers an unmetered network if it has the connectivity constraint but is - * okay with any meteredness. - */ - private final boolean mPreferUnmetered; + /** Whether to apply the optimization transport preference logic to this job. */ + private final boolean mCanApplyTransportAffinities; + /** True if the optimization transport preference is satisfied for this job. */ + private boolean mTransportAffinitiesSatisfied; /** The reason a job most recently went from ready to not ready. */ private int mReasonReadyToUnready = JobParameters.STOP_REASON_UNDEFINED; @@ -671,12 +666,12 @@ public final class JobStatus { } mHasExemptedMediaUrisOnly = exemptedMediaUrisOnly; - mPreferUnmetered = job.getRequiredNetwork() != null - && !job.getRequiredNetwork().hasCapability(NET_CAPABILITY_NOT_METERED); + mCanApplyTransportAffinities = job.getRequiredNetwork() != null + && job.getRequiredNetwork().getTransportTypes().length == 0; final boolean lacksSomeFlexibleConstraints = ((~requiredConstraints) & SYSTEM_WIDE_FLEXIBLE_CONSTRAINTS) != 0 - || mPreferUnmetered; + || mCanApplyTransportAffinities; final boolean satisfiesMinWindowException = (latestRunTimeElapsedMillis - earliestRunTimeElapsedMillis) >= MIN_WINDOW_FOR_FLEXIBILITY_MS; @@ -688,7 +683,7 @@ public final class JobStatus { && (numFailures + numSystemStops) != 1 && lacksSomeFlexibleConstraints) { mNumRequiredFlexibleConstraints = - NUM_SYSTEM_WIDE_FLEXIBLE_CONSTRAINTS + (mPreferUnmetered ? 1 : 0); + NUM_SYSTEM_WIDE_FLEXIBLE_CONSTRAINTS + (mCanApplyTransportAffinities ? 1 : 0); requiredConstraints |= CONSTRAINT_FLEXIBLE; } else { mNumRequiredFlexibleConstraints = 0; @@ -1585,17 +1580,16 @@ public final class JobStatus { mOriginalLatestRunTimeElapsedMillis = latestRunTimeElapsed; } - /** Sets the jobs access to an unmetered network. */ - void setHasAccessToUnmetered(boolean access) { - mHasAccessToUnmetered = access; + boolean areTransportAffinitiesSatisfied() { + return mTransportAffinitiesSatisfied; } - boolean getHasAccessToUnmetered() { - return mHasAccessToUnmetered; + void setTransportAffinitiesSatisfied(boolean isSatisfied) { + mTransportAffinitiesSatisfied = isSatisfied; } - boolean getPreferUnmetered() { - return mPreferUnmetered; + boolean canApplyTransportAffinities() { + return mCanApplyTransportAffinities; } @JobParameters.StopReason diff --git a/apex/jobscheduler/service/java/com/android/server/tare/InternalResourceService.java b/apex/jobscheduler/service/java/com/android/server/tare/InternalResourceService.java index 95f901c4a365..b8397d2cd1b4 100644 --- a/apex/jobscheduler/service/java/com/android/server/tare/InternalResourceService.java +++ b/apex/jobscheduler/service/java/com/android/server/tare/InternalResourceService.java @@ -38,7 +38,6 @@ import android.app.tare.EconomyManager; import android.app.tare.IEconomyManager; import android.app.usage.UsageEvents; import android.app.usage.UsageStatsManagerInternal; -import android.content.AttributionSource; import android.content.BroadcastReceiver; import android.content.ContentResolver; import android.content.Context; @@ -231,11 +230,8 @@ public class InternalResourceService extends SystemService { public void opChanged(int op, int uid, String packageName) { boolean restricted = false; try { - final AttributionSource attributionSource = new AttributionSource.Builder(uid) - .setPackageName(packageName) - .build(); - restricted = mAppOpsService.checkOperationWithState( - AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, attributionSource.asState()) + restricted = mAppOpsService.checkOperation( + AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, uid, packageName) != AppOpsManager.MODE_ALLOWED; } catch (RemoteException e) { // Shouldn't happen diff --git a/apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java b/apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java index 7d3837786be9..12f455ad0144 100644 --- a/apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java +++ b/apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java @@ -2539,6 +2539,38 @@ public class AppStandbyController pw.println("]"); pw.println(); + pw.println("mActiveAdminApps=["); + synchronized (mActiveAdminApps) { + final int size = mActiveAdminApps.size(); + for (int i = 0; i < size; ++i) { + final int userId = mActiveAdminApps.keyAt(i); + pw.print(" "); + pw.print(userId); + pw.print(": "); + pw.print(mActiveAdminApps.valueAt(i)); + if (i != size - 1) pw.print(","); + pw.println(); + } + } + pw.println("]"); + pw.println(); + + pw.println("mAdminProtectedPackages=["); + synchronized (mAdminProtectedPackages) { + final int size = mAdminProtectedPackages.size(); + for (int i = 0; i < size; ++i) { + final int userId = mAdminProtectedPackages.keyAt(i); + pw.print(" "); + pw.print(userId); + pw.print(": "); + pw.print(mAdminProtectedPackages.valueAt(i)); + if (i != size - 1) pw.print(","); + pw.println(); + } + } + pw.println("]"); + pw.println(); + mInjector.dump(pw); } diff --git a/boot/boot-image-profile.txt b/boot/boot-image-profile.txt index 937833d67648..d1d67fd0321f 100644 --- a/boot/boot-image-profile.txt +++ b/boot/boot-image-profile.txt @@ -74,7 +74,7 @@ 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;-><init>(Landroid/content/Context;Landroid/accounts/IAccountManager;)V+]Landroid/content/Context;Landroid/app/ContextImpl; 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; @@ -84,7 +84,7 @@ 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;->getAccountsByTypeAsUser(Ljava/lang/String;Landroid/os/UserHandle;)[Landroid/accounts/Account;+]Landroid/accounts/IAccountManager;Landroid/accounts/IAccountManager$Stub$Proxy;]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/os/UserHandle;Landroid/os/UserHandle; 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; @@ -102,7 +102,7 @@ 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;->getAccountsAsUser(Ljava/lang/String;ILjava/lang/String;)[Landroid/accounts/Account;+]Landroid/accounts/IAccountManager$Stub$Proxy;Landroid/accounts/IAccountManager$Stub$Proxy;]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel; 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 @@ -123,15 +123,15 @@ HSPLandroid/accounts/IAccountManagerResponse$Stub;->onTransact(ILandroid/os/Parc 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 +HSPLandroid/animation/AnimationHandler$1;->doFrame(J)V+]Landroid/animation/AnimationHandler$AnimationFrameCallbackProvider;Landroid/animation/AnimationHandler$MyFrameCallbackProvider;,Lcom/android/internal/graphics/SfVsyncFrameCallbackProvider;]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/animation/AnimationHandler$MyFrameCallbackProvider;-><init>(Landroid/animation/AnimationHandler;)V -HSPLandroid/animation/AnimationHandler$MyFrameCallbackProvider;->getFrameTime()J +HSPLandroid/animation/AnimationHandler$MyFrameCallbackProvider;->getFrameTime()J+]Landroid/view/Choreographer;Landroid/view/Choreographer; HSPLandroid/animation/AnimationHandler$MyFrameCallbackProvider;->postFrameCallback(Landroid/view/Choreographer$FrameCallback;)V HSPLandroid/animation/AnimationHandler;-><init>()V HSPLandroid/animation/AnimationHandler;->addAnimationFrameCallback(Landroid/animation/AnimationHandler$AnimationFrameCallback;J)V HSPLandroid/animation/AnimationHandler;->autoCancelBasedOn(Landroid/animation/ObjectAnimator;)V HSPLandroid/animation/AnimationHandler;->cleanUpList()V -HSPLandroid/animation/AnimationHandler;->doAnimationFrame(J)V +HSPLandroid/animation/AnimationHandler;->doAnimationFrame(J)V+]Landroid/animation/AnimationHandler$AnimationFrameCallback;Landroid/animation/ValueAnimator;,Landroid/animation/ObjectAnimator;,Lcom/android/internal/dynamicanimation/animation/SpringAnimation;,Landroid/animation/AnimatorSet;]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; @@ -228,7 +228,7 @@ HSPLandroid/animation/AnimatorSet;->cancel()V HSPLandroid/animation/AnimatorSet;->clone()Landroid/animation/Animator; HSPLandroid/animation/AnimatorSet;->clone()Landroid/animation/AnimatorSet; HSPLandroid/animation/AnimatorSet;->createDependencyGraph()V -HSPLandroid/animation/AnimatorSet;->doAnimationFrame(J)Z +HSPLandroid/animation/AnimatorSet;->doAnimationFrame(J)Z+]Landroid/animation/AnimatorSet$SeekState;Landroid/animation/AnimatorSet$SeekState;]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/animation/AnimatorSet;->end()V HSPLandroid/animation/AnimatorSet;->endAnimation()V HSPLandroid/animation/AnimatorSet;->ensureChildStartAndEndTimes()[J @@ -271,12 +271,12 @@ HSPLandroid/animation/AnimatorSet;->startWithoutPulsing(Z)V HSPLandroid/animation/AnimatorSet;->updateAnimatorsDuration()V HSPLandroid/animation/AnimatorSet;->updatePlayTime(Landroid/animation/AnimatorSet$Node;Ljava/util/ArrayList;)V HSPLandroid/animation/ArgbEvaluator;-><init>()V -HSPLandroid/animation/ArgbEvaluator;->evaluate(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; +HSPLandroid/animation/ArgbEvaluator;->evaluate(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/lang/Integer;Ljava/lang/Integer; 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 +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; @@ -310,11 +310,11 @@ HSPLandroid/animation/Keyframe;->ofObject(FLjava/lang/Object;)Landroid/animation HSPLandroid/animation/Keyframe;->setInterpolator(Landroid/animation/TimeInterpolator;)V HSPLandroid/animation/Keyframe;->setValueWasSetOnStart(Z)V HSPLandroid/animation/Keyframe;->valueWasSetOnStart()Z -HSPLandroid/animation/KeyframeSet;-><init>([Landroid/animation/Keyframe;)V +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; +HSPLandroid/animation/KeyframeSet;->getValue(F)Ljava/lang/Object;+]Landroid/animation/TypeEvaluator;Landroid/animation/ArgbEvaluator;]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; @@ -354,7 +354,7 @@ 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 +HSPLandroid/animation/ObjectAnimator;->animateValue(F)V+]Landroid/animation/ObjectAnimator;Landroid/animation/ObjectAnimator;]Landroid/animation/PropertyValuesHolder;Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder; HSPLandroid/animation/ObjectAnimator;->clone()Landroid/animation/Animator; HSPLandroid/animation/ObjectAnimator;->clone()Landroid/animation/ObjectAnimator; HSPLandroid/animation/ObjectAnimator;->getNameForTrace()Ljava/lang/String; @@ -396,7 +396,7 @@ HSPLandroid/animation/PathKeyframes;->interpolateInRange(FII)Landroid/graphics/P 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 +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; @@ -469,18 +469,18 @@ HSPLandroid/animation/TimeAnimator;->setTimeListener(Landroid/animation/TimeAnim 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 -HSPLandroid/animation/ValueAnimator;->animateValue(F)V +HSPLandroid/animation/ValueAnimator;->animateBasedOnTime(J)Z+]Landroid/animation/ValueAnimator;Landroid/animation/ValueAnimator;,Landroid/animation/ObjectAnimator; +HSPLandroid/animation/ValueAnimator;->animateValue(F)V+]Landroid/animation/TimeInterpolator;megamorphic_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; -HSPLandroid/animation/ValueAnimator;->doAnimationFrame(J)Z +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;->endAnimation()V+]Landroid/animation/ValueAnimator;Landroid/animation/ObjectAnimator;,Landroid/animation/ValueAnimator; HSPLandroid/animation/ValueAnimator;->getAnimatedFraction()F -HSPLandroid/animation/ValueAnimator;->getAnimatedValue()Ljava/lang/Object; +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 @@ -528,7 +528,7 @@ HSPLandroid/animation/ValueAnimator;->setValues([Landroid/animation/PropertyValu 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;->start(Z)V+]Landroid/animation/ValueAnimator;Landroid/animation/ObjectAnimator;,Landroid/animation/ValueAnimator; HSPLandroid/animation/ValueAnimator;->startAnimation()V HSPLandroid/animation/ValueAnimator;->startWithoutPulsing(Z)V HSPLandroid/app/Activity$1;-><init>(Landroid/app/Activity;)V @@ -579,7 +579,7 @@ 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;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;+]Ljava/lang/String;Ljava/lang/String; HSPLandroid/app/Activity;->getTaskId()I HSPLandroid/app/Activity;->getTitle()Ljava/lang/CharSequence; HSPLandroid/app/Activity;->getTitleColor()I @@ -813,7 +813,7 @@ 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;->access(Ljava/lang/String;I)Z+]Ljava/lang/String;Ljava/lang/String; 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 @@ -839,7 +839,7 @@ HSPLandroid/app/ActivityThread$ApplicationThread;->dumpService(Landroid/os/Parce 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;->scheduleBindService(Landroid/os/IBinder;Landroid/content/Intent;ZIJ)V+]Landroid/app/ActivityThread;Landroid/app/ActivityThread; 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 @@ -860,11 +860,11 @@ 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$BindServiceData;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; 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$CreateServiceData;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HSPLandroid/app/ActivityThread$DumpResourcesData;-><init>()V HSPLandroid/app/ActivityThread$GcIdler;-><init>(Landroid/app/ActivityThread;)V HSPLandroid/app/ActivityThread$GcIdler;->queueIdle()Z @@ -876,14 +876,14 @@ 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$ProviderKey;->hashCode()I+]Ljava/lang/String;Ljava/lang/String; 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$ServiceArgsData;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; 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 @@ -904,8 +904,8 @@ HSPLandroid/app/ActivityThread;->-$$Nest$mhandleUnbindService(Landroid/app/Activ 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;->acquireExistingProvider(Landroid/content/Context;Ljava/lang/String;IZ)Landroid/content/IContentProvider;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/content/IContentProvider;Landroid/content/ContentProviderProxy;,Landroid/content/ContentProvider$Transport;]Landroid/os/IBinder;Landroid/content/ContentProvider$Transport;,Landroid/os/BinderProxy; +HSPLandroid/app/ActivityThread;->acquireProvider(Landroid/content/Context;Ljava/lang/String;IZ)Landroid/content/IContentProvider;+]Landroid/app/ActivityThread;Landroid/app/ActivityThread;]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/app/IActivityManager;Landroid/app/IActivityManager$Stub$Proxy; 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 @@ -917,7 +917,7 @@ 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;->currentAttributionSource()Landroid/content/AttributionSource;+]Landroid/app/ActivityThread;Landroid/app/ActivityThread; HSPLandroid/app/ActivityThread;->currentOpPackageName()Ljava/lang/String; HSPLandroid/app/ActivityThread;->currentPackageName()Ljava/lang/String; HSPLandroid/app/ActivityThread;->currentProcessName()Ljava/lang/String; @@ -959,7 +959,7 @@ HSPLandroid/app/ActivityThread;->handleActivityConfigurationChanged(Landroid/app HSPLandroid/app/ActivityThread;->handleActivityConfigurationChanged(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/content/res/Configuration;IZ)V 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;->handleBindService(Landroid/app/ActivityThread$BindServiceData;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/app/IActivityManager;Landroid/app/IActivityManager$Stub$Proxy;]Landroid/content/Intent;Landroid/content/Intent; 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 @@ -976,13 +976,13 @@ HSPLandroid/app/ActivityThread;->handleLaunchActivity(Landroid/app/ActivityThrea HSPLandroid/app/ActivityThread;->handleLowMemory()V HSPLandroid/app/ActivityThread;->handleNewIntent(Landroid/app/ActivityThread$ActivityClientRecord;Ljava/util/List;)V HSPLandroid/app/ActivityThread;->handlePauseActivity(Landroid/app/ActivityThread$ActivityClientRecord;ZZIZLandroid/app/servertransaction/PendingTransactionActions;Ljava/lang/String;)V -HSPLandroid/app/ActivityThread;->handleReceiver(Landroid/app/ActivityThread$ReceiverData;)V +HSPLandroid/app/ActivityThread;->handleReceiver(Landroid/app/ActivityThread$ReceiverData;)V+]Landroid/app/LoadedApk;Landroid/app/LoadedApk;]Landroid/app/ActivityThread;Landroid/app/ActivityThread;]Landroid/app/ContextImpl;Landroid/app/ContextImpl;]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Landroid/app/ActivityThread$ReceiverData;Landroid/app/ActivityThread$ReceiverData;]Landroid/content/Intent;Landroid/content/Intent; HSPLandroid/app/ActivityThread;->handleRelaunchActivity(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V HSPLandroid/app/ActivityThread;->handleRelaunchActivityInner(Landroid/app/ActivityThread$ActivityClientRecord;ILjava/util/List;Ljava/util/List;Landroid/app/servertransaction/PendingTransactionActions;ZLandroid/content/res/Configuration;Ljava/lang/String;)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;->handleServiceArgs(Landroid/app/ActivityThread$ServiceArgsData;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/app/IActivityManager;Landroid/app/IActivityManager$Stub$Proxy;]Landroid/content/Intent;Landroid/content/Intent; HSPLandroid/app/ActivityThread;->handleSetContentCaptureOptionsCallback(Ljava/lang/String;)V HSPLandroid/app/ActivityThread;->handleSetCoreSettings(Landroid/os/Bundle;)V HSPLandroid/app/ActivityThread;->handleStartActivity(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;Landroid/app/ActivityOptions;)V @@ -993,7 +993,7 @@ 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;->incProviderRefLocked(Landroid/app/ActivityThread$ProviderRefCount;Z)V+]Landroid/app/ActivityThread$H;Landroid/app/ActivityThread$H;]Landroid/app/IActivityManager;Landroid/app/IActivityManager$Stub$Proxy; HSPLandroid/app/ActivityThread;->initZipPathValidatorCallback()V HSPLandroid/app/ActivityThread;->initializeMainlineModules()V HSPLandroid/app/ActivityThread;->installContentProviders(Landroid/content/Context;Ljava/util/List;)V @@ -1022,7 +1022,7 @@ HSPLandroid/app/ActivityThread;->prepareRelaunchActivity(Landroid/os/IBinder;Lja 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;->releaseProvider(Landroid/content/IContentProvider;Z)Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/content/IContentProvider;Landroid/content/ContentProviderProxy;,Landroid/content/ContentProvider$Transport;]Landroid/app/ActivityThread$H;Landroid/app/ActivityThread$H;]Landroid/app/IActivityManager;Landroid/app/IActivityManager$Stub$Proxy; 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 @@ -1078,7 +1078,7 @@ HSPLandroid/app/AlertDialog;->resolveDialogTheme(Landroid/content/Context;I)I HSPLandroid/app/AppCompatCallbacks;-><init>([J)V HSPLandroid/app/AppCompatCallbacks;->install([J)V HSPLandroid/app/AppCompatCallbacks;->isChangeEnabled(J)Z -HSPLandroid/app/AppCompatCallbacks;->reportChange(JI)V +HSPLandroid/app/AppCompatCallbacks;->reportChange(JI)V+]Lcom/android/internal/compat/ChangeReporter;Lcom/android/internal/compat/ChangeReporter; 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; @@ -1127,7 +1127,7 @@ 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;->isCollectingStackTraces()Z+]Lcom/android/internal/app/MessageSamplingConfig;Lcom/android/internal/app/MessageSamplingConfig; HSPLandroid/app/AppOpsManager;->isListeningForOpNoted()Z HSPLandroid/app/AppOpsManager;->lambda$new$0(Landroid/provider/DeviceConfig$Properties;)V HSPLandroid/app/AppOpsManager;->leftCircularDistance(III)I @@ -1143,7 +1143,7 @@ HSPLandroid/app/AppOpsManager;->opToDefaultMode(I)I HSPLandroid/app/AppOpsManager;->opToPermission(I)Ljava/lang/String; HSPLandroid/app/AppOpsManager;->opToPublicName(I)Ljava/lang/String; HSPLandroid/app/AppOpsManager;->opToSwitch(I)I -HSPLandroid/app/AppOpsManager;->pauseNotedAppOpsCollection()Landroid/app/AppOpsManager$PausedNotedAppOpsCollection; +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 @@ -1159,7 +1159,7 @@ HSPLandroid/app/AppOpsManager;->startWatchingMode(ILjava/lang/String;Landroid/ap 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;->toReceiverId(Ljava/lang/Object;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/Class;Ljava/lang/Class; 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 @@ -1305,7 +1305,7 @@ HSPLandroid/app/ApplicationPackageManager;->getProviderInfo(Landroid/content/Com HSPLandroid/app/ApplicationPackageManager;->getReceiverInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ActivityInfo; HSPLandroid/app/ApplicationPackageManager;->getReceiverInfo(Landroid/content/ComponentName;Landroid/content/pm/PackageManager$ComponentInfoFlags;)Landroid/content/pm/ActivityInfo; HSPLandroid/app/ApplicationPackageManager;->getResourcesForApplication(Landroid/content/pm/ApplicationInfo;)Landroid/content/res/Resources; -HSPLandroid/app/ApplicationPackageManager;->getResourcesForApplication(Landroid/content/pm/ApplicationInfo;Landroid/content/res/Configuration;)Landroid/content/res/Resources; +HSPLandroid/app/ApplicationPackageManager;->getResourcesForApplication(Landroid/content/pm/ApplicationInfo;Landroid/content/res/Configuration;)Landroid/content/res/Resources;+]Ljava/lang/String;Ljava/lang/String;]Landroid/app/ActivityThread;Landroid/app/ActivityThread; 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; @@ -1337,10 +1337,10 @@ HSPLandroid/app/ApplicationPackageManager;->queryBroadcastReceivers(Landroid/con 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;I)Ljava/util/List;+]Landroid/app/ApplicationPackageManager;Landroid/app/ApplicationPackageManager; 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; +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; @@ -1426,16 +1426,16 @@ HSPLandroid/app/ContextImpl$ApplicationContentResolver;->acquireProvider(Landroi 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;->resolveUserIdFromAuthority(Ljava/lang/String;)I+]Landroid/app/ContextImpl$ApplicationContentResolver;Landroid/app/ContextImpl$ApplicationContentResolver; 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;)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;)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;->canLoadUnsafeResources()Z+]Ljava/lang/String;Ljava/lang/String;]Landroid/app/ContextImpl;Landroid/app/ContextImpl; +HSPLandroid/app/ContextImpl;->checkCallingOrSelfPermission(Ljava/lang/String;)I+]Landroid/app/ContextImpl;Landroid/app/ContextImpl; HSPLandroid/app/ContextImpl;->checkCallingPermission(Ljava/lang/String;)I HSPLandroid/app/ContextImpl;->checkMode(I)V HSPLandroid/app/ContextImpl;->checkPermission(Ljava/lang/String;II)I @@ -1452,7 +1452,7 @@ HSPLandroid/app/ContextImpl;->createConfigurationContext(Landroid/content/res/Co 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;->createDeviceProtectedStorageContext()Landroid/content/Context;+]Landroid/content/AttributionSource;Landroid/content/AttributionSource; 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; @@ -1474,19 +1474,19 @@ 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;->ensureExternalDirsExistOrFilter([Ljava/io/File;Z)[Ljava/io/File;+]Ljava/io/File;Ljava/io/File;]Landroid/app/ContextImpl;Landroid/app/ContextImpl; 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;->getApplicationContext()Landroid/content/Context;+]Landroid/app/LoadedApk;Landroid/app/LoadedApk; 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;->getAttributionTag()Ljava/lang/String;+]Landroid/content/AttributionSource;Landroid/content/AttributionSource; HSPLandroid/app/ContextImpl;->getAutofillClient()Landroid/view/autofill/AutofillManager$AutofillClient; HSPLandroid/app/ContextImpl;->getAutofillOptions()Landroid/content/AutofillOptions; HSPLandroid/app/ContextImpl;->getBasePackageName()Ljava/lang/String; @@ -1496,38 +1496,38 @@ 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;->getDataDir()Ljava/io/File;+]Landroid/app/LoadedApk;Landroid/app/LoadedApk;]Ljava/io/File;Ljava/io/File;]Landroid/app/ContextImpl;Landroid/app/ContextImpl; 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;->getDisplayId()I+]Landroid/app/ContextImpl;Landroid/app/ContextImpl;]Landroid/view/Display;Landroid/view/Display; +HSPLandroid/app/ContextImpl;->getDisplayNoVerify()Landroid/view/Display;+]Landroid/app/ResourcesManager;Landroid/app/ResourcesManager; 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;->getExternalFilesDirs(Ljava/lang/String;)[Ljava/io/File;+]Landroid/app/ContextImpl;Landroid/app/ContextImpl; 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;->getFilesDir()Ljava/io/File;+]Landroid/app/ContextImpl;Landroid/app/ContextImpl; 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;->getOpPackageName()Ljava/lang/String;+]Landroid/content/AttributionSource;Landroid/content/AttributionSource; 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;->getPackageName()Ljava/lang/String;+]Landroid/app/LoadedApk;Landroid/app/LoadedApk; 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; -HSPLandroid/app/ContextImpl;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences; +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; HSPLandroid/app/ContextImpl;->getSharedPreferencesPath(Ljava/lang/String;)Ljava/io/File; HSPLandroid/app/ContextImpl;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; @@ -1535,7 +1535,7 @@ HSPLandroid/app/ContextImpl;->getSystemServiceName(Ljava/lang/Class;)Ljava/lang/ 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;->getUserId()I+]Landroid/os/UserHandle;Landroid/os/UserHandle; HSPLandroid/app/ContextImpl;->getWindowContextToken()Landroid/os/IBinder; HSPLandroid/app/ContextImpl;->grantUriPermission(Ljava/lang/String;Landroid/net/Uri;I)V HSPLandroid/app/ContextImpl;->initializeTheme()V @@ -1559,7 +1559,7 @@ HSPLandroid/app/ContextImpl;->registerReceiver(Landroid/content/BroadcastReceive 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;->registerReceiverInternal(Landroid/content/BroadcastReceiver;ILandroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;Landroid/content/Context;I)Landroid/content/Intent;+]Landroid/app/LoadedApk;Landroid/app/LoadedApk;]Landroid/app/ActivityThread;Landroid/app/ActivityThread;]Landroid/app/ContextImpl;Landroid/app/ContextImpl;]Landroid/app/IActivityManager;Landroid/app/IActivityManager$Stub$Proxy;]Landroid/content/Intent;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 @@ -1748,7 +1748,7 @@ HSPLandroid/app/FragmentManagerImpl;->addAddedFragments(Landroid/util/ArraySet;) 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;->burpActive()V+]Landroid/util/SparseArray;Landroid/util/SparseArray; HSPLandroid/app/FragmentManagerImpl;->checkStateLoss()V HSPLandroid/app/FragmentManagerImpl;->cleanupExec()V HSPLandroid/app/FragmentManagerImpl;->dispatchActivityCreated()V @@ -1787,7 +1787,7 @@ HSPLandroid/app/FragmentManagerImpl;->executePostponedTransaction(Ljava/util/Arr 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;->generateOpsForPendingActions(Ljava/util/ArrayList;Ljava/util/ArrayList;)Z+]Landroid/os/Handler;Landroid/os/Handler;]Landroid/app/FragmentHostCallback;Landroid/app/Activity$HostCallbacks;]Landroid/app/FragmentManagerImpl$OpGenerator;Landroid/app/BackStackRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/app/FragmentManagerImpl;->getLayoutInflaterFactory()Landroid/view/LayoutInflater$Factory2; HSPLandroid/app/FragmentManagerImpl;->getPrimaryNavigationFragment()Landroid/app/Fragment; HSPLandroid/app/FragmentManagerImpl;->getTargetSdk()I @@ -1797,7 +1797,7 @@ 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(IZ)V+]Landroid/app/FragmentManagerImpl;Landroid/app/FragmentManagerImpl;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/ArrayList;Ljava/util/ArrayList; 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; @@ -1856,9 +1856,9 @@ 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;->broadcastIntentWithFeature(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ILandroid/os/Bundle;ZZI)I+]Landroid/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;->cancelIntentSender(Landroid/content/IIntentSender;)V -HSPLandroid/app/IActivityManager$Stub$Proxy;->checkPermission(Ljava/lang/String;II)I +HSPLandroid/app/IActivityManager$Stub$Proxy;->checkPermission(Ljava/lang/String;II)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 @@ -1867,7 +1867,7 @@ HSPLandroid/app/IActivityManager$Stub$Proxy;->getCurrentUser()Landroid/content/p 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;->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;+]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;->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; @@ -1880,10 +1880,10 @@ HSPLandroid/app/IActivityManager$Stub$Proxy;->isBackgroundRestricted(Ljava/lang/ 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;->publishService(Landroid/os/IBinder;Landroid/content/Intent;Landroid/os/IBinder;)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;->refContentProvider(Landroid/os/IBinder;II)Z+]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;->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;+]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;->registerStrictModeCallback(Landroid/os/IBinder;)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;->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 @@ -1895,7 +1895,7 @@ HSPLandroid/app/IActivityManager$Stub$Proxy;->stopService(Landroid/app/IApplicat 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;->unregisterReceiver(Landroid/content/IIntentReceiver;)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;->unstableProviderDied(Landroid/os/IBinder;)V HSPLandroid/app/IActivityManager$Stub$Proxy;->waitForNetworkStateUpdate(J)V HSPLandroid/app/IActivityManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IActivityManager; @@ -1950,11 +1950,11 @@ HSPLandroid/app/INotificationManager$Stub$Proxy;->cancelNotificationWithTag(Ljav 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;->enqueueNotificationWithTag(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/app/Notification;I)V+]Landroid/app/INotificationManager$Stub$Proxy;Landroid/app/INotificationManager$Stub$Proxy;]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel; 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;->getNotificationChannel(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)Landroid/app/NotificationChannel;+]Landroid/app/INotificationManager$Stub$Proxy;Landroid/app/INotificationManager$Stub$Proxy;]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -2100,7 +2100,7 @@ HSPLandroid/app/LoadedApk;->createAppFactory(Landroid/content/pm/ApplicationInfo 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;->forgetReceiverDispatcher(Landroid/content/Context;Landroid/content/BroadcastReceiver;)Landroid/content/IIntentReceiver;+]Landroid/app/LoadedApk$ReceiverDispatcher;Landroid/app/LoadedApk$ReceiverDispatcher;]Landroid/util/ArrayMap;Landroid/util/ArrayMap; 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; @@ -2149,13 +2149,13 @@ 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;->build()Landroid/app/Notification$Action;+]Landroid/app/RemoteInput;Landroid/app/RemoteInput;]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr; 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;-><init>(Landroid/graphics/drawable/Icon;Ljava/lang/CharSequence;Landroid/app/PendingIntent;Landroid/os/Bundle;[Landroid/app/RemoteInput;ZIZZ)V+]Landroid/graphics/drawable/Icon;Landroid/graphics/drawable/Icon; +HSPLandroid/app/Notification$Action;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/app/PendingIntent$1;,Landroid/text/TextUtils$1;,Landroid/graphics/drawable/Icon$1;]Landroid/os/Parcel;Landroid/os/Parcel;]Landroid/graphics/drawable/Icon;Landroid/graphics/drawable/Icon; HSPLandroid/app/Notification$Action;->getAllowGeneratedReplies()Z HSPLandroid/app/Notification$Action;->getIcon()Landroid/graphics/drawable/Icon; HSPLandroid/app/Notification$Action;->getRemoteInputs()[Landroid/app/RemoteInput; @@ -2176,16 +2176,16 @@ HSPLandroid/app/Notification$BubbleMetadata$1;->createFromParcel(Landroid/os/Par 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;Landroid/app/Notification;)V+]Landroid/content/res/Resources;Landroid/content/res/Resources; 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;->build()Landroid/app/Notification;+]Landroid/os/Bundle;Landroid/os/Bundle;]Landroid/app/Notification;Landroid/app/Notification;]Landroid/app/Notification$Builder;Landroid/app/Notification$Builder;]Landroid/app/Notification$BubbleMetadata;Landroid/app/Notification$BubbleMetadata;]Landroid/app/Notification$Style;Landroid/app/Notification$InboxStyle;,Landroid/app/Notification$MessagingStyle;,Landroid/app/Notification$BigTextStyle; +HSPLandroid/app/Notification$Builder;->buildUnstyled()Landroid/app/Notification;+]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/app/Notification$Builder;->getStyle()Landroid/app/Notification$Style; -HSPLandroid/app/Notification$Builder;->maybeCloneStrippedForDelivery(Landroid/app/Notification;)Landroid/app/Notification; +HSPLandroid/app/Notification$Builder;->maybeCloneStrippedForDelivery(Landroid/app/Notification;)Landroid/app/Notification;+]Landroid/os/Bundle;Landroid/os/Bundle; 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; @@ -2198,7 +2198,7 @@ HSPLandroid/app/Notification$Builder;->setContent(Landroid/widget/RemoteViews;)L 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;->setContentTitle(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder;+]Landroid/os/Bundle;Landroid/os/Bundle; 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; @@ -2224,7 +2224,7 @@ HSPLandroid/app/Notification$Builder;->setShortcutId(Ljava/lang/String;)Landroid 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;->setSmallIcon(Landroid/graphics/drawable/Icon;)Landroid/app/Notification$Builder;+]Landroid/app/Notification;Landroid/app/Notification;]Landroid/graphics/drawable/Icon;Landroid/graphics/drawable/Icon; 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; @@ -2278,7 +2278,7 @@ HSPLandroid/app/Notification$Style;->restoreFromExtras(Landroid/os/Bundle;)V HSPLandroid/app/Notification$Style;->setBuilder(Landroid/app/Notification$Builder;)V HSPLandroid/app/Notification$Style;->validate(Landroid/content/Context;)V HSPLandroid/app/Notification;-><init>()V -HSPLandroid/app/Notification;-><init>(Landroid/os/Parcel;)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 @@ -2303,8 +2303,8 @@ 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 -HSPLandroid/app/Notification;->reduceImageSizes(Landroid/content/Context;)V +HSPLandroid/app/Notification;->readFromParcelImpl(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/app/Notification$1;,Landroid/graphics/drawable/Icon$1;,Landroid/app/PendingIntent$1;,Landroid/media/AudioAttributes$1;,Landroid/text/TextUtils$1;,Landroid/app/Notification$BubbleMetadata$1;]Landroid/graphics/drawable/Icon;Landroid/graphics/drawable/Icon;]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/app/Notification;->reduceImageSizes(Landroid/content/Context;)V+]Landroid/os/Bundle;Landroid/os/Bundle;]Landroid/graphics/drawable/Icon;Landroid/graphics/drawable/Icon;]Landroid/app/Notification;Landroid/app/Notification;]Landroid/content/res/Resources;Landroid/content/res/Resources; 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; @@ -2312,11 +2312,11 @@ 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 +HSPLandroid/app/Notification;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/app/Notification;->writeToParcelImpl(Landroid/os/Parcel;I)V+]Landroid/media/AudioAttributes;Landroid/media/AudioAttributes;]Landroid/graphics/drawable/Icon;Landroid/graphics/drawable/Icon;]Landroid/os/Parcel;Landroid/os/Parcel;]Landroid/app/PendingIntent;Landroid/app/PendingIntent;]Landroid/app/Notification$BubbleMetadata;Landroid/app/Notification$BubbleMetadata; HSPLandroid/app/NotificationChannel$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/NotificationChannel; -HSPLandroid/app/NotificationChannel$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/NotificationChannel;-><init>(Landroid/os/Parcel;)V +HSPLandroid/app/NotificationChannel$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 @@ -2335,7 +2335,7 @@ HSPLandroid/app/NotificationChannel;->getLockscreenVisibility()I HSPLandroid/app/NotificationChannel;->getName()Ljava/lang/CharSequence; HSPLandroid/app/NotificationChannel;->getOriginalImportance()I HSPLandroid/app/NotificationChannel;->getSound()Landroid/net/Uri; -HSPLandroid/app/NotificationChannel;->getTrimmedString(Ljava/lang/String;)Ljava/lang/String; +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 @@ -2385,12 +2385,12 @@ HSPLandroid/app/NotificationManager;->createNotificationChannelGroups(Ljava/util 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;->fixNotification(Landroid/app/Notification;)Landroid/app/Notification;+]Landroid/app/Notification;Landroid/app/Notification;]Landroid/content/Context;Landroid/view/ContextThemeWrapper; 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;->getNotificationChannel(Ljava/lang/String;)Landroid/app/NotificationChannel;+]Landroid/content/Context;Landroid/view/ContextThemeWrapper;]Landroid/app/INotificationManager;Landroid/app/INotificationManager$Stub$Proxy; HSPLandroid/app/NotificationManager;->getNotificationChannelGroup(Ljava/lang/String;)Landroid/app/NotificationChannelGroup; HSPLandroid/app/NotificationManager;->getNotificationChannelGroups()Ljava/util/List; HSPLandroid/app/NotificationManager;->getNotificationChannels()Ljava/util/List; @@ -2399,7 +2399,7 @@ HSPLandroid/app/NotificationManager;->getService()Landroid/app/INotificationMana 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;->notifyAsUser(Ljava/lang/String;ILandroid/app/Notification;Landroid/os/UserHandle;)V+]Landroid/content/Context;Landroid/view/ContextThemeWrapper;]Landroid/os/UserHandle;Landroid/os/UserHandle;]Landroid/app/INotificationManager;Landroid/app/INotificationManager$Stub$Proxy; HSPLandroid/app/NotificationManager;->zenModeToInterruptionFilter(I)I HSPLandroid/app/PendingIntent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/PendingIntent; HSPLandroid/app/PendingIntent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; @@ -2410,22 +2410,22 @@ 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+]Landroid/content/Context;missing_types -HSPLandroid/app/PendingIntent;->equals(Ljava/lang/Object;)Z +HSPLandroid/app/PendingIntent;->checkPendingIntent(ILandroid/content/Intent;Landroid/content/Context;Z)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/Intent;Landroid/content/Intent;]Landroid/content/Context;missing_types +HSPLandroid/app/PendingIntent;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Object;Landroid/os/BinderProxy;]Landroid/content/IIntentSender;Landroid/content/IIntentSender$Stub$Proxy; 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;->getBroadcastAsUser(Landroid/content/Context;ILandroid/content/Intent;ILandroid/os/UserHandle;)Landroid/app/PendingIntent;+]Landroid/os/UserHandle;Landroid/os/UserHandle;]Landroid/content/Intent;Landroid/content/Intent;]Landroid/app/IActivityManager;Landroid/app/IActivityManager$Stub$Proxy; 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;->hashCode()I+]Ljava/lang/Object;Landroid/os/BinderProxy;]Landroid/content/IIntentSender;Landroid/content/IIntentSender$Stub$Proxy; HSPLandroid/app/PendingIntent;->isActivity()Z HSPLandroid/app/PendingIntent;->isNewMutableDisallowedImplicitPendingIntent(ILandroid/content/Intent;Z)Z+]Landroid/content/Intent;Landroid/content/Intent; HSPLandroid/app/PendingIntent;->send()V @@ -2435,7 +2435,7 @@ HSPLandroid/app/PendingIntent;->sendAndReturnResult(Landroid/content/Context;ILa 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/PendingIntent;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/app/PendingIntent$OnMarshaledListener;Landroid/app/Notification$$ExternalSyntheticLambda0;]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal;]Landroid/content/IIntentSender;Landroid/content/IIntentSender$Stub$Proxy;]Landroid/os/Parcel;Landroid/os/Parcel; 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 @@ -2488,7 +2488,7 @@ HSPLandroid/app/PropertyInvalidatedCache;->maybeCheckConsistency(Ljava/lang/Obje 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/PropertyInvalidatedCache;->registerCache()V+]Ljava/util/HashSet;Ljava/util/HashSet;]Ljava/util/WeakHashMap;Ljava/util/WeakHashMap; HSPLandroid/app/QueuedWork$QueuedWorkHandler;-><init>(Landroid/os/Looper;)V HSPLandroid/app/QueuedWork$QueuedWorkHandler;->handleMessage(Landroid/os/Message;)V HSPLandroid/app/QueuedWork;->-$$Nest$smprocessPendingWork()V @@ -2530,7 +2530,7 @@ HSPLandroid/app/ResourcesManager$ApkAssetsSupplier;-><init>(Landroid/app/Resourc 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 -HSPLandroid/app/ResourcesManager$ApkKey;->hashCode()I +HSPLandroid/app/ResourcesManager$ApkKey;->hashCode()I+]Ljava/lang/String;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; @@ -2555,7 +2555,7 @@ HSPLandroid/app/ResourcesManager;->createResourcesForActivity(Landroid/os/IBinde 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; -HSPLandroid/app/ResourcesManager;->extractApkKeys(Landroid/content/res/ResourcesKey;)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; @@ -2627,9 +2627,9 @@ HSPLandroid/app/SharedPreferencesImpl$EditorImpl;-><init>(Landroid/app/SharedPre HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->apply()V HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->clear()Landroid/content/SharedPreferences$Editor; HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->commit()Z -HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->commitToMemory()Landroid/app/SharedPreferencesImpl$MemoryCommitResult; -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;->commitToMemory()Landroid/app/SharedPreferencesImpl$MemoryCommitResult;+]Ljava/util/Map$Entry;Ljava/util/HashMap$Node;]Ljava/lang/Object;Ljava/lang/String;,Ljava/util/HashSet;,Ljava/lang/Long;,Ljava/lang/Boolean;]Ljava/util/List;Ljava/util/ArrayList;]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+]Landroid/os/Handler;Landroid/app/ActivityThread$H;]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/HashMap$KeyIterator;]Ljava/util/Set;Ljava/util/HashSet; +HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->putBoolean(Ljava/lang/String;Z)Landroid/content/SharedPreferences$Editor;+]Ljava/util/Map;Ljava/util/HashMap; 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; @@ -2652,7 +2652,7 @@ HSPLandroid/app/SharedPreferencesImpl;->-$$Nest$fputmMap(Landroid/app/SharedPref 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;->awaitLoadedLocked()V+]Ljava/lang/Object;Ljava/lang/Object;]Ldalvik/system/BlockGuard$Policy;Ldalvik/system/BlockGuard$1;,Landroid/os/StrictMode$AndroidBlockGuardPolicy; 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; @@ -2660,9 +2660,9 @@ HSPLandroid/app/SharedPreferencesImpl;->enqueueDiskWrite(Landroid/app/SharedPref 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;->getInt(Ljava/lang/String;I)I+]Ljava/lang/Integer;Ljava/lang/Integer;]Ljava/util/Map;Ljava/util/HashMap; 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;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;+]Ljava/util/Map;Ljava/util/HashMap; 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 @@ -2832,8 +2832,8 @@ HSPLandroid/app/SystemServiceRegistry$9;->createService(Landroid/app/ContextImpl HSPLandroid/app/SystemServiceRegistry$CachedServiceFetcher;->getService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$StaticServiceFetcher;->getService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry;->createServiceCache()[Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry;->getSystemService(Landroid/app/ContextImpl;Ljava/lang/String;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry;->getSystemServiceName(Ljava/lang/Class;)Ljava/lang/String; +HSPLandroid/app/SystemServiceRegistry;->getSystemService(Landroid/app/ContextImpl;Ljava/lang/String;)Ljava/lang/Object;+]Landroid/app/SystemServiceRegistry$ServiceFetcher;megamorphic_types]Ljava/util/Map;Landroid/util/ArrayMap; +HSPLandroid/app/SystemServiceRegistry;->getSystemServiceName(Ljava/lang/Class;)Ljava/lang/String;+]Ljava/util/Map;Landroid/util/ArrayMap; HSPLandroid/app/TaskInfo;-><init>()V HSPLandroid/app/TaskInfo;->getWindowingMode()I HSPLandroid/app/TaskInfo;->readFromParcel(Landroid/os/Parcel;)V @@ -2879,7 +2879,7 @@ HSPLandroid/app/WallpaperManager;->initGlobals(Landroid/app/IWallpaperManager;La HSPLandroid/app/WallpaperManager;->setWallpaperZoomOut(Landroid/os/IBinder;F)V HSPLandroid/app/WindowConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/WindowConfiguration; HSPLandroid/app/WindowConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/WindowConfiguration;-><init>()V +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;->canReceiveKeys()Z @@ -2901,20 +2901,20 @@ 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 -HSPLandroid/app/WindowConfiguration;->setBounds(Landroid/graphics/Rect;)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 +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 +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 +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 +HSPLandroid/app/WindowConfiguration;->unset()V+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration; +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 @@ -2987,7 +2987,7 @@ 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;->writeSelfToParcel(Landroid/os/Parcel;Landroid/os/PooledStringWriter;Z[FZ)I+]Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillId;]Landroid/app/assist/AssistStructure$ViewNodeText;Landroid/app/assist/AssistStructure$ViewNodeText;]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -3075,7 +3075,7 @@ 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;->getCurrentTransport()Ljava/lang/String;+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/app/backup/IBackupManager$Stub$Proxy;Landroid/app/backup/IBackupManager$Stub$Proxy;]Landroid/os/Parcel;Landroid/os/Parcel; 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 @@ -3115,7 +3115,7 @@ 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;->getPendingJob(Ljava/lang/String;I)Landroid/app/job/JobInfo;+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/app/job/IJobScheduler$Stub$Proxy;Landroid/app/job/IJobScheduler$Stub$Proxy;]Landroid/os/Parcel;Landroid/os/Parcel; 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 @@ -3181,9 +3181,9 @@ HSPLandroid/app/job/JobInfo$TriggerContentUri$1;->newArray(I)[Landroid/app/job/J HSPLandroid/app/job/JobInfo$TriggerContentUri$1;->newArray(I)[Ljava/lang/Object; HSPLandroid/app/job/JobInfo$TriggerContentUri;-><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 +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 +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(ZZ)V HSPLandroid/app/job/JobInfo;->getExtras()Landroid/os/PersistableBundle; HSPLandroid/app/job/JobInfo;->getFlags()I @@ -3202,7 +3202,7 @@ 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;->writeToParcel(Landroid/os/Parcel;I)V +HSPLandroid/app/job/JobInfo;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/net/NetworkRequest;Landroid/net/NetworkRequest;]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 @@ -3452,8 +3452,8 @@ 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; +HSPLandroid/app/usage/UsageEvents;->readEventFromParcel(Landroid/os/Parcel;Landroid/app/usage/UsageEvents$Event;)V+]Landroid/os/Parcelable$Creator;Landroid/content/res/Configuration$1;]Landroid/os/Parcel;Landroid/os/Parcel; +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;]Landroid/util/ArrayMap;Landroid/util/ArrayMap; 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 @@ -3479,7 +3479,7 @@ 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 +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 @@ -3544,7 +3544,7 @@ 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/AttributionSourceState;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; 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 @@ -3610,7 +3610,7 @@ HSPLandroid/content/ComponentName$1;->createFromParcel(Landroid/os/Parcel;)Landr 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/Class;)V+]Ljava/lang/Class;Ljava/lang/Class; 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 @@ -3629,7 +3629,7 @@ 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; +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; @@ -3639,7 +3639,7 @@ HSPLandroid/content/ContentCaptureOptions$ContentProtectionOptions;->createFromP 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/ContentCaptureOptions;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -3650,7 +3650,7 @@ HSPLandroid/content/ContentProvider$Transport;->enforceWritePermission(Landroid/ 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;->openTypedAssetFile(Landroid/content/AttributionSource;Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ICancellationSignal;)Landroid/content/res/AssetFileDescriptor;+]Landroid/net/Uri;Landroid/net/Uri$HierarchicalUri; 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; @@ -3671,15 +3671,15 @@ HSPLandroid/content/ContentProvider;->delete(Landroid/net/Uri;Landroid/os/Bundle 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;->getAuthorityWithoutUserId(Ljava/lang/String;)Ljava/lang/String;+]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;->getUriWithoutUserId(Landroid/net/Uri;)Landroid/net/Uri;+]Landroid/net/Uri$Builder;Landroid/net/Uri$Builder;]Landroid/net/Uri;Landroid/net/Uri$HierarchicalUri;,Landroid/net/Uri$StringUri; +HSPLandroid/content/ContentProvider;->getUserIdFromAuthority(Ljava/lang/String;I)I+]Ljava/lang/String;Ljava/lang/String; HSPLandroid/content/ContentProvider;->getUserIdFromUri(Landroid/net/Uri;)I HSPLandroid/content/ContentProvider;->getUserIdFromUri(Landroid/net/Uri;I)I HSPLandroid/content/ContentProvider;->getWritePermission()Ljava/lang/String; @@ -3699,7 +3699,7 @@ HSPLandroid/content/ContentProvider;->query(Landroid/net/Uri;[Ljava/lang/String; 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;->setCallingAttributionSource(Landroid/content/AttributionSource;)Landroid/content/AttributionSource;+]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal; HSPLandroid/content/ContentProvider;->setPathPermissions([Landroid/content/pm/PathPermission;)V HSPLandroid/content/ContentProvider;->setReadPermission(Ljava/lang/String;)V HSPLandroid/content/ContentProvider;->setTransportLoggingEnabled(Z)V @@ -3734,10 +3734,10 @@ HSPLandroid/content/ContentProviderNative;->asInterface(Landroid/os/IBinder;)Lan 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;->build()Landroid/content/ContentProviderOperation;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; 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;->setValue(Ljava/lang/String;Ljava/lang/Object;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; 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; @@ -3760,12 +3760,12 @@ HSPLandroid/content/ContentProviderOperation;->resolveValueBackReferences([Landr 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;->call(Landroid/content/AttributionSource;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;+]Landroid/content/AttributionSource;Landroid/content/AttributionSource;]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel; 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;->insert(Landroid/content/AttributionSource;Landroid/net/Uri;Landroid/content/ContentValues;Landroid/os/Bundle;)Landroid/net/Uri;+]Landroid/content/AttributionSource;Landroid/content/AttributionSource;]Landroid/os/Parcelable$Creator;Landroid/net/Uri$1;]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/content/ContentValues;Landroid/content/ContentValues;]Landroid/os/Parcel;Landroid/os/Parcel;]Landroid/net/Uri;Landroid/net/Uri$StringUri; 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; +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/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;]Landroid/os/ICancellationSignal;Landroid/os/ICancellationSignal$Stub$Proxy; 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; @@ -3774,8 +3774,8 @@ 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;-><init>(Landroid/content/ContentResolver;Landroid/database/Cursor;Landroid/content/IContentProvider;)V+]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard; +HSPLandroid/content/ContentResolver$CursorWrapperInner;->close()V+]Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/atomic/AtomicBoolean;]Landroid/content/ContentResolver;Landroid/app/ContextImpl$ApplicationContentResolver;]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard; 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 @@ -3785,14 +3785,14 @@ 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;-><init>(Landroid/content/Context;Landroid/content/ContentInterface;)V+]Landroid/content/Context;Landroid/app/ContextImpl; 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(Landroid/net/Uri;)Landroid/content/IContentProvider;+]Ljava/lang/String;Ljava/lang/String;]Landroid/content/ContentResolver;Landroid/app/ContextImpl$ApplicationContentResolver;]Landroid/net/Uri;Landroid/net/Uri$HierarchicalUri;,Landroid/net/Uri$StringUri; 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;->acquireUnstableProvider(Landroid/net/Uri;)Landroid/content/IContentProvider;+]Ljava/lang/String;Ljava/lang/String;]Landroid/content/ContentResolver;Landroid/app/ContextImpl$ApplicationContentResolver;]Landroid/net/Uri;Landroid/net/Uri$HierarchicalUri;,Landroid/net/Uri$StringUri; 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; @@ -3813,10 +3813,10 @@ 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;->getType(Landroid/net/Uri;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Landroid/content/ContentResolver$StringResultListener;Landroid/content/ContentResolver$StringResultListener;]Landroid/app/IActivityManager;Landroid/app/IActivityManager$Stub$Proxy;]Landroid/content/ContentResolver;Landroid/app/ContextImpl$ApplicationContentResolver;]Landroid/net/Uri;Landroid/net/Uri$StringUri; +HSPLandroid/content/ContentResolver;->getUserId()I+]Landroid/content/Context;Landroid/app/ContextImpl; 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;->insert(Landroid/net/Uri;Landroid/content/ContentValues;Landroid/os/Bundle;)Landroid/net/Uri;+]Landroid/content/IContentProvider;Landroid/content/ContentProviderProxy;]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/ContentResolver;Landroid/app/ContextImpl$ApplicationContentResolver; 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 @@ -3833,7 +3833,7 @@ HSPLandroid/content/ContentResolver;->openFileDescriptor(Landroid/net/Uri;Ljava/ 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;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Landroid/database/Cursor;+]Landroid/content/IContentProvider;Landroid/content/ContentProviderProxy;]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/database/Cursor;Landroid/database/BulkCursorToCursorAdaptor;]Landroid/content/ContentResolver;Landroid/app/ContextImpl$ApplicationContentResolver; 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 @@ -3845,27 +3845,27 @@ 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;->unregisterContentObserver(Landroid/database/ContentObserver;)V+]Landroid/database/ContentObserver;Landroid/database/AbstractCursor$SelfContentObserver;]Landroid/content/IContentService;Landroid/content/IContentService$Stub$Proxy; 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;->appendId(Landroid/net/Uri$Builder;J)Landroid/net/Uri$Builder;+]Landroid/net/Uri$Builder;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/ContentUris;->withAppendedId(Landroid/net/Uri;J)Landroid/net/Uri;+]Landroid/net/Uri$Builder;Landroid/net/Uri$Builder;]Landroid/net/Uri;Landroid/net/Uri$HierarchicalUri;,Landroid/net/Uri$StringUri; 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;->clear()V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; 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;->equals(Ljava/lang/Object;)Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; +HSPLandroid/content/ContentValues;->get(Ljava/lang/String;)Ljava/lang/Object;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; 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;->getAsLong(Ljava/lang/String;)Ljava/lang/Long;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/Number;Ljava/lang/Long; +HSPLandroid/content/ContentValues;->getAsString(Ljava/lang/String;)Ljava/lang/String;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/Object;Ljava/lang/String;,Ljava/lang/Integer;,Ljava/lang/Long; HSPLandroid/content/ContentValues;->getValues()Landroid/util/ArrayMap; HSPLandroid/content/ContentValues;->isEmpty()Z HSPLandroid/content/ContentValues;->isSupportedValue(Ljava/lang/Object;)Z @@ -3873,9 +3873,9 @@ 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;Ljava/lang/Integer;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; +HSPLandroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Long;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; +HSPLandroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; 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 @@ -3884,23 +3884,23 @@ 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/ContentValues;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/Parcel;Landroid/os/Parcel; 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;->getDrawable(I)Landroid/graphics/drawable/Drawable;+]Landroid/content/res/Resources;Landroid/content/res/Resources; 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;->getSystemService(Ljava/lang/Class;)Ljava/lang/Object;+]Landroid/content/Context;missing_types 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;->isAutofillCompatibilityEnabled()Z+]Landroid/content/Context;missing_types HSPLandroid/content/Context;->obtainStyledAttributes(I[I)Landroid/content/res/TypedArray; -HSPLandroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray; -HSPLandroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray; -HSPLandroid/content/Context;->obtainStyledAttributes([I)Landroid/content/res/TypedArray; +HSPLandroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;+]Landroid/content/res/Resources$Theme;Landroid/content/res/Resources$Theme;]Landroid/content/Context;missing_types +HSPLandroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray;+]Landroid/content/res/Resources$Theme;Landroid/content/res/Resources$Theme;]Landroid/content/Context;missing_types +HSPLandroid/content/Context;->obtainStyledAttributes([I)Landroid/content/res/TypedArray;+]Landroid/content/res/Resources$Theme;Landroid/content/res/Resources$Theme;]Landroid/content/Context;missing_types HSPLandroid/content/Context;->registerComponentCallbacks(Landroid/content/ComponentCallbacks;)V HSPLandroid/content/Context;->unregisterComponentCallbacks(Landroid/content/ComponentCallbacks;)V HSPLandroid/content/ContextParams$Builder;-><init>()V @@ -3933,7 +3933,7 @@ HSPLandroid/content/ContextWrapper;->createAttributionContext(Ljava/lang/String; 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;->createDeviceProtectedStorageContext()Landroid/content/Context;+]Landroid/content/Context;Landroid/app/ContextImpl; 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; @@ -3946,55 +3946,55 @@ HSPLandroid/content/ContextWrapper;->enforceCallingPermission(Ljava/lang/String; 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;->getApplicationContext()Landroid/content/Context;+]Landroid/content/Context;missing_types 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;->getAutofillOptions()Landroid/content/AutofillOptions;+]Landroid/content/Context;missing_types 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; +HSPLandroid/content/ContextWrapper;->getContentCaptureOptions()Landroid/content/ContentCaptureOptions;+]Landroid/content/Context;missing_types +HSPLandroid/content/ContextWrapper;->getContentResolver()Landroid/content/ContentResolver;+]Landroid/content/Context;Landroid/app/ContextImpl; 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 +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;->getExternalFilesDir(Ljava/lang/String;)Ljava/io/File;+]Landroid/content/Context;Landroid/app/ContextImpl; 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;->getFilesDir()Ljava/io/File;+]Landroid/content/Context;missing_types 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;->getOpPackageName()Ljava/lang/String;+]Landroid/content/Context;missing_types HSPLandroid/content/ContextWrapper;->getPackageCodePath()Ljava/lang/String; -HSPLandroid/content/ContextWrapper;->getPackageManager()Landroid/content/pm/PackageManager; -HSPLandroid/content/ContextWrapper;->getPackageName()Ljava/lang/String; +HSPLandroid/content/ContextWrapper;->getPackageManager()Landroid/content/pm/PackageManager;+]Landroid/content/Context;missing_types +HSPLandroid/content/ContextWrapper;->getPackageName()Ljava/lang/String;+]Landroid/content/Context;missing_types 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; +HSPLandroid/content/ContextWrapper;->getResources()Landroid/content/res/Resources;+]Landroid/content/Context;missing_types +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; -HSPLandroid/content/ContextWrapper;->getSystemServiceName(Ljava/lang/Class;)Ljava/lang/String; +HSPLandroid/content/ContextWrapper;->getSystemServiceName(Ljava/lang/Class;)Ljava/lang/String;+]Landroid/content/Context;missing_types HSPLandroid/content/ContextWrapper;->getTheme()Landroid/content/res/Resources$Theme; HSPLandroid/content/ContextWrapper;->getUser()Landroid/os/UserHandle; HSPLandroid/content/ContextWrapper;->getUserId()I HSPLandroid/content/ContextWrapper;->getWindowContextToken()Landroid/os/IBinder; 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;->isRestricted()Z+]Landroid/content/Context;missing_types 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; @@ -4038,7 +4038,7 @@ 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;->notifyChange([Landroid/net/Uri;Landroid/database/IContentObserver;ZIIILjava/lang/String;)V+]Landroid/content/IContentService$Stub$Proxy;Landroid/content/IContentService$Stub$Proxy;]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel; 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 @@ -4078,7 +4078,7 @@ 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;)V+]Landroid/content/Intent;Landroid/content/Intent; HSPLandroid/content/Intent;-><init>(Ljava/lang/String;Landroid/net/Uri;Landroid/content/Context;Ljava/lang/Class;)V HSPLandroid/content/Intent;->addCategory(Ljava/lang/String;)Landroid/content/Intent; HSPLandroid/content/Intent;->addFlags(I)Landroid/content/Intent; @@ -4123,11 +4123,11 @@ HSPLandroid/content/Intent;->makeMainActivity(Landroid/content/ComponentName;)La 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;->parseUriInternal(Ljava/lang/String;I)Landroid/content/Intent;+]Ljava/lang/String;Ljava/lang/String; 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;->prepareToLeaveProcess(Landroid/content/Context;)V+]Landroid/content/Context;missing_types]Landroid/content/ComponentName;Landroid/content/ComponentName;]Landroid/content/Intent;Landroid/content/Intent; +HSPLandroid/content/Intent;->prepareToLeaveProcess(Z)V+]Ljava/lang/String;Ljava/lang/String;]Landroid/content/Intent;Landroid/content/Intent; HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent; HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;J)Landroid/content/Intent; HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;Landroid/os/Bundle;)Landroid/content/Intent; @@ -4153,7 +4153,7 @@ HSPLandroid/content/Intent;->resolveActivity(Landroid/content/pm/PackageManager; 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;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Landroid/content/Intent;Landroid/content/Intent; 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; @@ -4177,7 +4177,7 @@ HSPLandroid/content/Intent;->toString(Ljava/lang/StringBuilder;)V+]Ljava/lang/St 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 +HSPLandroid/content/Intent;->writeToParcel(Landroid/os/Parcel;I)V+]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; @@ -4189,7 +4189,7 @@ HSPLandroid/content/IntentFilter$AuthorityEntry;->writeToParcel(Landroid/os/Parc 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;-><init>(Ljava/lang/String;)V+]Landroid/content/IntentFilter;Landroid/content/IntentFilter; HSPLandroid/content/IntentFilter;->actionsIterator()Ljava/util/Iterator; HSPLandroid/content/IntentFilter;->addAction(Ljava/lang/String;)V HSPLandroid/content/IntentFilter;->addCategory(Ljava/lang/String;)V @@ -4241,7 +4241,7 @@ HSPLandroid/content/IntentFilter;->setOrder(I)V HSPLandroid/content/IntentFilter;->setPriority(I)V HSPLandroid/content/IntentFilter;->setVisibilityToInstantApp(I)V HSPLandroid/content/IntentFilter;->typesIterator()Ljava/util/Iterator; -HSPLandroid/content/IntentFilter;->writeToParcel(Landroid/os/Parcel;I)V +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;]Landroid/os/PatternMatcher;Landroid/os/PatternMatcher;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/content/IntentFilter$AuthorityEntry;Landroid/content/IntentFilter$AuthorityEntry; 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; @@ -4317,7 +4317,7 @@ 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 +HSPLandroid/content/UriMatcher;->match(Landroid/net/Uri;)I+]Ljava/lang/String;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; @@ -4325,7 +4325,7 @@ HSPLandroid/content/pm/ActivityInfo$1;->createFromParcel(Landroid/os/Parcel;)Lja HSPLandroid/content/pm/ActivityInfo$1;->newArray(I)[Landroid/content/pm/ActivityInfo; HSPLandroid/content/pm/ActivityInfo$1;->newArray(I)[Ljava/lang/Object; HSPLandroid/content/pm/ActivityInfo$WindowLayout;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/pm/ActivityInfo;-><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 @@ -4343,7 +4343,7 @@ HSPLandroid/content/pm/ApplicationInfo$1$$ExternalSyntheticLambda0;->readRawParc 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/content/pm/ApplicationInfo;)V+]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo; 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; @@ -4355,7 +4355,7 @@ HSPLandroid/content/pm/ApplicationInfo;->getCustomApplicationClassNameForProcess 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;->initForUser(I)V+]Ljava/lang/String;Ljava/lang/String;]Ljava/io/File;Ljava/io/File; HSPLandroid/content/pm/ApplicationInfo;->isDirectBootAware()Z HSPLandroid/content/pm/ApplicationInfo;->isEncryptionAware()Z HSPLandroid/content/pm/ApplicationInfo;->isExternal()Z @@ -4381,7 +4381,7 @@ 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 +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 @@ -4391,7 +4391,7 @@ 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; 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/BaseParceledListSlice;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/content/pm/BaseParceledListSlice;Landroid/content/pm/ParceledListSlice;]Ljava/lang/Object;Landroid/app/NotificationChannel;,Landroid/view/contentcapture/ContentCaptureEvent;]Ljava/util/List;Ljava/util/Arrays$ArrayList;,Ljava/util/ArrayList;]Landroid/os/Parcel;Landroid/os/Parcel; 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 @@ -4456,18 +4456,18 @@ HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getSystemSharedLibraryNames( 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;->isProtectedBroadcast(Ljava/lang/String;)Z+]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;->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; +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;->queryIntentServices(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;->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;->resolveService(Landroid/content/Intent;Ljava/lang/String;JI)Landroid/content/pm/ResolveInfo;+]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;->setComponentEnabledSetting(Landroid/content/ComponentName;IIILjava/lang/String;)V+]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;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager; HSPLandroid/content/pm/IPackageManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z @@ -4512,7 +4512,7 @@ HSPLandroid/content/pm/ModuleInfo;->getPackageName()Ljava/lang/String; HSPLandroid/content/pm/PackageInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/PackageInfo; HSPLandroid/content/pm/PackageInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/content/pm/PackageInfo;-><init>()V -HSPLandroid/content/pm/PackageInfo;-><init>(Landroid/os/Parcel;)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 @@ -4536,14 +4536,14 @@ HSPLandroid/content/pm/PackageInstaller;->getSessionInfo(I)Landroid/content/pm/P HSPLandroid/content/pm/PackageInstaller;->registerSessionCallback(Landroid/content/pm/PackageInstaller$SessionCallback;Landroid/os/Handler;)V HSPLandroid/content/pm/PackageItemInfo;-><init>()V HSPLandroid/content/pm/PackageItemInfo;-><init>(Landroid/content/pm/PackageItemInfo;)V -HSPLandroid/content/pm/PackageItemInfo;-><init>(Landroid/os/Parcel;)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/PackageItemInfo;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/content/pm/PackageManager$1;->recompute(Landroid/content/pm/PackageManager$ApplicationInfoQuery;)Landroid/content/pm/ApplicationInfo; HSPLandroid/content/pm/PackageManager$1;->recompute(Ljava/lang/Object;)Ljava/lang/Object; HSPLandroid/content/pm/PackageManager$2;->recompute(Landroid/content/pm/PackageManager$PackageInfoQuery;)Landroid/content/pm/PackageInfo; @@ -4584,7 +4584,7 @@ HSPLandroid/content/pm/PackageParser$Activity$1;->createFromParcel(Landroid/os/P 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$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+]Ljava/util/List;Ljava/util/ArrayList; 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; @@ -4639,7 +4639,7 @@ HSPLandroid/content/pm/PackageParser;->setDisplayMetrics(Landroid/util/DisplayMe 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/PackageParser;->validateName(Ljava/lang/String;ZZ)Ljava/lang/String;+]Ljava/lang/String;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; @@ -4694,7 +4694,7 @@ HSPLandroid/content/pm/RegisteredServicesCache;->containsType(Ljava/util/ArrayLi HSPLandroid/content/pm/ResolveInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ResolveInfo; HSPLandroid/content/pm/ResolveInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/content/pm/ResolveInfo;-><init>()V -HSPLandroid/content/pm/ResolveInfo;-><init>(Landroid/os/Parcel;)V +HSPLandroid/content/pm/ResolveInfo;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/content/pm/ActivityInfo$1;,Landroid/text/TextUtils$1;,Landroid/content/pm/ServiceInfo$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; @@ -4707,8 +4707,8 @@ 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; -HSPLandroid/content/pm/SharedLibraryInfo;-><init>(Landroid/os/Parcel;)V +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+]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 @@ -4718,7 +4718,7 @@ HSPLandroid/content/pm/SharedLibraryInfo;->getName()Ljava/lang/String; HSPLandroid/content/pm/SharedLibraryInfo;->getPath()Ljava/lang/String; HSPLandroid/content/pm/SharedLibraryInfo;->isNative()Z HSPLandroid/content/pm/SharedLibraryInfo;->isSdk()Z -HSPLandroid/content/pm/SharedLibraryInfo;->writeToParcel(Landroid/os/Parcel;I)V +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 @@ -4732,7 +4732,7 @@ HSPLandroid/content/pm/ShortcutInfo$Builder;->setLongLived(Z)Landroid/content/pm 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 -HSPLandroid/content/pm/ShortcutInfo;-><init>(Landroid/os/Parcel;)V +HSPLandroid/content/pm/ShortcutInfo;-><init>(Landroid/os/Parcel;)V+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/Object;Landroid/content/pm/ShortcutInfo;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -4795,12 +4795,12 @@ 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 +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;->getApkContentsSigners()[Landroid/content/pm/Signature;+]Landroid/content/pm/SigningDetails;Landroid/content/pm/SigningDetails; HSPLandroid/content/pm/SigningInfo;->getSigningCertificateHistory()[Landroid/content/pm/Signature; HSPLandroid/content/pm/SigningInfo;->hasMultipleSigners()Z HSPLandroid/content/pm/SigningInfo;->hasPastSigningCertificates()Z @@ -4828,10 +4828,10 @@ 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; -HSPLandroid/content/pm/VersionedPackage;-><init>(Landroid/os/Parcel;)V +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/VersionedPackage;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -4847,7 +4847,7 @@ HSPLandroid/content/pm/parsing/result/ParseTypeImpl;->reset()Landroid/content/pm 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>(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -4863,7 +4863,7 @@ HSPLandroid/content/res/ApkAssets;->dump(Ljava/io/PrintWriter;Ljava/lang/String; HSPLandroid/content/res/ApkAssets;->finalize()V HSPLandroid/content/res/ApkAssets;->getAssetPath()Ljava/lang/String; HSPLandroid/content/res/ApkAssets;->getDebugName()Ljava/lang/String; -HSPLandroid/content/res/ApkAssets;->getStringFromPool(I)Ljava/lang/CharSequence; +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; @@ -4898,7 +4898,7 @@ 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; +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 @@ -4908,7 +4908,7 @@ 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;->-$$Nest$smnativeSetApkAssets(J[Landroid/content/res/ApkAssets;Z)V -HSPLandroid/content/res/AssetManager;-><init>()V +HSPLandroid/content/res/AssetManager;-><init>()V+]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager; 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 @@ -4931,7 +4931,7 @@ HSPLandroid/content/res/AssetManager;->getLoaders()Ljava/util/List; HSPLandroid/content/res/AssetManager;->getLocales()[Ljava/lang/String; HSPLandroid/content/res/AssetManager;->getNonSystemLocales()[Ljava/lang/String; HSPLandroid/content/res/AssetManager;->getParentThemeIdentifier(I)I -HSPLandroid/content/res/AssetManager;->getPooledStringForCookie(II)Ljava/lang/CharSequence; +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; @@ -4941,15 +4941,15 @@ 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;->getResourceText(I)Ljava/lang/CharSequence;+]Landroid/util/TypedValue;Landroid/util/TypedValue;]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager; HSPLandroid/content/res/AssetManager;->getResourceTextArray(I)[Ljava/lang/CharSequence; HSPLandroid/content/res/AssetManager;->getResourceTypeName(I)Ljava/lang/String; -HSPLandroid/content/res/AssetManager;->getResourceValue(IILandroid/util/TypedValue;Z)Z +HSPLandroid/content/res/AssetManager;->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;->getThemeValue(JILandroid/util/TypedValue;Z)Z+]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager; HSPLandroid/content/res/AssetManager;->incRefsLocked(J)V -HSPLandroid/content/res/AssetManager;->isUpToDate()Z +HSPLandroid/content/res/AssetManager;->isUpToDate()Z+]Landroid/content/res/ApkAssets;Landroid/content/res/ApkAssets; 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; @@ -4957,13 +4957,13 @@ HSPLandroid/content/res/AssetManager;->openFd(Ljava/lang/String;)Landroid/conten HSPLandroid/content/res/AssetManager;->openNonAsset(ILjava/lang/String;I)Ljava/io/InputStream; HSPLandroid/content/res/AssetManager;->openNonAssetFd(ILjava/lang/String;)Landroid/content/res/AssetFileDescriptor; HSPLandroid/content/res/AssetManager;->openNonAssetFd(Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor; -HSPLandroid/content/res/AssetManager;->openXmlBlockAsset(ILjava/lang/String;)Landroid/content/res/XmlBlock; +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;->setApkAssets([Landroid/content/res/ApkAssets;Z)V+]Landroid/util/ArraySet;Landroid/util/ArraySet; HSPLandroid/content/res/AssetManager;->setConfiguration(IILjava/lang/String;IIIIIIIIIIIIIIII)V HSPLandroid/content/res/AssetManager;->setThemeTo(JLandroid/content/res/AssetManager;J)V HSPLandroid/content/res/AssetManager;->xmlBlockGone(I)V @@ -4973,7 +4973,7 @@ HSPLandroid/content/res/ColorStateList$ColorStateListFactory;-><init>(Landroid/c 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;)Landroid/content/res/ColorStateList;+]Landroid/content/res/ColorStateList;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 @@ -4985,13 +4985,13 @@ 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;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V+]Ljava/lang/String;Ljava/lang/String;]Landroid/util/AttributeSet;Landroid/content/res/XmlBlock$Parser;]Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/XmlBlock$Parser;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; 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;->valueOf(I)Landroid/content/res/ColorStateList;+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/lang/ref/WeakReference;Ljava/lang/ref/WeakReference; 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; @@ -5017,13 +5017,13 @@ 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>()V+]Landroid/content/res/Configuration;Landroid/content/res/Configuration; 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+]Ljava/lang/String;Ljava/lang/String;]Ljava/util/Locale;Ljava/util/Locale;]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;]Landroid/os/LocaleList;Landroid/os/LocaleList; 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;->diff(Landroid/content/res/Configuration;ZZ)I+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;]Landroid/os/LocaleList;Landroid/os/LocaleList; 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 @@ -5033,7 +5033,7 @@ HSPLandroid/content/res/Configuration;->getGrammaticalGender()I HSPLandroid/content/res/Configuration;->getLayoutDirection()I HSPLandroid/content/res/Configuration;->getLocales()Landroid/os/LocaleList; HSPLandroid/content/res/Configuration;->getScreenLayoutNoDirection(I)I -HSPLandroid/content/res/Configuration;->hashCode()I +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 @@ -5050,13 +5050,13 @@ HSPLandroid/content/res/Configuration;->setTo(Landroid/content/res/Configuration 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;->unset()V+]Landroid/content/res/Configuration;Landroid/content/res/Configuration; HSPLandroid/content/res/Configuration;->updateFrom(Landroid/content/res/Configuration;)I+]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;->getInstance(JLandroid/content/res/Resources;Landroid/content/res/Resources$Theme;)Ljava/lang/Object;+]Landroid/content/res/ConstantState;Landroid/animation/StateListAnimator$StateListAnimatorConstantState;,Landroid/content/res/ColorStateList$ColorStateListFactory;]Landroid/content/res/ConfigurationBoundResourceCache;Landroid/content/res/ConfigurationBoundResourceCache; 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 @@ -5066,12 +5066,12 @@ 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;->getInstance(JLandroid/content/res/Resources;Landroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;+]Landroid/graphics/drawable/Drawable$ConstantState;megamorphic_types]Landroid/content/res/DrawableCache;Landroid/content/res/DrawableCache; 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/FontResourcesParser;->parse(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/Resources;)Landroid/content/res/FontResourcesParser$FamilyResourceEntry; -HSPLandroid/content/res/FontResourcesParser;->readFamilies(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/Resources;)Landroid/content/res/FontResourcesParser$FamilyResourceEntry; -HSPLandroid/content/res/FontResourcesParser;->readFamily(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/Resources;)Landroid/content/res/FontResourcesParser$FamilyResourceEntry; +HSPLandroid/content/res/FontResourcesParser;->readFamilies(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/Resources;)Landroid/content/res/FontResourcesParser$FamilyResourceEntry;+]Ljava/lang/String;Ljava/lang/String;]Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/XmlBlock$Parser; +HSPLandroid/content/res/FontResourcesParser;->readFamily(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/Resources;)Landroid/content/res/FontResourcesParser$FamilyResourceEntry;+]Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/XmlBlock$Parser;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; HSPLandroid/content/res/FontScaleConverterFactory;->forScale(F)Landroid/content/res/FontScaleConverter; HSPLandroid/content/res/FontScaleConverterFactory;->isNonLinearFontScalingActive(F)Z HSPLandroid/content/res/GradientColor;-><init>()V @@ -5094,17 +5094,17 @@ 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;->getKey()Landroid/content/res/Resources$ThemeKey;+]Landroid/content/res/ResourcesImpl$ThemeImpl;Landroid/content/res/ResourcesImpl$ThemeImpl; 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; -HSPLandroid/content/res/Resources$Theme;->obtainStyledAttributes([I)Landroid/content/res/TypedArray; +HSPLandroid/content/res/Resources$Theme;->obtainStyledAttributes(I[I)Landroid/content/res/TypedArray;+]Landroid/content/res/ResourcesImpl$ThemeImpl;Landroid/content/res/ResourcesImpl$ThemeImpl; +HSPLandroid/content/res/Resources$Theme;->obtainStyledAttributes(Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray;+]Landroid/content/res/ResourcesImpl$ThemeImpl;Landroid/content/res/ResourcesImpl$ThemeImpl; +HSPLandroid/content/res/Resources$Theme;->obtainStyledAttributes([I)Landroid/content/res/TypedArray;+]Landroid/content/res/ResourcesImpl$ThemeImpl;Landroid/content/res/ResourcesImpl$ThemeImpl; 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;->resolveAttribute(ILandroid/util/TypedValue;Z)Z+]Landroid/content/res/ResourcesImpl$ThemeImpl;Landroid/content/res/ResourcesImpl$ThemeImpl; 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 @@ -5117,7 +5117,7 @@ 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 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 +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 @@ -5139,12 +5139,12 @@ HSPLandroid/content/res/Resources;->getConfiguration()Landroid/content/res/Confi 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; +HSPLandroid/content/res/Resources;->getDisplayAdjustments()Landroid/view/DisplayAdjustments;+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl; +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;->getDrawableForDensity(IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl;]Landroid/content/res/Resources;Landroid/content/res/Resources; 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; @@ -5160,31 +5160,31 @@ HSPLandroid/content/res/Resources;->getQuantityString(II[Ljava/lang/Object;)Ljav 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;->getResourcePackageName(I)Ljava/lang/String;+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl; 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;->getString(I)Ljava/lang/String;+]Landroid/content/res/Resources;Landroid/content/res/Resources;]Ljava/lang/CharSequence;Ljava/lang/String;,Landroid/text/SpannedString; +HSPLandroid/content/res/Resources;->getString(I[Ljava/lang/Object;)Ljava/lang/String;+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/content/res/Configuration;Landroid/content/res/Configuration;]Landroid/os/LocaleList;Landroid/os/LocaleList; 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;->getText(I)Ljava/lang/CharSequence;+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl;]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager; HSPLandroid/content/res/Resources;->getTextArray(I)[Ljava/lang/CharSequence; -HSPLandroid/content/res/Resources;->getValue(ILandroid/util/TypedValue;Z)V +HSPLandroid/content/res/Resources;->getValue(ILandroid/util/TypedValue;Z)V+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl; 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;->lambda$dumpHistory$1(Ljava/util/Map;Landroid/content/res/Resources;)V -HSPLandroid/content/res/Resources;->loadColorStateList(Landroid/util/TypedValue;ILandroid/content/res/Resources$Theme;)Landroid/content/res/ColorStateList; +HSPLandroid/content/res/Resources;->loadColorStateList(Landroid/util/TypedValue;ILandroid/content/res/Resources$Theme;)Landroid/content/res/ColorStateList;+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl; 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;->loadDrawable(Landroid/util/TypedValue;IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl; +HSPLandroid/content/res/Resources;->loadXmlResourceParser(ILjava/lang/String;)Landroid/content/res/XmlResourceParser;+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Ljava/lang/CharSequence;Ljava/lang/String; +HSPLandroid/content/res/Resources;->loadXmlResourceParser(Ljava/lang/String;IILjava/lang/String;)Landroid/content/res/XmlResourceParser;+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl; 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; +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;->obtainTypedArray(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;->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; @@ -5222,15 +5222,15 @@ 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;->resolveAttribute(ILandroid/util/TypedValue;Z)Z+]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager; 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 +HSPLandroid/content/res/ResourcesImpl;-><init>(Landroid/content/res/AssetManager;Landroid/util/DisplayMetrics;Landroid/content/res/Configuration;Landroid/view/DisplayAdjustments;)V+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl;]Landroid/view/DisplayAdjustments;Landroid/view/DisplayAdjustments;]Landroid/content/res/Configuration;Landroid/content/res/Configuration;]Landroid/util/DisplayMetrics;Landroid/util/DisplayMetrics; 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 -HSPLandroid/content/res/ResourcesImpl;->calcConfigChanges(Landroid/content/res/Configuration;)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+]Landroid/content/res/CompatibilityInfo;Landroid/content/res/CompatibilityInfo$1;]Landroid/content/res/Configuration;Landroid/content/res/Configuration;]Landroid/view/DisplayAdjustments;Landroid/view/DisplayAdjustments;]Landroid/os/LocaleList;Landroid/os/LocaleList; 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 @@ -5238,7 +5238,7 @@ 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;->getColorStateListFromInt(Landroid/util/TypedValue;J)Landroid/content/res/ColorStateList;+]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;]Landroid/content/res/ConstantState;Landroid/content/res/ColorStateList$ColorStateListFactory; 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; @@ -5248,25 +5248,25 @@ HSPLandroid/content/res/ResourcesImpl;->getPluralRule()Landroid/icu/text/PluralR 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;->getResourcePackageName(I)Ljava/lang/String;+]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager; 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;->getValue(ILandroid/util/TypedValue;Z)V+]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager; HSPLandroid/content/res/ResourcesImpl;->getValueForDensity(IILandroid/util/TypedValue;Z)V 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; -HSPLandroid/content/res/ResourcesImpl;->loadDrawable(Landroid/content/res/Resources;Landroid/util/TypedValue;IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable; -HSPLandroid/content/res/ResourcesImpl;->loadDrawableForCookie(Landroid/content/res/Resources;Landroid/util/TypedValue;II)Landroid/graphics/drawable/Drawable; -HSPLandroid/content/res/ResourcesImpl;->loadFont(Landroid/content/res/Resources;Landroid/util/TypedValue;I)Landroid/graphics/Typeface; +HSPLandroid/content/res/ResourcesImpl;->loadComplexColorForCookie(Landroid/content/res/Resources;Landroid/util/TypedValue;ILandroid/content/res/Resources$Theme;)Landroid/content/res/ComplexColor;+]Ljava/lang/String;Ljava/lang/String;]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl;]Ljava/lang/CharSequence;Ljava/lang/String;]Landroid/content/res/XmlResourceParser;Landroid/content/res/XmlBlock$Parser; +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;]Landroid/content/res/ComplexColor;Landroid/content/res/ColorStateList;]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray; +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;+]Ljava/lang/String;Ljava/lang/String;]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl;]Landroid/content/res/ResourcesImpl$LookupStack;Landroid/content/res/ResourcesImpl$LookupStack;]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal$SuppliedThreadLocal;]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager;]Ljava/lang/CharSequence;Ljava/lang/String; +HSPLandroid/content/res/ResourcesImpl;->loadFont(Landroid/content/res/Resources;Landroid/util/TypedValue;I)Landroid/graphics/Typeface;+]Ljava/lang/String;Ljava/lang/String;]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl;]Ljava/lang/CharSequence;Ljava/lang/String;]Landroid/graphics/Typeface$Builder;Landroid/graphics/Typeface$Builder; 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/String;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;->openRawResource(ILandroid/util/TypedValue;)Ljava/io/InputStream;+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl;]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager;]Ljava/lang/CharSequence;Ljava/lang/String; 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/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; @@ -5280,45 +5280,45 @@ HSPLandroid/content/res/StringBlock;->applyStyles(Ljava/lang/String;[ILandroid/c HSPLandroid/content/res/StringBlock;->close()V HSPLandroid/content/res/StringBlock;->finalize()V HSPLandroid/content/res/StringBlock;->get(I)Ljava/lang/CharSequence; -HSPLandroid/content/res/StringBlock;->getSequence(I)Ljava/lang/CharSequence;+]Landroid/util/SparseArray;Landroid/util/SparseArray; +HSPLandroid/content/res/StringBlock;->getSequence(I)Ljava/lang/CharSequence;+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/lang/String;Ljava/lang/String; HSPLandroid/content/res/ThemedResourceCache;-><init>()V -HSPLandroid/content/res/ThemedResourceCache;->get(JLandroid/content/res/Resources$Theme;)Ljava/lang/Object; +HSPLandroid/content/res/ThemedResourceCache;->get(JLandroid/content/res/Resources$Theme;)Ljava/lang/Object;+]Ljava/lang/ref/WeakReference;Ljava/lang/ref/WeakReference;]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray; HSPLandroid/content/res/ThemedResourceCache;->getGeneration()I -HSPLandroid/content/res/ThemedResourceCache;->getThemedLocked(Landroid/content/res/Resources$Theme;Z)Landroid/util/LongSparseArray; +HSPLandroid/content/res/ThemedResourceCache;->getThemedLocked(Landroid/content/res/Resources$Theme;Z)Landroid/util/LongSparseArray;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/content/res/Resources$Theme;Landroid/content/res/Resources$Theme;]Landroid/content/res/Resources$ThemeKey;Landroid/content/res/Resources$ThemeKey; 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+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; 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/ThemedResourceCache;->put(JLandroid/content/res/Resources$Theme;Ljava/lang/Object;IZ)V+]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray; +HSPLandroid/content/res/TypedArray;-><init>(Landroid/content/res/Resources;)V+]Landroid/content/res/Resources;Landroid/content/res/Resources; HSPLandroid/content/res/TypedArray;->extractThemeAttrs()[I -HSPLandroid/content/res/TypedArray;->extractThemeAttrs([I)[I +HSPLandroid/content/res/TypedArray;->extractThemeAttrs([I)[I+]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; HSPLandroid/content/res/TypedArray;->getBoolean(IZ)Z -HSPLandroid/content/res/TypedArray;->getChangingConfigurations()I -HSPLandroid/content/res/TypedArray;->getColor(II)I -HSPLandroid/content/res/TypedArray;->getColorStateList(I)Landroid/content/res/ColorStateList; -HSPLandroid/content/res/TypedArray;->getComplexColor(I)Landroid/content/res/ComplexColor; +HSPLandroid/content/res/TypedArray;->getChangingConfigurations()I+]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; +HSPLandroid/content/res/TypedArray;->getColor(II)I+]Landroid/content/res/ColorStateList;Landroid/content/res/ColorStateList;]Landroid/content/res/Resources;Landroid/content/res/Resources; +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;+]Landroid/content/res/Resources;Landroid/content/res/Resources; 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; -HSPLandroid/content/res/TypedArray;->getDrawableForDensity(II)Landroid/graphics/drawable/Drawable; +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;->getFont(I)Landroid/graphics/Typeface;+]Landroid/content/res/Resources;Landroid/content/res/Resources; 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; +HSPLandroid/content/res/TypedArray;->getLayoutDimension(ILjava/lang/String;)I+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; +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; +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 @@ -5327,7 +5327,7 @@ 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; +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; 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; @@ -5340,27 +5340,27 @@ HSPLandroid/content/res/XmlBlock$Parser;->getAttributeBooleanValue(Ljava/lang/St 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;->getAttributeName(I)Ljava/lang/String;+]Landroid/content/res/StringBlock;Landroid/content/res/StringBlock; 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; -HSPLandroid/content/res/XmlBlock$Parser;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; +HSPLandroid/content/res/XmlBlock$Parser;->getAttributeResourceValue(Ljava/lang/String;Ljava/lang/String;I)I+]Landroid/content/res/XmlBlock$Parser;Landroid/content/res/XmlBlock$Parser; +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;+]Landroid/content/res/XmlBlock$Parser;Landroid/content/res/XmlBlock$Parser; 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; +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;->getSequenceString(Ljava/lang/CharSequence;)Ljava/lang/String;+]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;->getText()Ljava/lang/String;+]Landroid/content/res/StringBlock;Landroid/content/res/StringBlock; HSPLandroid/content/res/XmlBlock$Parser;->isEmptyElementTag()Z HSPLandroid/content/res/XmlBlock$Parser;->next()I+]Landroid/content/res/XmlBlock$Parser;Landroid/content/res/XmlBlock$Parser; -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$Parser;->nextTag()I+]Landroid/content/res/XmlBlock$Parser;Landroid/content/res/XmlBlock$Parser; +HSPLandroid/content/res/XmlBlock$Parser;->nextText()Ljava/lang/String;+]Landroid/content/res/XmlBlock$Parser;Landroid/content/res/XmlBlock$Parser; +HSPLandroid/content/res/XmlBlock$Parser;->require(ILjava/lang/String;Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String;]Landroid/content/res/XmlBlock$Parser;Landroid/content/res/XmlBlock$Parser; 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 @@ -5374,82 +5374,82 @@ 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;->decOpenCountLocked()V+]Ljava/lang/Object;Landroid/content/res/XmlBlock;]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager; 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/content/type/DefaultMimeMapFactory;->parseTypes(Llibcore/content/type/MimeMap$Builder;Ljava/util/function/Function;Ljava/lang/String;)V+]Ljava/util/function/Function;Landroid/content/type/DefaultMimeMapFactory$$ExternalSyntheticLambda0;]Ljava/io/InputStream;Llibcore/io/ClassPathURLStreamHandler$ClassPathURLConnection$1;]Ljava/io/BufferedReader;Ljava/io/BufferedReader; HSPLandroid/database/AbstractCursor$SelfContentObserver;-><init>(Landroid/database/AbstractCursor;)V HSPLandroid/database/AbstractCursor$SelfContentObserver;->onChange(Z)V -HSPLandroid/database/AbstractCursor;-><init>()V -HSPLandroid/database/AbstractCursor;->checkPosition()V -HSPLandroid/database/AbstractCursor;->close()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/MatrixCursor;,Landroid/database/sqlite/SQLiteCursor;,Landroid/database/BulkCursorToCursorAdaptor;]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard;]Landroid/database/ContentObservable;Landroid/database/ContentObservable; HSPLandroid/database/AbstractCursor;->fillWindow(ILandroid/database/CursorWindow;)V -HSPLandroid/database/AbstractCursor;->finalize()V -HSPLandroid/database/AbstractCursor;->getColumnCount()I -HSPLandroid/database/AbstractCursor;->getColumnIndex(Ljava/lang/String;)I +HSPLandroid/database/AbstractCursor;->finalize()V+]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard; +HSPLandroid/database/AbstractCursor;->getColumnCount()I+]Landroid/database/AbstractCursor;Landroid/database/BulkCursorToCursorAdaptor; +HSPLandroid/database/AbstractCursor;->getColumnIndex(Ljava/lang/String;)I+]Ljava/lang/String;Ljava/lang/String;]Landroid/database/AbstractCursor;Landroid/database/MatrixCursor;,Landroid/database/BulkCursorToCursorAdaptor; HSPLandroid/database/AbstractCursor;->getColumnIndexOrThrow(Ljava/lang/String;)I HSPLandroid/database/AbstractCursor;->getColumnName(I)Ljava/lang/String; HSPLandroid/database/AbstractCursor;->getExtras()Landroid/os/Bundle; HSPLandroid/database/AbstractCursor;->getPosition()I HSPLandroid/database/AbstractCursor;->getWantsAllOnMoveCalls()Z HSPLandroid/database/AbstractCursor;->getWindow()Landroid/database/CursorWindow; -HSPLandroid/database/AbstractCursor;->isAfterLast()Z +HSPLandroid/database/AbstractCursor;->isAfterLast()Z+]Landroid/database/AbstractCursor;Landroid/database/sqlite/SQLiteCursor; 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 -HSPLandroid/database/AbstractCursor;->moveToPosition(I)Z +HSPLandroid/database/AbstractCursor;->moveToNext()Z+]Landroid/database/AbstractCursor;Landroid/database/MatrixCursor;,Landroid/database/sqlite/SQLiteCursor;,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 +HSPLandroid/database/AbstractCursor;->onDeactivateOrClose()V+]Landroid/database/DataSetObservable;Landroid/database/DataSetObservable;]Landroid/content/ContentResolver;Landroid/app/ContextImpl$ApplicationContentResolver; 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;->setNotificationUris(Landroid/content/ContentResolver;Ljava/util/List;IZ)V+]Ljava/util/List;Ljava/util/Arrays$ArrayList;]Landroid/content/ContentResolver;Landroid/app/ContextImpl$ApplicationContentResolver; 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 -HSPLandroid/database/AbstractWindowedCursor;->getBlob(I)[B -HSPLandroid/database/AbstractWindowedCursor;->getDouble(I)D +HSPLandroid/database/AbstractWindowedCursor;->closeWindow()V+]Landroid/database/CursorWindow;Landroid/database/CursorWindow; +HSPLandroid/database/AbstractWindowedCursor;->getBlob(I)[B+]Landroid/database/AbstractWindowedCursor;Landroid/database/sqlite/SQLiteCursor;]Landroid/database/CursorWindow;Landroid/database/CursorWindow; +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 -HSPLandroid/database/AbstractWindowedCursor;->getLong(I)J -HSPLandroid/database/AbstractWindowedCursor;->getString(I)Ljava/lang/String; -HSPLandroid/database/AbstractWindowedCursor;->getType(I)I +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+]Landroid/database/AbstractWindowedCursor;Landroid/database/sqlite/SQLiteCursor;,Landroid/database/BulkCursorToCursorAdaptor;]Landroid/database/CursorWindow;Landroid/database/CursorWindow; HSPLandroid/database/AbstractWindowedCursor;->getWindow()Landroid/database/CursorWindow; HSPLandroid/database/AbstractWindowedCursor;->hasWindow()Z -HSPLandroid/database/AbstractWindowedCursor;->isNull(I)Z -HSPLandroid/database/AbstractWindowedCursor;->onDeactivateOrClose()V +HSPLandroid/database/AbstractWindowedCursor;->isNull(I)Z+]Landroid/database/AbstractWindowedCursor;Landroid/database/sqlite/SQLiteCursor;,Landroid/database/BulkCursorToCursorAdaptor;]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/BulkCursorDescriptor;->readFromParcel(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/database/CursorWindow$1;]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/database/BulkCursorDescriptor;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/database/IBulkCursor;Landroid/database/CursorToBulkCursorAdaptor;]Landroid/os/Parcel;Landroid/os/Parcel; 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/BulkCursorProxy;->close()V+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/database/BulkCursorProxy;->getWindow(I)Landroid/database/CursorWindow;+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/database/BulkCursorToCursorAdaptor;-><init>()V -HSPLandroid/database/BulkCursorToCursorAdaptor;->close()V +HSPLandroid/database/BulkCursorToCursorAdaptor;->close()V+]Landroid/database/IBulkCursor;Landroid/database/BulkCursorProxy; 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 +HSPLandroid/database/BulkCursorToCursorAdaptor;->initialize(Landroid/database/BulkCursorDescriptor;)V+]Landroid/database/BulkCursorToCursorAdaptor;Landroid/database/BulkCursorToCursorAdaptor; +HSPLandroid/database/BulkCursorToCursorAdaptor;->onMove(II)Z+]Landroid/database/IBulkCursor;Landroid/database/BulkCursorProxy;]Landroid/database/CursorWindow;Landroid/database/CursorWindow;]Landroid/database/BulkCursorToCursorAdaptor;Landroid/database/BulkCursorToCursorAdaptor; HSPLandroid/database/BulkCursorToCursorAdaptor;->throwIfCursorIsClosed()V HSPLandroid/database/ContentObservable;-><init>()V HSPLandroid/database/ContentObservable;->dispatchChange(ZLandroid/net/Uri;)V @@ -5467,7 +5467,7 @@ 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/ContentObserver;->releaseContentObserver()Landroid/database/IContentObserver;+]Landroid/database/ContentObserver$Transport;Landroid/database/ContentObserver$Transport; 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 @@ -5477,74 +5477,74 @@ 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;->getBulkCursorDescriptor()Landroid/database/BulkCursorDescriptor;+]Landroid/database/CrossProcessCursor;Landroid/database/MatrixCursor; +HSPLandroid/database/CursorToBulkCursorAdaptor;->getWindow(I)Landroid/database/CursorWindow;+]Landroid/database/CursorWindow;Landroid/database/CursorWindow;]Landroid/database/CrossProcessCursor;Landroid/database/MatrixCursor; 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;)V+]Landroid/os/Parcel;Landroid/os/Parcel;]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard; 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 -HSPLandroid/database/CursorWindow;->allocRow()Z +HSPLandroid/database/CursorWindow;-><init>(Ljava/lang/String;J)V+]Ljava/lang/String;Ljava/lang/String;]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard; +HSPLandroid/database/CursorWindow;->allocRow()Z+]Landroid/database/CursorWindow;Landroid/database/CursorWindow; HSPLandroid/database/CursorWindow;->clear()V -HSPLandroid/database/CursorWindow;->dispose()V -HSPLandroid/database/CursorWindow;->finalize()V -HSPLandroid/database/CursorWindow;->getBlob(II)[B +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+]Landroid/database/CursorWindow;Landroid/database/CursorWindow; HSPLandroid/database/CursorWindow;->getCursorWindowSize()I -HSPLandroid/database/CursorWindow;->getDouble(II)D +HSPLandroid/database/CursorWindow;->getDouble(II)D+]Landroid/database/CursorWindow;Landroid/database/CursorWindow; HSPLandroid/database/CursorWindow;->getFloat(II)F -HSPLandroid/database/CursorWindow;->getInt(II)I -HSPLandroid/database/CursorWindow;->getLong(II)J -HSPLandroid/database/CursorWindow;->getNumRows()I +HSPLandroid/database/CursorWindow;->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; -HSPLandroid/database/CursorWindow;->getType(II)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;->putString(Ljava/lang/String;II)Z+]Landroid/database/CursorWindow;Landroid/database/CursorWindow; 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;->getBlob(I)[B+]Landroid/database/Cursor;missing_types +HSPLandroid/database/CursorWrapper;->getColumnCount()I+]Landroid/database/Cursor;missing_types +HSPLandroid/database/CursorWrapper;->getColumnIndex(Ljava/lang/String;)I+]Landroid/database/Cursor;Landroid/database/BulkCursorToCursorAdaptor; 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 -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;->getInt(I)I+]Landroid/database/Cursor;missing_types +HSPLandroid/database/CursorWrapper;->getLong(I)J+]Landroid/database/Cursor;missing_types +HSPLandroid/database/CursorWrapper;->getPosition()I+]Landroid/database/Cursor;missing_types +HSPLandroid/database/CursorWrapper;->getString(I)Ljava/lang/String;+]Landroid/database/Cursor;missing_types +HSPLandroid/database/CursorWrapper;->getType(I)I+]Landroid/database/Cursor;missing_types HSPLandroid/database/CursorWrapper;->getWrappedCursor()Landroid/database/Cursor; HSPLandroid/database/CursorWrapper;->isAfterLast()Z HSPLandroid/database/CursorWrapper;->isClosed()Z HSPLandroid/database/CursorWrapper;->isLast()Z -HSPLandroid/database/CursorWrapper;->isNull(I)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;->moveToNext()Z+]Landroid/database/Cursor;missing_types 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 +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 -HSPLandroid/database/DatabaseUtils;->cursorFillWindow(Landroid/database/Cursor;ILandroid/database/CursorWindow;)V -HSPLandroid/database/DatabaseUtils;->getSqlStatementType(Ljava/lang/String;)I +HSPLandroid/database/DatabaseUtils;->cursorFillWindow(Landroid/database/Cursor;ILandroid/database/CursorWindow;)V+]Landroid/database/CursorWindow;Landroid/database/CursorWindow;]Landroid/database/Cursor;Landroid/database/MatrixCursor; +HSPLandroid/database/DatabaseUtils;->getSqlStatementType(Ljava/lang/String;)I+]Ljava/lang/String;Ljava/lang/String; 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/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/String;)J+]Landroid/database/sqlite/SQLiteStatement;Landroid/database/sqlite/SQLiteStatement;]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase; 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 @@ -5560,7 +5560,7 @@ 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;-><init>()V+]Landroid/database/IContentObserver$Stub;Landroid/database/ContentObserver$Transport; 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; @@ -5579,7 +5579,7 @@ 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;->getString(I)Ljava/lang/String;+]Ljava/lang/Object;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 @@ -5592,26 +5592,26 @@ 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 +HSPLandroid/database/Observable;->unregisterAll()V+]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/database/Observable;->unregisterObserver(Ljava/lang/Object;)V HSPLandroid/database/sqlite/SQLiteClosable;-><init>()V -HSPLandroid/database/sqlite/SQLiteClosable;->acquireReference()V -HSPLandroid/database/sqlite/SQLiteClosable;->close()V -HSPLandroid/database/sqlite/SQLiteClosable;->releaseReference()V+]Landroid/database/sqlite/SQLiteClosable;Landroid/database/CursorWindow;,Landroid/database/sqlite/SQLiteStatement;,Landroid/database/sqlite/SQLiteQuery; +HSPLandroid/database/sqlite/SQLiteClosable;->acquireReference()V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; +HSPLandroid/database/sqlite/SQLiteClosable;->close()V+]Landroid/database/sqlite/SQLiteClosable;Landroid/database/CursorWindow;,Landroid/database/sqlite/SQLiteStatement;,Landroid/database/sqlite/SQLiteQuery;,Landroid/database/sqlite/SQLiteDatabase; +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;->describe(Ljava/lang/StringBuilder;Z)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; 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 +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 +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 @@ -5623,21 +5623,21 @@ HSPLandroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->entryRemov HSPLandroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->entryRemoved(ZLjava/lang/String;Landroid/database/sqlite/SQLiteConnection$PreparedStatement;Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V HSPLandroid/database/sqlite/SQLiteConnection;->-$$Nest$mfinalizePreparedStatement(Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V HSPLandroid/database/sqlite/SQLiteConnection;-><init>(Landroid/database/sqlite/SQLiteConnectionPool;Landroid/database/sqlite/SQLiteDatabaseConfiguration;IZ)V -HSPLandroid/database/sqlite/SQLiteConnection;->acquirePreparedStatement(Ljava/lang/String;)Landroid/database/sqlite/SQLiteConnection$PreparedStatement; -HSPLandroid/database/sqlite/SQLiteConnection;->applyBlockGuardPolicy(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V -HSPLandroid/database/sqlite/SQLiteConnection;->attachCancellationSignal(Landroid/os/CancellationSignal;)V -HSPLandroid/database/sqlite/SQLiteConnection;->bindArguments(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;[Ljava/lang/Object;)V +HSPLandroid/database/sqlite/SQLiteConnection;->acquirePreparedStatement(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;]Ljava/lang/Boolean;Ljava/lang/Boolean; 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 +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 -HSPLandroid/database/sqlite/SQLiteConnection;->executeForChangedRowCount(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)I -HSPLandroid/database/sqlite/SQLiteConnection;->executeForCursorWindow(Ljava/lang/String;[Ljava/lang/Object;Landroid/database/CursorWindow;IIZLandroid/os/CancellationSignal;)I -HSPLandroid/database/sqlite/SQLiteConnection;->executeForLastInsertedRowId(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)J +HSPLandroid/database/sqlite/SQLiteConnection;->execute(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)V+]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$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/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+]Landroid/database/sqlite/SQLiteConnection$OperationLog;Landroid/database/sqlite/SQLiteConnection$OperationLog; HSPLandroid/database/sqlite/SQLiteConnection;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)J+]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$OperationLog;Landroid/database/sqlite/SQLiteConnection$OperationLog; HSPLandroid/database/sqlite/SQLiteConnection;->executePerConnectionSqlFromConfiguration(I)V @@ -5646,15 +5646,15 @@ HSPLandroid/database/sqlite/SQLiteConnection;->finalizePreparedStatement(Landroi 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 +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;->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 +HSPLandroid/database/sqlite/SQLiteConnection;->prepare(Ljava/lang/String;Landroid/database/sqlite/SQLiteStatementInfo;)V+]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;->releasePreparedStatement(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 @@ -5688,13 +5688,13 @@ HSPLandroid/database/sqlite/SQLiteConnectionPool;->discardAcquiredConnectionsLoc HSPLandroid/database/sqlite/SQLiteConnectionPool;->dispose(Z)V HSPLandroid/database/sqlite/SQLiteConnectionPool;->dump(Landroid/util/Printer;ZLandroid/util/ArraySet;)V HSPLandroid/database/sqlite/SQLiteConnectionPool;->finalize()V -HSPLandroid/database/sqlite/SQLiteConnectionPool;->finishAcquireConnectionLocked(Landroid/database/sqlite/SQLiteConnection;I)V +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 +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; @@ -5702,29 +5702,29 @@ HSPLandroid/database/sqlite/SQLiteConnectionPool;->reconfigure(Landroid/database HSPLandroid/database/sqlite/SQLiteConnectionPool;->reconfigureAllConnectionsLocked()V HSPLandroid/database/sqlite/SQLiteConnectionPool;->recycleConnectionLocked(Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;)Z HSPLandroid/database/sqlite/SQLiteConnectionPool;->recycleConnectionWaiterLocked(Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;)V -HSPLandroid/database/sqlite/SQLiteConnectionPool;->releaseConnection(Landroid/database/sqlite/SQLiteConnection;)V +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; -HSPLandroid/database/sqlite/SQLiteConnectionPool;->tryAcquirePrimaryConnectionLocked(I)Landroid/database/sqlite/SQLiteConnection; -HSPLandroid/database/sqlite/SQLiteConnectionPool;->waitForConnection(Ljava/lang/String;ILandroid/os/CancellationSignal;)Landroid/database/sqlite/SQLiteConnection; +HSPLandroid/database/sqlite/SQLiteConnectionPool;->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;+]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;->waitForConnection(Ljava/lang/String;ILandroid/os/CancellationSignal;)Landroid/database/sqlite/SQLiteConnection;+]Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/atomic/AtomicBoolean;]Landroid/os/CancellationSignal;Landroid/os/CancellationSignal; HSPLandroid/database/sqlite/SQLiteConnectionPool;->wakeConnectionWaitersLocked()V HSPLandroid/database/sqlite/SQLiteConstraintException;-><init>(Ljava/lang/String;)V -HSPLandroid/database/sqlite/SQLiteCursor;-><init>(Landroid/database/sqlite/SQLiteCursorDriver;Ljava/lang/String;Landroid/database/sqlite/SQLiteQuery;)V -HSPLandroid/database/sqlite/SQLiteCursor;->close()V -HSPLandroid/database/sqlite/SQLiteCursor;->fillWindow(I)V +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 +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; -HSPLandroid/database/sqlite/SQLiteCursor;->onMove(II)Z +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$1;->accept(Ljava/io/File;)Z+]Ljava/lang/String;Ljava/lang/String;]Ljava/io/File;Ljava/io/File; 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; @@ -5747,11 +5747,11 @@ HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;-><init>(ILandroid/databas 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 HSPLandroid/database/sqlite/SQLiteDatabase;->beginTransaction()V -HSPLandroid/database/sqlite/SQLiteDatabase;->beginTransaction(Landroid/database/sqlite/SQLiteTransactionListener;Z)V +HSPLandroid/database/sqlite/SQLiteDatabase;->beginTransaction(Landroid/database/sqlite/SQLiteTransactionListener;Z)V+]Landroid/database/sqlite/SQLiteSession;Landroid/database/sqlite/SQLiteSession;]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase; 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;->compileStatement(Ljava/lang/String;)Landroid/database/sqlite/SQLiteStatement;+]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase; 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 @@ -5761,12 +5761,12 @@ 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;->endTransaction()V+]Landroid/database/sqlite/SQLiteSession;Landroid/database/sqlite/SQLiteSession;]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase; 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; +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; @@ -5774,17 +5774,17 @@ 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; -HSPLandroid/database/sqlite/SQLiteDatabase;->getVersion()I -HSPLandroid/database/sqlite/SQLiteDatabase;->inTransaction()Z +HSPLandroid/database/sqlite/SQLiteDatabase;->getThreadSession()Landroid/database/sqlite/SQLiteSession;+]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal$SuppliedThreadLocal; +HSPLandroid/database/sqlite/SQLiteDatabase;->getVersion()I+]Ljava/lang/Long;Ljava/lang/Long; +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;->insertWithOnConflict(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;I)J+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/ContentValues;Landroid/content/ContentValues;]Landroid/database/sqlite/SQLiteStatement;Landroid/database/sqlite/SQLiteStatement;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase;]Ljava/util/Set;Landroid/util/MapCollections$KeySet; 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;->isWriteAheadLoggingEnabled()Z+]Ljava/lang/String;Ljava/lang/String;]Landroid/database/sqlite/SQLiteDatabaseConfiguration;Landroid/database/sqlite/SQLiteDatabaseConfiguration; 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; @@ -5800,26 +5800,26 @@ HSPLandroid/database/sqlite/SQLiteDatabase;->query(ZLjava/lang/String;[Ljava/lan HSPLandroid/database/sqlite/SQLiteDatabase;->queryWithFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;ZLjava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor; HSPLandroid/database/sqlite/SQLiteDatabase;->rawQuery(Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor; HSPLandroid/database/sqlite/SQLiteDatabase;->rawQuery(Ljava/lang/String;[Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor; -HSPLandroid/database/sqlite/SQLiteDatabase;->rawQueryWithFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor; -HSPLandroid/database/sqlite/SQLiteDatabase;->rawQueryWithFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor; +HSPLandroid/database/sqlite/SQLiteDatabase;->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;->setTransactionSuccessful()V+]Landroid/database/sqlite/SQLiteSession;Landroid/database/sqlite/SQLiteSession;]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase; 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 -HSPLandroid/database/sqlite/SQLiteDatabase;->validateSql(Ljava/lang/String;Landroid/os/CancellationSignal;)V +HSPLandroid/database/sqlite/SQLiteDatabase;->validateSql(Ljava/lang/String;Landroid/os/CancellationSignal;)V+]Landroid/database/sqlite/SQLiteSession;Landroid/database/sqlite/SQLiteSession;]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase; 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 +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;->resolveJournalMode()Ljava/lang/String;+]Landroid/database/sqlite/SQLiteDatabaseConfiguration;Landroid/database/sqlite/SQLiteDatabaseConfiguration; 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+]Ljava/lang/String;Ljava/lang/String;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/ArrayList;Ljava/util/ArrayList; @@ -5828,7 +5828,7 @@ HSPLandroid/database/sqlite/SQLiteDebug;->getDatabaseInfo()Landroid/database/sql HSPLandroid/database/sqlite/SQLiteDebug;->shouldLogSlowQuery(J)Z HSPLandroid/database/sqlite/SQLiteDirectCursorDriver;-><init>(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)V HSPLandroid/database/sqlite/SQLiteDirectCursorDriver;->cursorClosed()V -HSPLandroid/database/sqlite/SQLiteDirectCursorDriver;->query(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;[Ljava/lang/String;)Landroid/database/Cursor; +HSPLandroid/database/sqlite/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; @@ -5845,7 +5845,7 @@ HSPLandroid/database/sqlite/SQLiteOpenHelper;-><init>(Landroid/content/Context;L 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; +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; @@ -5855,9 +5855,9 @@ HSPLandroid/database/sqlite/SQLiteOpenHelper;->setFilePermissionsForDb(Ljava/lan HSPLandroid/database/sqlite/SQLiteOpenHelper;->setIdleConnectionTimeout(J)V HSPLandroid/database/sqlite/SQLiteOpenHelper;->setOpenParamsBuilder(Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;)V HSPLandroid/database/sqlite/SQLiteOpenHelper;->setWriteAheadLoggingEnabled(Z)V -HSPLandroid/database/sqlite/SQLiteProgram;-><init>(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)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 +HSPLandroid/database/sqlite/SQLiteProgram;->bindAllArgsAsStrings([Ljava/lang/String;)V+]Landroid/database/sqlite/SQLiteProgram;Landroid/database/sqlite/SQLiteStatement;,Landroid/database/sqlite/SQLiteQuery; HSPLandroid/database/sqlite/SQLiteProgram;->bindBlob(I[B)V HSPLandroid/database/sqlite/SQLiteProgram;->bindDouble(ID)V HSPLandroid/database/sqlite/SQLiteProgram;->bindLong(IJ)V @@ -5866,56 +5866,56 @@ 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 +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; +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 +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 +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 -HSPLandroid/database/sqlite/SQLiteQueryBuilder;->appendColumns(Ljava/lang/StringBuilder;[Ljava/lang/String;)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; +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;+]Landroid/database/sqlite/SQLiteQueryBuilder;Landroid/database/sqlite/SQLiteQueryBuilder; +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;->computeSingleProjection(Ljava/lang/String;)Ljava/lang/String;+]Ljava/util/Map;Ljava/util/HashMap; 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;->computeWhere(Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; 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;->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;+]Landroid/database/sqlite/SQLiteQueryBuilder;Landroid/database/sqlite/SQLiteQueryBuilder; +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;+]Landroid/database/sqlite/SQLiteQueryBuilder;Landroid/database/sqlite/SQLiteQueryBuilder; +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;+]Landroid/database/sqlite/SQLiteQueryBuilder;Landroid/database/sqlite/SQLiteQueryBuilder;]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase; 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/SQLiteQueryBuilder;->wrap(Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; 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 +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;->beginTransactionUnchecked(ILandroid/database/sqlite/SQLiteTransactionListener;ILandroid/os/CancellationSignal;)V+]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection; HSPLandroid/database/sqlite/SQLiteSession;->endTransaction(Landroid/os/CancellationSignal;)V -HSPLandroid/database/sqlite/SQLiteSession;->endTransactionUnchecked(Landroid/os/CancellationSignal;Z)V +HSPLandroid/database/sqlite/SQLiteSession;->endTransactionUnchecked(Landroid/os/CancellationSignal;Z)V+]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection; HSPLandroid/database/sqlite/SQLiteSession;->execute(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)V -HSPLandroid/database/sqlite/SQLiteSession;->executeForChangedRowCount(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)I -HSPLandroid/database/sqlite/SQLiteSession;->executeForCursorWindow(Ljava/lang/String;[Ljava/lang/Object;Landroid/database/CursorWindow;IIZILandroid/os/CancellationSignal;)I +HSPLandroid/database/sqlite/SQLiteSession;->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 +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 +HSPLandroid/database/sqlite/SQLiteSession;->prepare(Ljava/lang/String;ILandroid/os/CancellationSignal;Landroid/database/sqlite/SQLiteStatementInfo;)V+]Landroid/os/CancellationSignal;Landroid/os/CancellationSignal;]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection; HSPLandroid/database/sqlite/SQLiteSession;->recycleTransaction(Landroid/database/sqlite/SQLiteSession$Transaction;)V -HSPLandroid/database/sqlite/SQLiteSession;->releaseConnection()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 @@ -5925,7 +5925,7 @@ HSPLandroid/database/sqlite/SQLiteSession;->yieldTransactionUnchecked(JLandroid/ HSPLandroid/database/sqlite/SQLiteStatement;-><init>(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/Object;)V HSPLandroid/database/sqlite/SQLiteStatement;->execute()V HSPLandroid/database/sqlite/SQLiteStatement;->executeInsert()J -HSPLandroid/database/sqlite/SQLiteStatement;->executeUpdateDelete()I +HSPLandroid/database/sqlite/SQLiteStatement;->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 @@ -5955,44 +5955,44 @@ 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/Matrix;Landroid/graphics/Paint;)V+]Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;]Landroid/graphics/Paint;Landroid/graphics/Paint;]Landroid/graphics/Matrix;Landroid/graphics/Matrix; +HSPLandroid/graphics/BaseCanvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Paint;)V+]Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;]Landroid/graphics/Paint;Landroid/graphics/Paint;]Landroid/graphics/BaseCanvas;Landroid/graphics/Canvas; 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;->drawLine(FFFFLandroid/graphics/Paint;)V+]Landroid/graphics/Paint;Landroid/graphics/Paint; +HSPLandroid/graphics/BaseCanvas;->drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V+]Landroid/graphics/Path;Landroid/graphics/Path; 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/Paint;)V+]Landroid/graphics/Paint;missing_types]Landroid/graphics/BaseCanvas;Landroid/view/Surface$CompatibleCanvas;,Landroid/graphics/Canvas; 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 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;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Paint;)V+]Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;]Landroid/graphics/Paint;Landroid/graphics/Paint;]Landroid/graphics/BaseRecordingCanvas;Landroid/graphics/RecordingCanvas; HSPLandroid/graphics/BaseRecordingCanvas;->drawCircle(FFFLandroid/graphics/Paint;)V -HSPLandroid/graphics/BaseRecordingCanvas;->drawColor(I)V +HSPLandroid/graphics/BaseRecordingCanvas;->drawColor(I)V+]Landroid/graphics/BlendMode;Landroid/graphics/BlendMode; HSPLandroid/graphics/BaseRecordingCanvas;->drawColor(ILandroid/graphics/PorterDuff$Mode;)V -HSPLandroid/graphics/BaseRecordingCanvas;->drawLine(FFFFLandroid/graphics/Paint;)V +HSPLandroid/graphics/BaseRecordingCanvas;->drawLine(FFFFLandroid/graphics/Paint;)V+]Landroid/graphics/Paint;Landroid/graphics/Paint; 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 +HSPLandroid/graphics/BaseRecordingCanvas;->drawPatch(Landroid/graphics/NinePatch;Landroid/graphics/Rect;Landroid/graphics/Paint;)V+]Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;]Landroid/graphics/Paint;Landroid/graphics/Paint;]Landroid/graphics/NinePatch;Landroid/graphics/NinePatch;]Landroid/graphics/BaseRecordingCanvas;Landroid/graphics/RecordingCanvas; +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 HSPLandroid/graphics/BaseRecordingCanvas;->drawRect(Landroid/graphics/Rect;Landroid/graphics/Paint;)V -HSPLandroid/graphics/BaseRecordingCanvas;->drawRect(Landroid/graphics/RectF;Landroid/graphics/Paint;)V +HSPLandroid/graphics/BaseRecordingCanvas;->drawRect(Landroid/graphics/RectF;Landroid/graphics/Paint;)V+]Landroid/graphics/Paint;Landroid/graphics/Paint; HSPLandroid/graphics/BaseRecordingCanvas;->drawRoundRect(FFFFFFLandroid/graphics/Paint;)V HSPLandroid/graphics/BaseRecordingCanvas;->drawRoundRect(Landroid/graphics/RectF;FFLandroid/graphics/Paint;)V -HSPLandroid/graphics/BaseRecordingCanvas;->drawText(Ljava/lang/CharSequence;IIFFLandroid/graphics/Paint;)V -HSPLandroid/graphics/BaseRecordingCanvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V -HSPLandroid/graphics/BaseRecordingCanvas;->drawTextRun(Ljava/lang/CharSequence;IIIIFFZLandroid/graphics/Paint;)V +HSPLandroid/graphics/BaseRecordingCanvas;->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+]Ljava/lang/String;Ljava/lang/String; +HSPLandroid/graphics/BaseRecordingCanvas;->drawTextRun(Ljava/lang/CharSequence;IIIIFFZLandroid/graphics/Paint;)V+]Landroid/graphics/Paint;Landroid/text/TextPaint;]Ljava/lang/CharSequence;Ljava/lang/String; 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;-><init>(JIIIZ[BLandroid/graphics/NinePatch$InsetStruct;Z)V+]Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry;]Ljava/lang/Class;Ljava/lang/Class; HSPLandroid/graphics/Bitmap;->checkHardware(Ljava/lang/String;)V HSPLandroid/graphics/Bitmap;->checkPixelAccess(II)V HSPLandroid/graphics/Bitmap;->checkPixelsAccess(IIIIII[I)V @@ -6066,7 +6066,7 @@ 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;->blendModeToPorterDuffMode(Landroid/graphics/BlendMode;)Landroid/graphics/PorterDuff$Mode;+]Landroid/graphics/BlendMode;Landroid/graphics/BlendMode; HSPLandroid/graphics/BlendMode;->fromValue(I)Landroid/graphics/BlendMode; HSPLandroid/graphics/BlendMode;->getXfermode()Landroid/graphics/Xfermode; HSPLandroid/graphics/BlendMode;->toValue(Landroid/graphics/BlendMode;)I @@ -6079,8 +6079,8 @@ 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;->clipPath(Landroid/graphics/Path;)Z+]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas; +HSPLandroid/graphics/Canvas;->clipPath(Landroid/graphics/Path;Landroid/graphics/Region$Op;)Z+]Landroid/graphics/Path;Landroid/graphics/Path; HSPLandroid/graphics/Canvas;->clipRect(FFFF)Z HSPLandroid/graphics/Canvas;->clipRect(IIII)Z HSPLandroid/graphics/Canvas;->clipRect(Landroid/graphics/Rect;)Z @@ -6164,7 +6164,7 @@ 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(FFFFLandroid/graphics/ColorSpace;)J+]Landroid/graphics/ColorSpace;Landroid/graphics/ColorSpace$Rgb; HSPLandroid/graphics/Color;->pack(I)J HSPLandroid/graphics/Color;->parseColor(Ljava/lang/String;)I HSPLandroid/graphics/Color;->red()F @@ -6175,7 +6175,7 @@ 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/ColorFilter;->getNativeInstance()J+]Landroid/graphics/ColorFilter;Landroid/graphics/PorterDuffColorFilter;,Landroid/graphics/BlendModeColorFilter;]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry; HSPLandroid/graphics/ColorMatrixColorFilter;-><init>(Landroid/graphics/ColorMatrix;)V HSPLandroid/graphics/ColorMatrixColorFilter;-><init>([F)V HSPLandroid/graphics/ColorMatrixColorFilter;->createNativeInstance()J @@ -6361,14 +6361,14 @@ HSPLandroid/graphics/LinearGradient;-><init>(FFFF[J[FLandroid/graphics/Shader$Ti 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 -HSPLandroid/graphics/Matrix;-><init>(Landroid/graphics/Matrix;)V +HSPLandroid/graphics/Matrix;-><init>()V+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry; +HSPLandroid/graphics/Matrix;-><init>(Landroid/graphics/Matrix;)V+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry; 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([F)V+]Landroid/graphics/Matrix;Landroid/graphics/Matrix; 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 @@ -6406,18 +6406,18 @@ 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 +HSPLandroid/graphics/Outline;->setEmpty()V+]Landroid/graphics/Path;Landroid/graphics/Path;]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;->setPath(Landroid/graphics/Path;)V+]Landroid/graphics/Path;Landroid/graphics/Path;]Landroid/graphics/Rect;Landroid/graphics/Rect; HSPLandroid/graphics/Outline;->setRect(IIII)V -HSPLandroid/graphics/Outline;->setRect(Landroid/graphics/Rect;)V -HSPLandroid/graphics/Outline;->setRoundRect(IIIIF)V +HSPLandroid/graphics/Outline;->setRect(Landroid/graphics/Rect;)V+]Landroid/graphics/Outline;Landroid/graphics/Outline; +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 +HSPLandroid/graphics/Paint;-><init>(I)V+]Landroid/graphics/Paint;missing_types]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry; HSPLandroid/graphics/Paint;-><init>(Landroid/graphics/Paint;)V HSPLandroid/graphics/Paint;->ascent()F HSPLandroid/graphics/Paint;->descent()F @@ -6431,7 +6431,7 @@ HSPLandroid/graphics/Paint;->getFontMetrics()Landroid/graphics/Paint$FontMetrics HSPLandroid/graphics/Paint;->getFontMetrics(Landroid/graphics/Paint$FontMetrics;)F HSPLandroid/graphics/Paint;->getFontMetricsInt()Landroid/graphics/Paint$FontMetricsInt; HSPLandroid/graphics/Paint;->getFontMetricsInt(Landroid/graphics/Paint$FontMetricsInt;)I -HSPLandroid/graphics/Paint;->getFontMetricsInt(Ljava/lang/CharSequence;IIIIZLandroid/graphics/Paint$FontMetricsInt;)V +HSPLandroid/graphics/Paint;->getFontMetricsInt(Ljava/lang/CharSequence;IIIIZLandroid/graphics/Paint$FontMetricsInt;)V+]Ljava/lang/CharSequence;Ljava/lang/String;,Landroid/text/SpannedString;,Landroid/text/SpannableString; HSPLandroid/graphics/Paint;->getFontVariationSettings()Ljava/lang/String; HSPLandroid/graphics/Paint;->getHinting()I HSPLandroid/graphics/Paint;->getLetterSpacing()F @@ -6439,7 +6439,7 @@ HSPLandroid/graphics/Paint;->getMaskFilter()Landroid/graphics/MaskFilter; HSPLandroid/graphics/Paint;->getNativeInstance()J+]Landroid/graphics/ColorFilter;Landroid/graphics/PorterDuffColorFilter;,Landroid/graphics/BlendModeColorFilter;]Landroid/graphics/Paint;Landroid/graphics/Paint;,Landroid/text/TextPaint;]Landroid/graphics/Shader;Landroid/graphics/LinearGradient;,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[FI)F+]Landroid/graphics/Paint;Landroid/text/TextPaint;]Ljava/lang/CharSequence;Ljava/lang/String;,Landroid/text/SpannedString;,Landroid/text/SpannableString; HSPLandroid/graphics/Paint;->getRunCharacterAdvance([CIIIIZI[FI)F HSPLandroid/graphics/Paint;->getShader()Landroid/graphics/Shader; HSPLandroid/graphics/Paint;->getShadowLayerColor()I @@ -6475,8 +6475,8 @@ HSPLandroid/graphics/Paint;->isDither()Z HSPLandroid/graphics/Paint;->isElegantTextHeight()Z HSPLandroid/graphics/Paint;->isFilterBitmap()Z+]Landroid/graphics/Paint;Landroid/graphics/Paint;,Landroid/text/TextPaint; HSPLandroid/graphics/Paint;->measureText(Ljava/lang/CharSequence;II)F -HSPLandroid/graphics/Paint;->measureText(Ljava/lang/String;)F -HSPLandroid/graphics/Paint;->measureText(Ljava/lang/String;II)F +HSPLandroid/graphics/Paint;->measureText(Ljava/lang/String;)F+]Ljava/lang/String;Ljava/lang/String;]Landroid/graphics/Paint;Landroid/graphics/Paint; +HSPLandroid/graphics/Paint;->measureText(Ljava/lang/String;II)F+]Ljava/lang/String;Ljava/lang/String; HSPLandroid/graphics/Paint;->reset()V HSPLandroid/graphics/Paint;->set(Landroid/graphics/Paint;)V HSPLandroid/graphics/Paint;->setAlpha(I)V @@ -6506,28 +6506,28 @@ 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 +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 +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>()V+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry; 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 +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;FFLandroid/graphics/Path$Direction;)V+]Landroid/graphics/Path;Landroid/graphics/Path; HSPLandroid/graphics/Path;->addRoundRect(Landroid/graphics/RectF;[FLandroid/graphics/Path$Direction;)V HSPLandroid/graphics/Path;->approximate(F)[F HSPLandroid/graphics/Path;->arcTo(FFFFFFZ)V @@ -6542,11 +6542,11 @@ 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;->op(Landroid/graphics/Path;Landroid/graphics/Path$Op;)Z+]Landroid/graphics/Path;Landroid/graphics/Path; +HSPLandroid/graphics/Path;->op(Landroid/graphics/Path;Landroid/graphics/Path;Landroid/graphics/Path$Op;)Z+]Landroid/graphics/Path$Op;Landroid/graphics/Path$Op; HSPLandroid/graphics/Path;->rLineTo(FF)V HSPLandroid/graphics/Path;->readOnlyNI()J -HSPLandroid/graphics/Path;->reset()V +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 @@ -6571,9 +6571,9 @@ HSPLandroid/graphics/Point$1;->createFromParcel(Landroid/os/Parcel;)Landroid/gra 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;-><init>(Landroid/graphics/Point;)V+]Landroid/graphics/Point;Landroid/graphics/Point; HSPLandroid/graphics/Point;->equals(II)Z -HSPLandroid/graphics/Point;->equals(Ljava/lang/Object;)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 @@ -6583,7 +6583,7 @@ 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;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Object;Landroid/graphics/PointF; HSPLandroid/graphics/PointF;->length()F HSPLandroid/graphics/PointF;->length(FF)F HSPLandroid/graphics/PointF;->set(FF)V @@ -6594,9 +6594,9 @@ 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>(FFFFFF[J[FLandroid/graphics/Shader$TileMode;Landroid/graphics/ColorSpace;)V+][F[F HSPLandroid/graphics/RadialGradient;-><init>(FFF[I[FLandroid/graphics/Shader$TileMode;)V -HSPLandroid/graphics/RadialGradient;->createNativeInstance(JZ)J +HSPLandroid/graphics/RadialGradient;->createNativeInstance(JZ)J+]Landroid/graphics/ColorSpace;Landroid/graphics/ColorSpace$Rgb;]Landroid/graphics/RadialGradient;Landroid/graphics/RadialGradient; HSPLandroid/graphics/RecordingCanvas;-><init>(Landroid/graphics/RenderNode;II)V HSPLandroid/graphics/RecordingCanvas;->disableZ()V HSPLandroid/graphics/RecordingCanvas;->drawRenderNode(Landroid/graphics/RenderNode;)V @@ -6610,8 +6610,8 @@ 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;->createFromParcel(Landroid/os/Parcel;)Landroid/graphics/Rect;+]Landroid/graphics/Rect;Landroid/graphics/Rect; +HSPLandroid/graphics/Rect$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;+]Landroid/graphics/Rect$1;Landroid/graphics/Rect$1; HSPLandroid/graphics/Rect$1;->newArray(I)[Landroid/graphics/Rect; HSPLandroid/graphics/Rect$1;->newArray(I)[Ljava/lang/Object; HSPLandroid/graphics/Rect;-><init>()V @@ -6638,7 +6638,7 @@ 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;->readFromParcel(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/graphics/Rect;->scale(F)V HSPLandroid/graphics/Rect;->set(IIII)V HSPLandroid/graphics/Rect;->set(Landroid/graphics/Rect;)V @@ -6647,7 +6647,7 @@ HSPLandroid/graphics/Rect;->setIntersect(Landroid/graphics/Rect;Landroid/graphic 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;->union(Landroid/graphics/Rect;)V+]Landroid/graphics/Rect;Landroid/graphics/Rect; HSPLandroid/graphics/Rect;->width()I HSPLandroid/graphics/Rect;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/graphics/RectF;-><init>()V @@ -6657,7 +6657,8 @@ 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;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Object;Landroid/graphics/RectF; +HSPLandroid/graphics/RectF;->hashCode()I HSPLandroid/graphics/RectF;->height()F HSPLandroid/graphics/RectF;->inset(FF)V HSPLandroid/graphics/RectF;->intersect(FFFF)Z @@ -6672,7 +6673,7 @@ HSPLandroid/graphics/RectF;->set(Landroid/graphics/Rect;)V HSPLandroid/graphics/RectF;->set(Landroid/graphics/RectF;)V HSPLandroid/graphics/RectF;->setEmpty()V HSPLandroid/graphics/RectF;->union(FFFF)V -HSPLandroid/graphics/RectF;->union(Landroid/graphics/RectF;)V +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; @@ -6701,7 +6702,7 @@ HSPLandroid/graphics/RenderNode$CompositePositionUpdateListener;->without(Landro 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;-><init>(Ljava/lang/String;Landroid/graphics/RenderNode$AnimationHost;)V+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry; 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; @@ -6758,15 +6759,15 @@ 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;-><init>(Landroid/graphics/ColorSpace;)V+]Landroid/graphics/ColorSpace;Landroid/graphics/ColorSpace$Rgb; 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;->discardNativeInstanceLocked()V+]Ljava/lang/Runnable;Llibcore/util/NativeAllocationRegistry$CleanerRunner; +HSPLandroid/graphics/Shader;->getNativeInstance()J+]Landroid/graphics/Shader;megamorphic_types +HSPLandroid/graphics/Shader;->getNativeInstance(Z)J+]Landroid/graphics/Matrix;Landroid/graphics/Matrix;]Landroid/graphics/Shader;megamorphic_types]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry; +HSPLandroid/graphics/Shader;->setLocalMatrix(Landroid/graphics/Matrix;)V+]Landroid/graphics/Matrix;Landroid/graphics/Matrix;]Landroid/graphics/Shader;Landroid/graphics/SweepGradient;,Landroid/graphics/BitmapShader; HSPLandroid/graphics/Shader;->shouldDiscardNativeInstance(Z)Z HSPLandroid/graphics/SurfaceTexture$1;->handleMessage(Landroid/os/Message;)V HSPLandroid/graphics/SurfaceTexture;-><init>(I)V @@ -6783,7 +6784,7 @@ HSPLandroid/graphics/TextureLayer;-><init>(Landroid/graphics/HardwareRenderer;J) HSPLandroid/graphics/TextureLayer;->close()V HSPLandroid/graphics/TextureLayer;->detachSurfaceTexture()V HSPLandroid/graphics/Typeface$Builder;->build()Landroid/graphics/Typeface; -HSPLandroid/graphics/Typeface$Builder;->createAssetUid(Landroid/content/res/AssetManager;Ljava/lang/String;I[Landroid/graphics/fonts/FontVariationAxis;IILjava/lang/String;)Ljava/lang/String; +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; @@ -6796,10 +6797,10 @@ HSPLandroid/graphics/Typeface;->createFromResources(Landroid/content/res/FontRes 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;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Object;Landroid/graphics/Typeface; +HSPLandroid/graphics/Typeface;->findFromCache(Landroid/content/res/AssetManager;Ljava/lang/String;)Landroid/graphics/Typeface;+]Landroid/util/LruCache;Landroid/util/LruCache; HSPLandroid/graphics/Typeface;->getStyle()I -HSPLandroid/graphics/Typeface;->getSystemDefaultTypeface(Ljava/lang/String;)Landroid/graphics/Typeface; +HSPLandroid/graphics/Typeface;->getSystemDefaultTypeface(Ljava/lang/String;)Landroid/graphics/Typeface;+]Ljava/util/Map;Landroid/util/ArrayMap; 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; @@ -7008,7 +7009,7 @@ HSPLandroid/graphics/drawable/BitmapDrawable;-><init>(Landroid/graphics/drawable 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;->computeBitmapSize()V+]Landroid/graphics/Bitmap;Landroid/graphics/Bitmap; HSPLandroid/graphics/drawable/BitmapDrawable;->draw(Landroid/graphics/Canvas;)V HSPLandroid/graphics/drawable/BitmapDrawable;->getBitmap()Landroid/graphics/Bitmap; HSPLandroid/graphics/drawable/BitmapDrawable;->getChangingConfigurations()I @@ -7038,7 +7039,7 @@ HSPLandroid/graphics/drawable/BitmapDrawable;->setTileModeXY(Landroid/graphics/S 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;->updateLocalState(Landroid/content/res/Resources;)V+]Landroid/graphics/drawable/BitmapDrawable;Landroid/graphics/drawable/BitmapDrawable; 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 @@ -7062,13 +7063,13 @@ HSPLandroid/graphics/drawable/ColorDrawable;-><init>(Landroid/graphics/drawable/ 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 +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;->getOpacity()I+]Landroid/graphics/Paint;Landroid/graphics/Paint; +HSPLandroid/graphics/drawable/ColorDrawable;->getOutline(Landroid/graphics/Outline;)V+]Landroid/graphics/drawable/ColorDrawable;Landroid/graphics/drawable/ColorDrawable;]Landroid/graphics/Outline;Landroid/graphics/Outline; 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; @@ -7077,7 +7078,7 @@ HSPLandroid/graphics/drawable/ColorDrawable;->setAlpha(I)V HSPLandroid/graphics/drawable/ColorDrawable;->setColor(I)V HSPLandroid/graphics/drawable/ColorDrawable;->setColorFilter(Landroid/graphics/ColorFilter;)V HSPLandroid/graphics/drawable/ColorDrawable;->setTintList(Landroid/content/res/ColorStateList;)V -HSPLandroid/graphics/drawable/ColorDrawable;->updateLocalState(Landroid/content/res/Resources;)V +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 @@ -7093,7 +7094,7 @@ HSPLandroid/graphics/drawable/Drawable;->createFromXmlForDensity(Landroid/conten HSPLandroid/graphics/drawable/Drawable;->createFromXmlInner(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable; HSPLandroid/graphics/drawable/Drawable;->createFromXmlInnerForDensity(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;ILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable; HSPLandroid/graphics/drawable/Drawable;->getBounds()Landroid/graphics/Rect; -HSPLandroid/graphics/drawable/Drawable;->getCallback()Landroid/graphics/drawable/Drawable$Callback; +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; @@ -7110,7 +7111,7 @@ 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 +HSPLandroid/graphics/drawable/Drawable;->invalidateSelf()V+]Landroid/graphics/drawable/Drawable$Callback;missing_types]Landroid/graphics/drawable/Drawable;megamorphic_types HSPLandroid/graphics/drawable/Drawable;->isProjected()Z HSPLandroid/graphics/drawable/Drawable;->isStateful()Z HSPLandroid/graphics/drawable/Drawable;->isVisible()Z @@ -7121,14 +7122,14 @@ HSPLandroid/graphics/drawable/Drawable;->onBoundsChange(Landroid/graphics/Rect;) 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;->resolveDensity(Landroid/content/res/Resources;I)I+]Landroid/content/res/Resources;Landroid/content/res/Resources; 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 +HSPLandroid/graphics/drawable/Drawable;->setBounds(IIII)V+]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/drawable/Drawable;megamorphic_types +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 @@ -7137,21 +7138,21 @@ HSPLandroid/graphics/drawable/Drawable;->setHotspot(FF)V HSPLandroid/graphics/drawable/Drawable;->setLayoutDirection(I)Z HSPLandroid/graphics/drawable/Drawable;->setLevel(I)Z HSPLandroid/graphics/drawable/Drawable;->setSrcDensityOverride(I)V -HSPLandroid/graphics/drawable/Drawable;->setState([I)Z +HSPLandroid/graphics/drawable/Drawable;->setState([I)Z+]Landroid/graphics/drawable/Drawable;megamorphic_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;->setVisible(ZZ)Z+]Landroid/graphics/drawable/Drawable;megamorphic_types 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; -HSPLandroid/graphics/drawable/Drawable;->updateTintFilter(Landroid/graphics/PorterDuffColorFilter;Landroid/content/res/ColorStateList;Landroid/graphics/PorterDuff$Mode;)Landroid/graphics/PorterDuffColorFilter; +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;+]Landroid/content/res/ColorStateList;Landroid/content/res/ColorStateList;]Landroid/graphics/PorterDuffColorFilter;Landroid/graphics/PorterDuffColorFilter;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/VectorDrawable; 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 -HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->addChild(Landroid/graphics/drawable/Drawable;)I +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+]Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;Landroid/graphics/drawable/StateListDrawable$StateListState;,Landroid/graphics/drawable/AnimationDrawable$AnimationState;]Landroid/graphics/drawable/Drawable;megamorphic_types 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 @@ -7190,19 +7191,19 @@ 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;->getOpticalInsets()Landroid/graphics/Insets;+]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/NinePatchDrawable; HSPLandroid/graphics/drawable/DrawableContainer;->getOutline(Landroid/graphics/Outline;)V -HSPLandroid/graphics/drawable/DrawableContainer;->getPadding(Landroid/graphics/Rect;)Z -HSPLandroid/graphics/drawable/DrawableContainer;->initializeDrawableForDisplay(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/graphics/drawable/DrawableContainer;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V +HSPLandroid/graphics/drawable/DrawableContainer;->getPadding(Landroid/graphics/Rect;)Z+]Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;]Landroid/graphics/Rect;Landroid/graphics/Rect; +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/AnimationDrawable;]Landroid/graphics/drawable/Drawable;megamorphic_types +HSPLandroid/graphics/drawable/DrawableContainer;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V+]Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;Landroid/graphics/drawable/StateListDrawable$StateListState;]Landroid/graphics/drawable/DrawableContainer;Landroid/graphics/drawable/StateListDrawable; HSPLandroid/graphics/drawable/DrawableContainer;->isAutoMirrored()Z HSPLandroid/graphics/drawable/DrawableContainer;->isStateful()Z -HSPLandroid/graphics/drawable/DrawableContainer;->jumpToCurrentState()V +HSPLandroid/graphics/drawable/DrawableContainer;->jumpToCurrentState()V+]Landroid/graphics/drawable/Drawable;megamorphic_types 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;->selectDrawable(I)Z+]Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;Landroid/graphics/drawable/StateListDrawable$StateListState;,Landroid/graphics/drawable/AnimationDrawable$AnimationState;]Landroid/graphics/drawable/DrawableContainer;Landroid/graphics/drawable/AnimationDrawable;,Landroid/graphics/drawable/StateListDrawable;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/VectorDrawable; HSPLandroid/graphics/drawable/DrawableContainer;->setAlpha(I)V HSPLandroid/graphics/drawable/DrawableContainer;->setAutoMirrored(Z)V HSPLandroid/graphics/drawable/DrawableContainer;->setColorFilter(Landroid/graphics/ColorFilter;)V @@ -7251,7 +7252,7 @@ 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;->setDrawable(Landroid/graphics/drawable/Drawable;)V+]Landroid/graphics/drawable/DrawableWrapper;Landroid/graphics/drawable/InsetDrawable;,Landroid/graphics/drawable/RotateDrawable;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/GradientDrawable;,Landroid/graphics/drawable/LayerDrawable;,Landroid/graphics/drawable/RippleDrawable; 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 @@ -7259,12 +7260,12 @@ 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 +HSPLandroid/graphics/drawable/GradientDrawable$GradientState;-><init>(Landroid/graphics/drawable/GradientDrawable$GradientState;Landroid/content/res/Resources;)V+][F[F][Landroid/content/res/ColorStateList;[Landroid/content/res/ColorStateList; +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;->computeOpacity()V+]Landroid/content/res/ColorStateList;Landroid/content/res/ColorStateList; +HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->getChangingConfigurations()I+]Landroid/content/res/ColorStateList;Landroid/content/res/ColorStateList; 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; @@ -7281,22 +7282,22 @@ HSPLandroid/graphics/drawable/GradientDrawable;->applyTheme(Landroid/content/res HSPLandroid/graphics/drawable/GradientDrawable;->applyThemeChildElements(Landroid/content/res/Resources$Theme;)V HSPLandroid/graphics/drawable/GradientDrawable;->canApplyTheme()Z HSPLandroid/graphics/drawable/GradientDrawable;->clearMutated()V -HSPLandroid/graphics/drawable/GradientDrawable;->draw(Landroid/graphics/Canvas;)V -HSPLandroid/graphics/drawable/GradientDrawable;->ensureValidRect()Z -HSPLandroid/graphics/drawable/GradientDrawable;->getChangingConfigurations()I +HSPLandroid/graphics/drawable/GradientDrawable;->draw(Landroid/graphics/Canvas;)V+]Landroid/graphics/Paint;Landroid/graphics/Paint;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas;,Landroid/graphics/Canvas;]Landroid/graphics/RectF;Landroid/graphics/RectF; +HSPLandroid/graphics/drawable/GradientDrawable;->ensureValidRect()Z+]Landroid/graphics/RectF;Landroid/graphics/RectF;]Landroid/graphics/drawable/GradientDrawable;Landroid/graphics/drawable/GradientDrawable;]Landroid/graphics/drawable/GradientDrawable$Orientation;Landroid/graphics/drawable/GradientDrawable$Orientation;]Landroid/content/res/ColorStateList;Landroid/content/res/ColorStateList;]Landroid/graphics/Paint;Landroid/graphics/Paint; +HSPLandroid/graphics/drawable/GradientDrawable;->getChangingConfigurations()I+]Landroid/graphics/drawable/GradientDrawable$GradientState;Landroid/graphics/drawable/GradientDrawable$GradientState; 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;->getOutline(Landroid/graphics/Outline;)V+]Landroid/graphics/drawable/GradientDrawable;Landroid/graphics/drawable/GradientDrawable;]Landroid/graphics/Paint;Landroid/graphics/Paint;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/Outline;Landroid/graphics/Outline; 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;->isStateful()Z+]Landroid/content/res/ColorStateList;Landroid/content/res/ColorStateList; 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 @@ -7323,12 +7324,12 @@ HSPLandroid/graphics/drawable/GradientDrawable;->updateGradientDrawablePadding(L HSPLandroid/graphics/drawable/GradientDrawable;->updateGradientDrawableSize(Landroid/content/res/TypedArray;)V HSPLandroid/graphics/drawable/GradientDrawable;->updateGradientDrawableSolid(Landroid/content/res/TypedArray;)V HSPLandroid/graphics/drawable/GradientDrawable;->updateGradientDrawableStroke(Landroid/content/res/TypedArray;)V -HSPLandroid/graphics/drawable/GradientDrawable;->updateLocalState(Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/GradientDrawable;->updateStateFromTypedArray(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+]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; 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;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/graphics/Bitmap$1;]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -7346,7 +7347,7 @@ HSPLandroid/graphics/drawable/Icon;->loadDrawableInner(Landroid/content/Context; 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/Icon;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/content/res/ColorStateList;Landroid/content/res/ColorStateList;]Landroid/graphics/drawable/Icon;Landroid/graphics/drawable/Icon;]Landroid/os/Parcel;Landroid/os/Parcel; 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 @@ -7364,7 +7365,7 @@ HSPLandroid/graphics/drawable/InsetDrawable;-><init>(Landroid/graphics/drawable/ 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 +HSPLandroid/graphics/drawable/InsetDrawable;->getInsets(Landroid/graphics/Rect;)V+]Landroid/graphics/drawable/InsetDrawable;missing_types]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 @@ -7376,7 +7377,7 @@ HSPLandroid/graphics/drawable/InsetDrawable;->onBoundsChange(Landroid/graphics/R HSPLandroid/graphics/drawable/InsetDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V HSPLandroid/graphics/drawable/InsetDrawable;->verifyRequiredAttributes(Landroid/content/res/TypedArray;)V HSPLandroid/graphics/drawable/LayerDrawable$ChildDrawable;-><init>(I)V -HSPLandroid/graphics/drawable/LayerDrawable$ChildDrawable;-><init>(Landroid/graphics/drawable/LayerDrawable$ChildDrawable;Landroid/graphics/drawable/LayerDrawable;Landroid/content/res/Resources;)V +HSPLandroid/graphics/drawable/LayerDrawable$ChildDrawable;-><init>(Landroid/graphics/drawable/LayerDrawable$ChildDrawable;Landroid/graphics/drawable/LayerDrawable;Landroid/content/res/Resources;)V+]Landroid/graphics/drawable/Drawable$ConstantState;megamorphic_types]Landroid/graphics/drawable/Drawable;megamorphic_types HSPLandroid/graphics/drawable/LayerDrawable$ChildDrawable;->applyDensityScaling(II)V HSPLandroid/graphics/drawable/LayerDrawable$ChildDrawable;->canApplyTheme()Z HSPLandroid/graphics/drawable/LayerDrawable$ChildDrawable;->setDensity(I)V @@ -7388,7 +7389,7 @@ HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->applyDensityScaling(II) 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;->getOpacity()I+]Landroid/graphics/drawable/Drawable;missing_types HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->invalidateCache()V HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->isStateful()Z HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->newDrawable()Landroid/graphics/drawable/Drawable; @@ -7396,7 +7397,7 @@ HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->newDrawable(Landroid/co 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/LayerDrawable$LayerState;Landroid/content/res/Resources;)V+]Landroid/graphics/drawable/LayerDrawable;missing_types 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; @@ -7414,23 +7415,23 @@ 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;->getIntrinsicHeight()I+]Landroid/graphics/drawable/Drawable;megamorphic_types +HSPLandroid/graphics/drawable/LayerDrawable;->getIntrinsicWidth()I+]Landroid/graphics/drawable/LayerDrawable;missing_types]Landroid/graphics/drawable/Drawable;missing_types 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;->getOpacity()I+]Landroid/graphics/drawable/LayerDrawable$LayerState;Landroid/graphics/drawable/LayerDrawable$LayerState;,Landroid/graphics/drawable/TransitionDrawable$TransitionState; +HSPLandroid/graphics/drawable/LayerDrawable;->getOutline(Landroid/graphics/Outline;)V+]Landroid/graphics/Outline;Landroid/graphics/Outline;]Landroid/graphics/drawable/Drawable;missing_types +HSPLandroid/graphics/drawable/LayerDrawable;->getPadding(Landroid/graphics/Rect;)Z+]Landroid/graphics/drawable/LayerDrawable;Landroid/graphics/drawable/LayerDrawable;,Landroid/graphics/drawable/RippleDrawable; 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;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V+]Landroid/graphics/drawable/LayerDrawable$LayerState;Landroid/graphics/drawable/LayerDrawable$LayerState;,Landroid/graphics/drawable/RippleDrawable$RippleState;,Landroid/graphics/drawable/TransitionDrawable$TransitionState;]Landroid/graphics/drawable/LayerDrawable;missing_types 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;->jumpToCurrentState()V+]Landroid/graphics/drawable/Drawable;missing_types +HSPLandroid/graphics/drawable/LayerDrawable;->mutate()Landroid/graphics/drawable/Drawable;+]Landroid/graphics/drawable/LayerDrawable;missing_types]Landroid/graphics/drawable/Drawable;missing_types 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;->refreshChildPadding(ILandroid/graphics/drawable/LayerDrawable$ChildDrawable;)Z+]Landroid/graphics/drawable/Drawable;megamorphic_types HSPLandroid/graphics/drawable/LayerDrawable;->refreshPadding()V HSPLandroid/graphics/drawable/LayerDrawable;->resolveGravity(IIIII)I HSPLandroid/graphics/drawable/LayerDrawable;->resumeChildInvalidation()V @@ -7446,10 +7447,10 @@ 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;->setVisible(ZZ)Z+]Landroid/graphics/drawable/Drawable;missing_types HSPLandroid/graphics/drawable/LayerDrawable;->suspendChildInvalidation()V HSPLandroid/graphics/drawable/LayerDrawable;->updateLayerBounds(Landroid/graphics/Rect;)V -HSPLandroid/graphics/drawable/LayerDrawable;->updateLayerBoundsInternal(Landroid/graphics/Rect;)V +HSPLandroid/graphics/drawable/LayerDrawable;->updateLayerBoundsInternal(Landroid/graphics/Rect;)V+]Landroid/graphics/drawable/LayerDrawable;missing_types]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/drawable/Drawable;megamorphic_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 @@ -7466,8 +7467,8 @@ HSPLandroid/graphics/drawable/NinePatchDrawable;-><init>(Landroid/graphics/drawa 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;->computeBitmapSize()V+]Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;]Landroid/graphics/NinePatch;Landroid/graphics/NinePatch; +HSPLandroid/graphics/drawable/NinePatchDrawable;->draw(Landroid/graphics/Canvas;)V+]Landroid/graphics/Paint;Landroid/graphics/Paint;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/drawable/NinePatchDrawable;Landroid/graphics/drawable/NinePatchDrawable;]Landroid/graphics/NinePatch;Landroid/graphics/NinePatch;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas; HSPLandroid/graphics/drawable/NinePatchDrawable;->getAlpha()I HSPLandroid/graphics/drawable/NinePatchDrawable;->getChangingConfigurations()I HSPLandroid/graphics/drawable/NinePatchDrawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState; @@ -7547,11 +7548,11 @@ HSPLandroid/graphics/drawable/RippleDrawable$RippleState;->newDrawable(Landroid/ 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;)V+]Landroid/graphics/drawable/RippleDrawable;Landroid/graphics/drawable/RippleDrawable; 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;->cancelExitingRipples()V+]Landroid/graphics/drawable/RippleDrawable;Landroid/graphics/drawable/RippleDrawable; HSPLandroid/graphics/drawable/RippleDrawable;->clearHotspots()V HSPLandroid/graphics/drawable/RippleDrawable;->computeRadius()F HSPLandroid/graphics/drawable/RippleDrawable;->createAnimationProperties(FFFFFF)Landroid/graphics/drawable/RippleAnimationSession$AnimationProperties; @@ -7559,27 +7560,27 @@ HSPLandroid/graphics/drawable/RippleDrawable;->createConstantState(Landroid/grap 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 +HSPLandroid/graphics/drawable/RippleDrawable;->drawContent(Landroid/graphics/Canvas;)V+]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/InsetDrawable; +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; +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 +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/GradientDrawable; 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 +HSPLandroid/graphics/drawable/RippleDrawable;->isBounded()Z+]Landroid/graphics/drawable/RippleDrawable;Landroid/graphics/drawable/RippleDrawable; +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;->onHotspotBoundsChanged()V+]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/graphics/drawable/RippleDrawable;->onStateChange([I)Z HSPLandroid/graphics/drawable/RippleDrawable;->pruneRipples()V HSPLandroid/graphics/drawable/RippleDrawable;->setBackgroundActive(ZZZZ)V @@ -7593,7 +7594,7 @@ 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;->updateRipplePaint()Landroid/graphics/Paint;+]Landroid/content/res/ColorStateList;Landroid/content/res/ColorStateList;]Landroid/graphics/Matrix;Landroid/graphics/Matrix;]Landroid/graphics/Paint;Landroid/graphics/Paint;]Landroid/graphics/drawable/RippleShader;Landroid/graphics/drawable/RippleShader;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/BitmapShader;Landroid/graphics/BitmapShader;]Landroid/graphics/drawable/RippleAnimationSession$AnimationProperties;Landroid/graphics/drawable/RippleAnimationSession$AnimationProperties;]Landroid/graphics/drawable/RippleDrawable;Landroid/graphics/drawable/RippleDrawable;]Landroid/graphics/PorterDuffColorFilter;Landroid/graphics/PorterDuffColorFilter;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/graphics/drawable/RippleAnimationSession;Landroid/graphics/drawable/RippleAnimationSession; 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 @@ -7710,7 +7711,7 @@ HSPLandroid/graphics/drawable/TransitionDrawable$TransitionState;-><init>(Landro 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;->draw(Landroid/graphics/Canvas;)V+]Landroid/graphics/drawable/TransitionDrawable;Landroid/graphics/drawable/TransitionDrawable;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/ColorDrawable; HSPLandroid/graphics/drawable/TransitionDrawable;->setCrossFadeEnabled(Z)V HSPLandroid/graphics/drawable/TransitionDrawable;->startTransition(I)V HSPLandroid/graphics/drawable/VectorDrawable$VClipPath;->canApplyTheme()Z @@ -7731,22 +7732,22 @@ HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->getPropertyIndex(Ljava/ HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->inflate(Landroid/content/res/Resources;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->isStateful()Z HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->onStateChange([I)Z -HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V +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;,Landroid/content/res/GradientColor;]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Landroid/graphics/Shader;Landroid/graphics/LinearGradient;,Landroid/graphics/RadialGradient;]Landroid/content/res/GradientColor;Landroid/content/res/GradientColor; 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 -HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->addChild(Landroid/graphics/drawable/VectorDrawable$VObject;)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$VFullPath;,Landroid/graphics/drawable/VectorDrawable$VGroup;,Landroid/graphics/drawable/VectorDrawable$VClipPath; 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;->getNativeSize()I+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/graphics/drawable/VectorDrawable$VObject;Landroid/graphics/drawable/VectorDrawable$VClipPath;,Landroid/graphics/drawable/VectorDrawable$VGroup;,Landroid/graphics/drawable/VectorDrawable$VFullPath; 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;->setTree(Lcom/android/internal/util/VirtualRefBasePtr;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/graphics/drawable/VectorDrawable$VObject;Landroid/graphics/drawable/VectorDrawable$VClipPath;,Landroid/graphics/drawable/VectorDrawable$VGroup;,Landroid/graphics/drawable/VectorDrawable$VFullPath; 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 @@ -7756,25 +7757,25 @@ HSPLandroid/graphics/drawable/VectorDrawable$VPath;-><init>(Landroid/graphics/dr HSPLandroid/graphics/drawable/VectorDrawable$VPath;->getPathName()Ljava/lang/String; HSPLandroid/graphics/drawable/VectorDrawable$VPath;->getProperty(Ljava/lang/String;)Landroid/util/Property; HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->-$$Nest$mcreateNativeTree(Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/graphics/drawable/VectorDrawable$VGroup;)V -HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;-><init>(Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;)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;->canReuseCache()Z+]Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/graphics/drawable/VectorDrawable$VectorDrawableState; 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;->createNativeTreeFromCopy(Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/graphics/drawable/VectorDrawable$VGroup;)V+]Ldalvik/system/VMRuntime;Ldalvik/system/VMRuntime;]Lcom/android/internal/util/VirtualRefBasePtr;Lcom/android/internal/util/VirtualRefBasePtr; HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->finalize()V -HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->getAlpha()F +HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->getAlpha()F+]Lcom/android/internal/util/VirtualRefBasePtr;Lcom/android/internal/util/VirtualRefBasePtr; 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;->getNativeRenderer()J+]Lcom/android/internal/util/VirtualRefBasePtr;Lcom/android/internal/util/VirtualRefBasePtr; +HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->isStateful()Z+]Landroid/content/res/ColorStateList;Landroid/content/res/ColorStateList;]Landroid/graphics/drawable/VectorDrawable$VGroup;Landroid/graphics/drawable/VectorDrawable$VGroup; HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->newDrawable()Landroid/graphics/drawable/Drawable; HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable; HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->onStateChange([I)Z -HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->onTreeConstructionFinished()V +HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->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;->setViewportSize(FF)V+]Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/graphics/drawable/VectorDrawable$VectorDrawableState; HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->updateCacheStates()V HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnAddChild(JJ)V HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnCreateFullPath()J @@ -7801,33 +7802,33 @@ HSPLandroid/graphics/drawable/VectorDrawable;->applyTheme(Landroid/content/res/R 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;->draw(Landroid/graphics/Canvas;)V+]Ldalvik/system/VMRuntime;Ldalvik/system/VMRuntime;]Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;]Landroid/graphics/ColorFilter;Landroid/graphics/PorterDuffColorFilter;,Landroid/graphics/BlendModeColorFilter;]Landroid/graphics/drawable/VectorDrawable;Landroid/graphics/drawable/VectorDrawable;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas; 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;->getIntrinsicWidth()I+]Landroid/graphics/drawable/VectorDrawable;Landroid/graphics/drawable/VectorDrawable; 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 -HSPLandroid/graphics/drawable/VectorDrawable;->inflateChildElements(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V +HSPLandroid/graphics/drawable/VectorDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V+]Ldalvik/system/VMRuntime;Ldalvik/system/VMRuntime;]Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;]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;]Ljava/lang/String;Ljava/lang/String;]Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/XmlBlock$Parser;]Landroid/graphics/drawable/VectorDrawable$VClipPath;Landroid/graphics/drawable/VectorDrawable$VClipPath;]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;->isStateful()Z+]Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/graphics/drawable/VectorDrawable$VectorDrawableState; 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;->onStateChange([I)Z+]Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;]Landroid/graphics/drawable/VectorDrawable;Landroid/graphics/drawable/VectorDrawable; 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;->updateColorFilters(Landroid/graphics/BlendMode;Landroid/content/res/ColorStateList;)V+]Landroid/graphics/drawable/VectorDrawable;Landroid/graphics/drawable/VectorDrawable; HSPLandroid/graphics/drawable/VectorDrawable;->updateLocalState(Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/VectorDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)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 @@ -7891,7 +7892,7 @@ 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;-><init>(J)V+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry; HSPLandroid/graphics/text/LineBreaker$Result;->getEndLineHyphenEdit(I)I HSPLandroid/graphics/text/LineBreaker$Result;->getLineAscent(I)F HSPLandroid/graphics/text/LineBreaker$Result;->getLineBreakOffset(I)I @@ -7900,12 +7901,12 @@ 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/LineBreaker;->computeLineBreaks(Landroid/graphics/text/MeasuredText;Landroid/graphics/text/LineBreaker$ParagraphConstraints;I)Landroid/graphics/text/LineBreaker$Result;+]Landroid/graphics/text/MeasuredText;Landroid/graphics/text/MeasuredText; 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;->appendStyleRun(Landroid/graphics/Paint;Landroid/graphics/text/LineBreakConfig;IZ)Landroid/graphics/text/MeasuredText$Builder;+]Landroid/graphics/Paint;Landroid/text/TextPaint;]Landroid/graphics/text/LineBreakConfig;Landroid/graphics/text/LineBreakConfig; +HSPLandroid/graphics/text/MeasuredText$Builder;->build()Landroid/graphics/text/MeasuredText;+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry; 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; @@ -7981,7 +7982,7 @@ HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;->removeSensor(Landroid/ 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 +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 @@ -8048,13 +8049,13 @@ HSPLandroid/hardware/camera2/impl/CameraDeviceImpl;->checkAndWrapHandler(Landroi 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;->equals(Ljava/lang/Object;)Z+]Ljava/lang/String;Ljava/lang/String;]Landroid/hardware/camera2/impl/CameraMetadataNative$Key;Landroid/hardware/camera2/impl/CameraMetadataNative$Key;]Ljava/lang/Object;Landroid/hardware/camera2/impl/CameraMetadataNative$Key;]Landroid/hardware/camera2/utils/TypeReference;Landroid/hardware/camera2/utils/TypeReference$SpecializedTypeReference; 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;->get(Landroid/hardware/camera2/impl/CameraMetadataNative$Key;)Ljava/lang/Object;+]Ljava/util/HashMap;Ljava/util/HashMap;]Landroid/hardware/camera2/impl/GetCommand;megamorphic_types +HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->getBase(Landroid/hardware/camera2/impl/CameraMetadataNative$Key;)Ljava/lang/Object;+]Landroid/hardware/camera2/impl/CameraMetadataNative$Key;Landroid/hardware/camera2/impl/CameraMetadataNative$Key;]Landroid/hardware/camera2/marshal/Marshaler;megamorphic_types]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer;]Landroid/hardware/camera2/impl/CameraMetadataNative;Landroid/hardware/camera2/impl/CameraMetadataNative; 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 @@ -8064,11 +8065,11 @@ HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->setupGlobalVendorTagDes 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;->equals(Ljava/lang/Object;)Z+]Landroid/hardware/camera2/utils/TypeReference;megamorphic_types 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/MarshalRegistry;->getMarshaler(Landroid/hardware/camera2/utils/TypeReference;I)Landroid/hardware/camera2/marshal/Marshaler;+]Ljava/util/HashMap;Ljava/util/HashMap; 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$MarshalerArray;->unmarshal(Ljava/nio/ByteBuffer;)Ljava/lang/Object;+]Landroid/hardware/camera2/marshal/Marshaler;Landroid/hardware/camera2/marshal/impl/MarshalQueryableMeteringRectangle$MarshalerMeteringRectangle;,Landroid/hardware/camera2/marshal/impl/MarshalQueryablePrimitive$MarshalerPrimitive;,Landroid/hardware/camera2/marshal/impl/MarshalQueryablePair$MarshalerPair;]Landroid/hardware/camera2/marshal/impl/MarshalQueryableArray$PrimitiveArrayFiller;Landroid/hardware/camera2/marshal/impl/MarshalQueryableArray$PrimitiveArrayFiller$1;,Landroid/hardware/camera2/marshal/impl/MarshalQueryableArray$PrimitiveArrayFiller$2;,Landroid/hardware/camera2/marshal/impl/MarshalQueryableArray$PrimitiveArrayFiller$3;,Landroid/hardware/camera2/marshal/impl/MarshalQueryableArray$PrimitiveArrayFiller$5;]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer;]Ljava/lang/Class;Ljava/lang/Class; 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; @@ -8081,8 +8082,8 @@ HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableNativeByteToInteger$Ma 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$MarshalerPrimitive;->unmarshal(Ljava/nio/ByteBuffer;)Ljava/lang/Object;+]Ljava/lang/Class;Ljava/lang/Class; +HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryablePrimitive$MarshalerPrimitive;->unmarshalObject(Ljava/nio/ByteBuffer;)Ljava/lang/Object;+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; 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 @@ -8099,8 +8100,8 @@ HSPLandroid/hardware/camera2/utils/ConcurrentCameraIdCombination;-><init>(Landro 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;->containsTypeVariable(Ljava/lang/reflect/Type;)Z+]Ljava/lang/Class;Ljava/lang/Class; +HSPLandroid/hardware/camera2/utils/TypeReference;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Object;Llibcore/reflect/ParameterizedTypeImpl;,Llibcore/reflect/GenericArrayTypeImpl;,Ljava/lang/Class; 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; @@ -8178,14 +8179,15 @@ HSPLandroid/hardware/display/DisplayManager$$ExternalSyntheticLambda2;->test(Lja 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;+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/lang/ref/WeakReference;Ljava/lang/ref/WeakReference; -HSPLandroid/hardware/display/DisplayManager$WeakDisplayCache;->put(Landroid/view/Display;)V -HSPLandroid/hardware/display/DisplayManager$WeakDisplayCache;->removeStaleEntries()V +HSPLandroid/hardware/display/DisplayManager$WeakDisplayCache;->put(Landroid/view/Display;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/view/Display;Landroid/view/Display; +HSPLandroid/hardware/display/DisplayManager$WeakDisplayCache;->removeStaleEntries()V+]Ljava/lang/Integer;Ljava/lang/Integer;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/lang/ref/WeakReference;Ljava/lang/ref/WeakReference;]Ljava/util/ArrayList;Ljava/util/ArrayList; +HSPLandroid/hardware/display/DisplayManager;->$r8$lambda$SFvjuUGZreFxYU7cOzBlo6b0tEs(Landroid/view/Display;)Z 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;+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/function/Predicate;Landroid/hardware/display/DisplayManager$$ExternalSyntheticLambda2; -HSPLandroid/hardware/display/DisplayManager;->getOrCreateDisplay(IZ)Landroid/view/Display;+]Landroid/hardware/display/DisplayManager$WeakDisplayCache;Landroid/hardware/display/DisplayManager$WeakDisplayCache;]Landroid/content/Context;Landroid/app/Application;]Landroid/hardware/display/DisplayManagerGlobal;Landroid/hardware/display/DisplayManagerGlobal;]Landroid/view/Display;Landroid/view/Display; +HSPLandroid/hardware/display/DisplayManager;->getDisplays([ILjava/util/function/Predicate;)[Landroid/view/Display;+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/function/Predicate;Landroid/hardware/display/DisplayManager$$ExternalSyntheticLambda2;,Landroid/hardware/display/DisplayManager$$ExternalSyntheticLambda0; +HSPLandroid/hardware/display/DisplayManager;->getOrCreateDisplay(IZ)Landroid/view/Display;+]Landroid/hardware/display/DisplayManager$WeakDisplayCache;Landroid/hardware/display/DisplayManager$WeakDisplayCache;]Landroid/hardware/display/DisplayManagerGlobal;Landroid/hardware/display/DisplayManagerGlobal;]Landroid/view/Display;Landroid/view/Display;]Landroid/content/Context;missing_types HSPLandroid/hardware/display/DisplayManager;->getStableDisplaySize()Landroid/graphics/Point; HSPLandroid/hardware/display/DisplayManager;->getWifiDisplayStatus()Landroid/hardware/display/WifiDisplayStatus; HSPLandroid/hardware/display/DisplayManager;->isPresentationDisplay(Landroid/view/Display;)Z @@ -8283,8 +8285,8 @@ HSPLandroid/hardware/input/InputManagerGlobal$InputDeviceListenerDelegate;-><ini 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;->getInputDevice(I)Landroid/view/InputDevice;+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/hardware/input/IInputManager;Landroid/hardware/input/IInputManager$Stub$Proxy; +HSPLandroid/hardware/input/InputManagerGlobal;->getInputDeviceIds()[I+]Landroid/util/SparseArray;Landroid/util/SparseArray; HSPLandroid/hardware/input/InputManagerGlobal;->getInputManagerService()Landroid/hardware/input/IInputManager; HSPLandroid/hardware/input/InputManagerGlobal;->getInstance()Landroid/hardware/input/InputManagerGlobal; HSPLandroid/hardware/input/InputManagerGlobal;->populateInputDevicesLocked()V @@ -8348,7 +8350,7 @@ HSPLandroid/hardware/security/keymint/KeyParameter$1;->newArray(I)[Landroid/hard 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;->readFromParcel(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -8373,7 +8375,7 @@ 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;->readFromParcel(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; 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 @@ -8416,7 +8418,7 @@ 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;->get()Ljava/lang/Object;+]Ljava/lang/ref/Reference;Ljava/lang/ref/SoftReference; 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 @@ -8452,7 +8454,7 @@ HSPLandroid/icu/impl/FormattedStringBuilder;->copyFrom(Landroid/icu/impl/Formatt HSPLandroid/icu/impl/FormattedStringBuilder;->fieldAt(I)Ljava/lang/Object; HSPLandroid/icu/impl/FormattedStringBuilder;->getCapacity()I HSPLandroid/icu/impl/FormattedStringBuilder;->insert(ILjava/lang/CharSequence;IILjava/lang/Object;)I -HSPLandroid/icu/impl/FormattedStringBuilder;->insert(ILjava/lang/CharSequence;Ljava/lang/Object;)I +HSPLandroid/icu/impl/FormattedStringBuilder;->insert(ILjava/lang/CharSequence;Ljava/lang/Object;)I+]Landroid/icu/impl/FormattedStringBuilder;Landroid/icu/impl/FormattedStringBuilder;]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 @@ -8463,8 +8465,8 @@ HSPLandroid/icu/impl/FormattedStringBuilder;->toFieldArray()[Ljava/lang/Object; HSPLandroid/icu/impl/FormattedStringBuilder;->toString()Ljava/lang/String; HSPLandroid/icu/impl/FormattedStringBuilder;->unwrapField(Ljava/lang/Object;)Ljava/text/Format$Field; HSPLandroid/icu/impl/FormattedValueStringBuilderImpl;->isIntOrGroup(Ljava/lang/Object;)Z -HSPLandroid/icu/impl/FormattedValueStringBuilderImpl;->nextFieldPosition(Landroid/icu/impl/FormattedStringBuilder;Ljava/text/FieldPosition;)Z -HSPLandroid/icu/impl/FormattedValueStringBuilderImpl;->nextPosition(Landroid/icu/impl/FormattedStringBuilder;Landroid/icu/text/ConstrainedFieldPosition;Ljava/text/Format$Field;)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 @@ -8503,12 +8505,12 @@ HSPLandroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$Curre 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;->fetchFormattingData(Ljava/lang/String;)Landroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$FormattingData;+]Ljava/lang/String;Ljava/lang/String; 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/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo;->getSymbol(Ljava/lang/String;)Ljava/lang/String;+]Landroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo;Landroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo; +HSPLandroid/icu/impl/ICUCurrencyDisplayInfoProvider;->getInstance(Landroid/icu/util/ULocale;Z)Landroid/icu/impl/CurrencyData$CurrencyDisplayInfo;+]Landroid/icu/util/ULocale;Landroid/icu/util/ULocale; 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 @@ -8519,11 +8521,11 @@ 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 +HSPLandroid/icu/impl/ICUCurrencyMetaInfo;->collect(Landroid/icu/impl/ICUCurrencyMetaInfo$Collector;Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;)Ljava/util/List;+]Landroid/icu/impl/ICUResourceBundle;Landroid/icu/impl/ICUResourceBundleImpl$ResourceTable;]Landroid/icu/impl/ICUCurrencyMetaInfo$Collector;Landroid/icu/impl/ICUCurrencyMetaInfo$CurrencyCollector; +HSPLandroid/icu/impl/ICUCurrencyMetaInfo;->collectRegion(Landroid/icu/impl/ICUCurrencyMetaInfo$Collector;Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;ILandroid/icu/impl/ICUResourceBundle;)V+]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/ICUCurrencyMetaInfo;->getDate(Landroid/icu/impl/ICUResourceBundle;JZ)J+]Landroid/icu/impl/ICUResourceBundle;Landroid/icu/impl/ICUResourceBundleImpl$ResourceIntVector; 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; @@ -8567,16 +8569,16 @@ HSPLandroid/icu/impl/ICUResourceBundle;->-$$Nest$sminstantiateBundle(Ljava/lang/ 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 +HSPLandroid/icu/impl/ICUResourceBundle;->at(I)Landroid/icu/impl/ICUResourceBundle;+]Landroid/icu/impl/ICUResourceBundle;Landroid/icu/impl/ICUResourceBundleImpl$ResourceArray; +HSPLandroid/icu/impl/ICUResourceBundle;->at(Ljava/lang/String;)Landroid/icu/impl/ICUResourceBundle;+]Landroid/icu/impl/ICUResourceBundle;Landroid/icu/impl/ICUResourceBundleImpl$ResourceTable; +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; +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$Table16;,Landroid/icu/impl/ICUResourceBundleReader$Table1632;]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; @@ -8591,7 +8593,7 @@ HSPLandroid/icu/impl/ICUResourceBundle;->getAvailEntry(Ljava/lang/String;Ljava/l 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;Landroid/icu/impl/ICUResourceBundle$OpenType;)Landroid/icu/impl/ICUResourceBundle;+]Landroid/icu/util/ULocale;Landroid/icu/util/ULocale; 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; @@ -8604,31 +8606,31 @@ HSPLandroid/icu/impl/ICUResourceBundle;->getParent()Landroid/icu/impl/ICUResourc 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[Ljava/lang/String;I)V+]Ljava/lang/String;Ljava/lang/String; 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; +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;->handleGet(ILjava/util/HashMap;Landroid/icu/util/UResourceBundle;)Landroid/icu/util/UResourceBundle;+]Landroid/icu/impl/ICUResourceBundleImpl$ResourceArray;Landroid/icu/impl/ICUResourceBundleImpl$ResourceArray; 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 -HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceContainer;->getSize()I +HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceContainer;->createBundleObject(ILjava/lang/String;Ljava/util/HashMap;Landroid/icu/util/UResourceBundle;)Landroid/icu/util/UResourceBundle;+]Landroid/icu/impl/ICUResourceBundleImpl$ResourceContainer;Landroid/icu/impl/ICUResourceBundleImpl$ResourceArray; +HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceContainer;->getContainerResource(I)I+]Landroid/icu/impl/ICUResourceBundleReader$Container;Landroid/icu/impl/ICUResourceBundleReader$Table16;,Landroid/icu/impl/ICUResourceBundleReader$Table1632;,Landroid/icu/impl/ICUResourceBundleReader$Array32; +HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceContainer;->getSize()I+]Landroid/icu/impl/ICUResourceBundleReader$Container;Landroid/icu/impl/ICUResourceBundleReader$Table16;,Landroid/icu/impl/ICUResourceBundleReader$Table1632;,Landroid/icu/impl/ICUResourceBundleReader$Array32; 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 +HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceIntVector;->getIntVector()[I+]Landroid/icu/impl/ICUResourceBundleReader;Landroid/icu/impl/ICUResourceBundleReader; +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 @@ -8645,7 +8647,7 @@ 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$Array32;->getContainerResource(Landroid/icu/impl/ICUResourceBundleReader;I)I+]Landroid/icu/impl/ICUResourceBundleReader$Array32;Landroid/icu/impl/ICUResourceBundleReader$Array32; 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 @@ -8673,18 +8675,18 @@ 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; +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$Table1632;->getContainerResource(Landroid/icu/impl/ICUResourceBundleReader;I)I+]Landroid/icu/impl/ICUResourceBundleReader$Table1632;Landroid/icu/impl/ICUResourceBundleReader$Table1632; +HSPLandroid/icu/impl/ICUResourceBundleReader$Table16;->getContainerResource(Landroid/icu/impl/ICUResourceBundleReader;I)I+]Landroid/icu/impl/ICUResourceBundleReader$Table16;Landroid/icu/impl/ICUResourceBundleReader$Table16; 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 -HSPLandroid/icu/impl/ICUResourceBundleReader$Table;->getResource(Landroid/icu/impl/ICUResourceBundleReader;Ljava/lang/String;)I +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$Table16;,Landroid/icu/impl/ICUResourceBundleReader$Table1632; +HSPLandroid/icu/impl/ICUResourceBundleReader$Table;->getResource(Landroid/icu/impl/ICUResourceBundleReader;Ljava/lang/String;)I+]Landroid/icu/impl/ICUResourceBundleReader$Table;Landroid/icu/impl/ICUResourceBundleReader$Table;,Landroid/icu/impl/ICUResourceBundleReader$Table16;,Landroid/icu/impl/ICUResourceBundleReader$Table1632; 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 @@ -8707,20 +8709,20 @@ 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; +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;->getInt(I)I+]Ljava/nio/ByteBuffer;Ljava/nio/DirectByteBuffer; HSPLandroid/icu/impl/ICUResourceBundleReader;->getIntVector(I)[I -HSPLandroid/icu/impl/ICUResourceBundleReader;->getInts(II)[I +HSPLandroid/icu/impl/ICUResourceBundleReader;->getInts(II)[I+]Ljava/nio/ByteBuffer;Ljava/nio/DirectByteBuffer; 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; +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 +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; @@ -8732,8 +8734,8 @@ 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; HSPLandroid/icu/impl/ICUService;->isDefault()Z -HSPLandroid/icu/impl/IDNA2003;->convertIDNToASCII(Ljava/lang/String;I)Ljava/lang/StringBuffer; -HSPLandroid/icu/impl/IDNA2003;->convertToASCII(Landroid/icu/text/UCharacterIterator;I)Ljava/lang/StringBuffer; +HSPLandroid/icu/impl/IDNA2003;->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 @@ -8741,9 +8743,9 @@ HSPLandroid/icu/impl/LocaleIDParser$1;-><init>(Landroid/icu/impl/LocaleIDParser; HSPLandroid/icu/impl/LocaleIDParser$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I HSPLandroid/icu/impl/LocaleIDParser$1;->compare(Ljava/lang/String;Ljava/lang/String;)I HSPLandroid/icu/impl/LocaleIDParser;-><init>(Ljava/lang/String;)V -HSPLandroid/icu/impl/LocaleIDParser;-><init>(Ljava/lang/String;Z)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 +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; @@ -8751,12 +8753,12 @@ 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;->getKeywordValue(Ljava/lang/String;)Ljava/lang/String;+]Landroid/icu/impl/LocaleIDParser;Landroid/icu/impl/LocaleIDParser;]Ljava/util/Map;Ljava/util/Collections$EmptyMap; +HSPLandroid/icu/impl/LocaleIDParser;->getKeywords()Ljava/util/Iterator;+]Landroid/icu/impl/LocaleIDParser;Landroid/icu/impl/LocaleIDParser;]Ljava/util/Map;Ljava/util/Collections$EmptyMap; 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;->getString(I)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HSPLandroid/icu/impl/LocaleIDParser;->getValue()Ljava/lang/String; HSPLandroid/icu/impl/LocaleIDParser;->getVariant()Ljava/lang/String; HSPLandroid/icu/impl/LocaleIDParser;->haveExperimentalLanguagePrefix()Z @@ -8767,10 +8769,10 @@ HSPLandroid/icu/impl/LocaleIDParser;->isTerminator(C)Z HSPLandroid/icu/impl/LocaleIDParser;->isTerminatorOrIDSeparator(C)Z HSPLandroid/icu/impl/LocaleIDParser;->next()C HSPLandroid/icu/impl/LocaleIDParser;->parseBaseName()V -HSPLandroid/icu/impl/LocaleIDParser;->parseCountry()I +HSPLandroid/icu/impl/LocaleIDParser;->parseCountry()I+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HSPLandroid/icu/impl/LocaleIDParser;->parseKeywords()I HSPLandroid/icu/impl/LocaleIDParser;->parseLanguage()I -HSPLandroid/icu/impl/LocaleIDParser;->parseScript()I +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 @@ -8782,7 +8784,7 @@ 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$DecomposeNormalizer2;->spanQuickCheckYes(Ljava/lang/CharSequence;)I+]Landroid/icu/impl/Normalizer2Impl;Landroid/icu/impl/Normalizer2Impl;]Ljava/lang/CharSequence;Ljava/lang/String; 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; @@ -8799,7 +8801,7 @@ HSPLandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->flushAndAppendZeroCC(Lja HSPLandroid/icu/impl/Normalizer2Impl;->addToStartSet(Landroid/icu/util/MutableCodePointTrie;II)V HSPLandroid/icu/impl/Normalizer2Impl;->composeQuickCheck(Ljava/lang/CharSequence;IIZZ)I HSPLandroid/icu/impl/Normalizer2Impl;->decompose(IILandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;)V -HSPLandroid/icu/impl/Normalizer2Impl;->decompose(Ljava/lang/CharSequence;IILandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;)I +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 @@ -8813,7 +8815,7 @@ 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;->cloneAsThawed()Landroid/icu/util/TimeZone;+]Landroid/icu/util/SimpleTimeZone;Landroid/icu/util/SimpleTimeZone; 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; @@ -8821,15 +8823,15 @@ 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;->getOffset(JZ[I)V+]Landroid/icu/util/SimpleTimeZone;Landroid/icu/util/SimpleTimeZone; HSPLandroid/icu/impl/OlsonTimeZone;->getTimeZoneRules()[Landroid/icu/util/TimeZoneRule; -HSPLandroid/icu/impl/OlsonTimeZone;->hashCode()I +HSPLandroid/icu/impl/OlsonTimeZone;->hashCode()I+]Landroid/icu/util/SimpleTimeZone;Landroid/icu/util/SimpleTimeZone; 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; +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 @@ -8848,14 +8850,14 @@ HSPLandroid/icu/impl/PluralRulesLoader;->getRulesIdForLocale(Landroid/icu/util/U 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$RBBIStateTable;->get(Ljava/nio/ByteBuffer;I)Landroid/icu/impl/RBBIDataWrapper$RBBIStateTable;+]Ljava/nio/ByteBuffer;Ljava/nio/DirectByteBuffer; 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 -HSPLandroid/icu/impl/ReplaceableUCharacterIterator;->setIndex(I)V +HSPLandroid/icu/impl/ReplaceableUCharacterIterator;->getText([CI)I+]Landroid/icu/text/Replaceable;Landroid/icu/text/ReplaceableString; +HSPLandroid/icu/impl/ReplaceableUCharacterIterator;->next()I+]Landroid/icu/text/Replaceable;Landroid/icu/text/ReplaceableString; +HSPLandroid/icu/impl/ReplaceableUCharacterIterator;->setIndex(I)V+]Landroid/icu/text/Replaceable;Landroid/icu/text/ReplaceableString; HSPLandroid/icu/impl/RuleCharacterIterator;->_advance(I)V HSPLandroid/icu/impl/RuleCharacterIterator;->_current()I HSPLandroid/icu/impl/RuleCharacterIterator;->atEnd()Z @@ -8871,7 +8873,7 @@ HSPLandroid/icu/impl/SimpleFormatterImpl;->format(Ljava/lang/String;[Ljava/lang/ 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/SoftCache;->getInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+]Landroid/icu/impl/CacheValue;Landroid/icu/impl/CacheValue$SoftValue;]Landroid/icu/impl/SoftCache;Landroid/icu/impl/ICUResourceBundleReader$ReaderCache;,Landroid/icu/util/ULocale$1;,Landroid/icu/impl/ICUResourceBundle$1;]Ljava/util/concurrent/ConcurrentHashMap;Ljava/util/concurrent/ConcurrentHashMap; 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; @@ -8879,17 +8881,17 @@ 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;-><init>(Ljava/lang/String;Z)V+]Ljava/lang/String;Ljava/lang/String; HSPLandroid/icu/impl/StringSegment;->adjustOffset(I)V -HSPLandroid/icu/impl/StringSegment;->charAt(I)C +HSPLandroid/icu/impl/StringSegment;->charAt(I)C+]Ljava/lang/String;Ljava/lang/String; HSPLandroid/icu/impl/StringSegment;->codePointsEqual(IIZ)Z -HSPLandroid/icu/impl/StringSegment;->getCodePoint()I +HSPLandroid/icu/impl/StringSegment;->getCodePoint()I+]Ljava/lang/String;Ljava/lang/String; 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;->getPrefixLengthInternal(Ljava/lang/CharSequence;Z)I+]Ljava/lang/CharSequence;Ljava/lang/String;]Landroid/icu/impl/StringSegment;Landroid/icu/impl/StringSegment; 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/StringSegment;->startsWith(Ljava/lang/CharSequence;)Z+]Ljava/lang/CharSequence;Ljava/lang/String;]Landroid/icu/impl/StringSegment;Landroid/icu/impl/StringSegment; 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; @@ -8944,9 +8946,9 @@ 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;->getClass(I)I+]Landroid/icu/impl/Trie2_16;Landroid/icu/impl/Trie2_16; HSPLandroid/icu/impl/UBiDiProps;->getClassFromProps(I)I -HSPLandroid/icu/impl/UCaseProps;->fold(II)I +HSPLandroid/icu/impl/UCaseProps;->fold(II)I+]Landroid/icu/impl/Trie2_16;Landroid/icu/impl/Trie2_16; 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 @@ -8954,11 +8956,11 @@ 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;->digit(I)I+]Landroid/icu/impl/UCharacterProperty;Landroid/icu/impl/UCharacterProperty; 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/UCharacterProperty;->getProperty(I)I+]Landroid/icu/impl/Trie2_16;Landroid/icu/impl/Trie2_16; +HSPLandroid/icu/impl/UCharacterProperty;->getType(I)I+]Landroid/icu/impl/UCharacterProperty;Landroid/icu/impl/UCharacterProperty; 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 @@ -8988,11 +8990,11 @@ HSPLandroid/icu/impl/ZoneMeta$SystemTimeZoneCache;->createInstance(Ljava/lang/St 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;->getSystemTimeZone(Ljava/lang/String;)Landroid/icu/impl/OlsonTimeZone;+]Landroid/icu/impl/ZoneMeta$SystemTimeZoneCache;Landroid/icu/impl/ZoneMeta$SystemTimeZoneCache; 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;->clone()Ljava/lang/Object;+][I[I HSPLandroid/icu/impl/breakiter/DictionaryBreakEngine$DequeI;->removeAllElements()V HSPLandroid/icu/impl/coll/Collation;-><clinit>()V HSPLandroid/icu/impl/coll/Collation;->ceFromCE32(I)J @@ -9091,9 +9093,9 @@ 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;->caseIgnoreMatch(Ljava/lang/String;Ljava/lang/String;)Z+]Ljava/lang/String;Ljava/lang/String; HSPLandroid/icu/impl/locale/AsciiUtil;->isAlpha(C)Z -HSPLandroid/icu/impl/locale/AsciiUtil;->isAlphaString(Ljava/lang/String;)Z +HSPLandroid/icu/impl/locale/AsciiUtil;->isAlphaString(Ljava/lang/String;)Z+]Ljava/lang/String;Ljava/lang/String; 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; @@ -9109,11 +9111,11 @@ HSPLandroid/icu/impl/locale/BaseLocale$Key;->-$$Nest$fget_scrt(Landroid/icu/impl HSPLandroid/icu/impl/locale/BaseLocale$Key;->-$$Nest$fget_vart(Landroid/icu/impl/locale/BaseLocale$Key;)Ljava/lang/String; HSPLandroid/icu/impl/locale/BaseLocale$Key;-><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 +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 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;->getInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/icu/impl/locale/BaseLocale;+]Landroid/icu/impl/locale/BaseLocale$Cache;Landroid/icu/impl/locale/BaseLocale$Cache; 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; @@ -9128,33 +9130,33 @@ 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/locale/LocaleObjectCache;->cleanStaleEntries()V+]Ljava/lang/ref/ReferenceQueue;Ljava/lang/ref/ReferenceQueue; +HSPLandroid/icu/impl/locale/LocaleObjectCache;->get(Ljava/lang/Object;)Ljava/lang/Object;+]Landroid/icu/impl/locale/LocaleObjectCache$CacheEntry;Landroid/icu/impl/locale/LocaleObjectCache$CacheEntry;]Ljava/util/concurrent/ConcurrentHashMap;Ljava/util/concurrent/ConcurrentHashMap; 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; -HSPLandroid/icu/impl/number/AffixUtils;->containsType(Ljava/lang/CharSequence;I)Z +HSPLandroid/icu/impl/number/AffixUtils;->containsType(Ljava/lang/CharSequence;I)Z+]Ljava/lang/CharSequence;Ljava/lang/String; 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;->hasCurrencySymbols(Ljava/lang/CharSequence;)Z+]Ljava/lang/CharSequence;Ljava/lang/String; +HSPLandroid/icu/impl/number/AffixUtils;->hasNext(JLjava/lang/CharSequence;)Z+]Ljava/lang/CharSequence;Ljava/lang/StringBuilder;,Ljava/lang/String; 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;->nextToken(JLjava/lang/CharSequence;)J+]Ljava/lang/CharSequence;Ljava/lang/String;,Ljava/lang/StringBuilder; 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 +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 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; +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; @@ -9236,12 +9238,12 @@ HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->_setToBigInteger(Ljava HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->_setToDoubleFast(D)V HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->_setToLong(J)V HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->adjustMagnitude(I)V -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->appendDigit(BIZ)V +HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->appendDigit(BIZ)V+]Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD; 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 +HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->fitsInLong()Z+]Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD; +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 @@ -9254,20 +9256,20 @@ 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 +HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->roundToMagnitude(ILjava/math/MathContext;Z)V+]Ljava/math/MathContext;Ljava/math/MathContext;]Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;]Ljava/math/RoundingMode;Ljava/math/RoundingMode; 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 HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->setToInt(I)V -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->setToLong(J)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;->signum()Landroid/icu/impl/number/Modifier$Signum; -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->toLong(Z)J +HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->toLong(Z)J+]Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD; HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;-><init>()V HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;-><init>(D)V 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>(J)V+]Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD; 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 @@ -9283,9 +9285,9 @@ 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;->forProperties(Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/impl/number/Grouper;+]Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/DecimalFormatProperties; 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;->getMinGroupingForLocale(Landroid/icu/util/ULocale;)S+]Landroid/icu/impl/ICUResourceBundle;Landroid/icu/impl/ICUResourceBundleImpl$ResourceTable;]Ljava/lang/Short;Ljava/lang/Short; 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 @@ -9307,16 +9309,16 @@ HSPLandroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;->ap HSPLandroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;->processQuantity(Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/number/MicroProps; 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;->apply(Landroid/icu/impl/FormattedStringBuilder;II)I+]Landroid/icu/impl/number/AffixPatternProvider;Landroid/icu/impl/number/PropertiesAffixPatternProvider; 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;->needsPlurals()Z+]Landroid/icu/impl/number/AffixPatternProvider;Landroid/icu/impl/number/PropertiesAffixPatternProvider; 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;->processQuantity(Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/number/MicroProps;+]Landroid/icu/impl/number/MutablePatternModifier;Landroid/icu/impl/number/MutablePatternModifier;]Landroid/icu/impl/number/MicroPropsGenerator;Landroid/icu/impl/number/MicroProps;]Landroid/icu/number/Precision;Landroid/icu/number/Precision$FractionRounderImpl;]Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD; 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 @@ -9328,55 +9330,55 @@ HSPLandroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;->getEndpoints 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$ParserState;->next()I+]Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParserState; +HSPLandroid/icu/impl/number/PatternStringParser$ParserState;->peek()I+]Ljava/lang/String;Ljava/lang/String; +HSPLandroid/icu/impl/number/PatternStringParser;->consumeAffix(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;)J+]Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParserState; 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 +HSPLandroid/icu/impl/number/PatternStringParser;->consumeFormat(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;->consumeFractionFormat(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;)V+]Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParserState; +HSPLandroid/icu/impl/number/PatternStringParser;->consumeIntegerFormat(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;)V+]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;->consumePadding(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;Landroid/icu/impl/number/Padder$PadPosition;)V+]Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParserState; +HSPLandroid/icu/impl/number/PatternStringParser;->consumePattern(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;)V+]Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParserState; 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/PatternStringParser;->patternInfoToProperties(Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;I)V+]Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;]Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/DecimalFormatProperties; 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; -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 +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+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/icu/impl/number/AffixPatternProvider;Landroid/icu/impl/number/PropertiesAffixPatternProvider;]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/impl/StandardPlural;Landroid/icu/impl/StandardPlural; +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;+]Landroid/icu/impl/number/Modifier$Signum;Landroid/icu/impl/number/Modifier$Signum;]Landroid/icu/number/NumberFormatter$SignDisplay;Landroid/icu/number/NumberFormatter$SignDisplay; +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;->forProperties(Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/impl/number/AffixPatternProvider;+]Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/DecimalFormatProperties; 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 -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/PropertiesAffixPatternProvider;->hasNegativeSubpattern()Z+]Ljava/lang/String;Ljava/lang/String; +HSPLandroid/icu/impl/number/PropertiesAffixPatternProvider;->length(I)I+]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/impl/number/PropertiesAffixPatternProvider;Landroid/icu/impl/number/PropertiesAffixPatternProvider; +HSPLandroid/icu/impl/number/RoundingUtils;->getMathContextOr34Digits(Landroid/icu/impl/number/DecimalFormatProperties;)Ljava/math/MathContext;+]Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/DecimalFormatProperties;]Ljava/math/RoundingMode;Ljava/math/RoundingMode; +HSPLandroid/icu/impl/number/RoundingUtils;->getMathContextOrUnlimited(Landroid/icu/impl/number/DecimalFormatProperties;)Ljava/math/MathContext;+]Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/DecimalFormatProperties;]Ljava/math/RoundingMode;Ljava/math/RoundingMode; 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/RoundingUtils;->scaleFromProperties(Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/number/Scale;+]Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/DecimalFormatProperties; 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;->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+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/icu/impl/number/parse/NumberParserImpl;Landroid/icu/impl/number/parse/NumberParserImpl;]Ljava/util/ArrayList;Ljava/util/ArrayList; 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/AffixMatcher;->smokeTest(Landroid/icu/impl/StringSegment;)Z+]Landroid/icu/impl/number/parse/AffixPatternMatcher;Landroid/icu/impl/number/parse/AffixPatternMatcher; 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 @@ -9384,12 +9386,12 @@ HSPLandroid/icu/impl/number/parse/AffixPatternMatcher;->fromAffixPattern(Ljava/l 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;-><init>(Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/impl/number/Grouper;I)V+]Landroid/icu/impl/number/Grouper;Landroid/icu/impl/number/Grouper;]Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/text/DecimalFormatSymbols; 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 +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;->smokeTest(Landroid/icu/impl/StringSegment;)Z+]Landroid/icu/impl/StringSegment;Landroid/icu/impl/StringSegment; 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; @@ -9398,14 +9400,14 @@ HSPLandroid/icu/impl/number/parse/NanMatcher;->getInstance(Landroid/icu/text/Dec 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; +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/NumberParserImpl;->parse(Ljava/lang/String;IZLandroid/icu/impl/number/parse/ParsedNumber;)V+]Landroid/icu/impl/number/parse/ParsedNumber;Landroid/icu/impl/number/parse/ParsedNumber;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/icu/impl/number/parse/NumberParseMatcher;megamorphic_types]Landroid/icu/impl/StringSegment;Landroid/icu/impl/StringSegment;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr; +HSPLandroid/icu/impl/number/parse/NumberParserImpl;->parseGreedy(Landroid/icu/impl/StringSegment;Landroid/icu/impl/number/parse/ParsedNumber;)V+]Ljava/util/List;Ljava/util/ArrayList;]Landroid/icu/impl/number/parse/NumberParseMatcher;megamorphic_types]Landroid/icu/impl/StringSegment;Landroid/icu/impl/StringSegment; +HSPLandroid/icu/impl/number/parse/ParsedNumber;-><init>()V+]Landroid/icu/impl/number/parse/ParsedNumber;Landroid/icu/impl/number/parse/ParsedNumber; 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;->getNumber(I)Ljava/lang/Number;+]Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD; 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 @@ -9414,7 +9416,7 @@ 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;-><init>(Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/impl/number/Grouper;)V+]Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/text/DecimalFormatSymbols;]Landroid/icu/text/UnicodeSet;Landroid/icu/text/UnicodeSet; 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; @@ -9423,9 +9425,9 @@ HSPLandroid/icu/impl/number/parse/ScientificMatcher;->smokeTest(Landroid/icu/imp 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/SeriesMatcher;->smokeTest(Landroid/icu/impl/StringSegment;)Z+]Ljava/util/List;Ljava/util/ArrayList;]Landroid/icu/impl/number/parse/NumberParseMatcher;Landroid/icu/impl/number/parse/MinusSignMatcher; 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/SymbolMatcher;->smokeTest(Landroid/icu/impl/StringSegment;)Z+]Landroid/icu/impl/StringSegment;Landroid/icu/impl/StringSegment; 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 @@ -9441,11 +9443,11 @@ HSPLandroid/icu/impl/number/range/StandardPluralRanges;->getPluralRangesData(Lja 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;->digit(I)I+]Landroid/icu/impl/UCharacterProperty;Landroid/icu/impl/UCharacterProperty; +HSPLandroid/icu/lang/UCharacter;->foldCase(II)I+]Landroid/icu/impl/UCaseProps;Landroid/icu/impl/UCaseProps; 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;->getType(I)I+]Landroid/icu/impl/UCharacterProperty;Landroid/icu/impl/UCharacterProperty; HSPLandroid/icu/lang/UCharacter;->isDigit(I)Z HSPLandroid/icu/lang/UCharacter;->isLowerCase(I)Z HSPLandroid/icu/lang/UScript$ScriptMetadata;->getScriptProps(I)I @@ -9458,7 +9460,7 @@ 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 +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; @@ -9474,27 +9476,27 @@ HSPLandroid/icu/number/NumberFormatterImpl;->formatStatic(Landroid/icu/impl/numb 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; +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;]Landroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;Landroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier; HSPLandroid/icu/number/NumberFormatterImpl;->preProcess(Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/number/MicroProps; -HSPLandroid/icu/number/NumberFormatterImpl;->preProcessUnsafe(Landroid/icu/impl/number/MacroProps;Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/number/MicroProps; +HSPLandroid/icu/number/NumberFormatterImpl;->preProcessUnsafe(Landroid/icu/impl/number/MacroProps;Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/number/MicroProps;+]Landroid/icu/impl/number/MicroPropsGenerator;Landroid/icu/impl/number/MutablePatternModifier;]Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD; 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 -HSPLandroid/icu/number/NumberFormatterImpl;->writeFractionDigits(Landroid/icu/impl/number/MicroProps;Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/FormattedStringBuilder;I)I -HSPLandroid/icu/number/NumberFormatterImpl;->writeIntegerDigits(Landroid/icu/impl/number/MicroProps;Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/FormattedStringBuilder;I)I -HSPLandroid/icu/number/NumberFormatterImpl;->writeNumber(Landroid/icu/impl/number/MicroProps;Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/FormattedStringBuilder;I)I +HSPLandroid/icu/number/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/MutablePatternModifier;,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/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;->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/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/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;->macros(Landroid/icu/impl/number/MacroProps;)Landroid/icu/number/NumberFormatterSettings;+]Landroid/icu/number/NumberFormatterSettings;Landroid/icu/number/UnlocalizedNumberFormatter; 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;->resolve()Landroid/icu/impl/number/MacroProps;+]Landroid/icu/impl/number/MacroProps;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; +HSPLandroid/icu/number/NumberPropertyMapper;->create(Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/number/UnlocalizedNumberFormatter;+]Landroid/icu/number/UnlocalizedNumberFormatter;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 +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 @@ -9507,12 +9509,12 @@ 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 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/Precision;->withMode(Ljava/math/MathContext;)Landroid/icu/number/Precision;+]Ljava/math/MathContext;Ljava/math/MathContext; 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/NumberFormatterSettings;+]Landroid/icu/number/UnlocalizedNumberFormatter;Landroid/icu/number/UnlocalizedNumberFormatter; 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; @@ -9524,20 +9526,20 @@ 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;->getCustomizedClass(I)I+]Landroid/icu/impl/UBiDiProps;Landroid/icu/impl/UBiDiProps; +HSPLandroid/icu/text/Bidi;->getDirProps()V+]Landroid/icu/text/Bidi;Landroid/icu/text/Bidi; 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;->resolveExplicitLevels()B+]Landroid/icu/text/Bidi;Landroid/icu/text/Bidi; +HSPLandroid/icu/text/Bidi;->setPara([CB[B)V+]Landroid/icu/text/Bidi;Landroid/icu/text/Bidi; 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;->createBreakInstance()Landroid/icu/text/BreakIterator;+]Landroid/icu/text/BreakIterator;Landroid/icu/text/RuleBasedBreakIterator; 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;->getBreakInstance(Landroid/icu/util/ULocale;I)Landroid/icu/text/BreakIterator;+]Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;]Landroid/icu/impl/CacheValue;Landroid/icu/impl/CacheValue$StrongValue;]Landroid/icu/text/BreakIterator$BreakIteratorCache;Landroid/icu/text/BreakIterator$BreakIteratorCache; 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; @@ -9568,11 +9570,11 @@ HSPLandroid/icu/text/ConstrainedFieldPosition;->getField()Ljava/text/Format$Fiel 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 +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/CurrencyDisplayNames;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/CurrencyDisplayNames;+]Landroid/icu/impl/CurrencyData$CurrencyDisplayInfoProvider;Landroid/icu/impl/ICUCurrencyDisplayInfoProvider; 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; @@ -9594,7 +9596,7 @@ HSPLandroid/icu/text/DateFormat;->getInstanceForSkeleton(Ljava/lang/String;Ljava 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;->setContext(Landroid/icu/text/DisplayContext;)V+]Landroid/icu/text/DisplayContext;Landroid/icu/text/DisplayContext; 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; @@ -9609,7 +9611,7 @@ HSPLandroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->values()[Lan 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;Landroid/icu/util/ULocale;)V+]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/text/DateFormatSymbols;Landroid/icu/text/DateFormatSymbols;]Ljava/lang/Class;Ljava/lang/Class; 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; @@ -9628,7 +9630,7 @@ HSPLandroid/icu/text/DateIntervalFormat;-><init>(Ljava/lang/String;Landroid/icu/ 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;->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;+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar;]Landroid/icu/text/SimpleDateFormat;Landroid/icu/text/SimpleDateFormat; 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; @@ -9665,7 +9667,7 @@ HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->compareTo(Ljava/ 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;->getDistance(Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;ILandroid/icu/text/DateTimePatternGenerator$DistanceInfo;)I+]Landroid/icu/text/DateTimePatternGenerator$DistanceInfo;Landroid/icu/text/DateTimePatternGenerator$DistanceInfo; 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; HSPLandroid/icu/text/DateTimePatternGenerator$DisplayWidth;->cldrKey()Ljava/lang/String; @@ -9693,6 +9695,7 @@ HSPLandroid/icu/text/DateTimePatternGenerator$SkeletonFields;->getFieldLength(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;->toCanonicalString(Z)Ljava/lang/String; 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 @@ -9744,12 +9747,12 @@ HSPLandroid/icu/text/DateTimePatternGenerator;->setDateTimeFromCalendar(Landroid 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;)V+]Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/text/DecimalFormatSymbols;]Landroid/icu/text/DecimalFormat;Landroid/icu/text/DecimalFormat; 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 +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; -HSPLandroid/icu/text/DecimalFormat;->format(JLjava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer; +HSPLandroid/icu/text/DecimalFormat;->format(JLjava/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;->getDecimalFormatSymbols()Landroid/icu/text/DecimalFormatSymbols; HSPLandroid/icu/text/DecimalFormat;->getMaximumFractionDigits()I HSPLandroid/icu/text/DecimalFormat;->getMaximumIntegerDigits()I @@ -9761,21 +9764,21 @@ HSPLandroid/icu/text/DecimalFormat;->getParser()Landroid/icu/impl/number/parse/N 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 +HSPLandroid/icu/text/DecimalFormat;->isParseIntegerOnly()Z+]Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/DecimalFormatProperties; +HSPLandroid/icu/text/DecimalFormat;->parse(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/lang/Number;+]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/impl/number/parse/ParsedNumber;Landroid/icu/impl/number/parse/ParsedNumber;]Ljava/text/ParsePosition;Ljava/text/ParsePosition;]Landroid/icu/impl/number/parse/NumberParserImpl;Landroid/icu/impl/number/parse/NumberParserImpl;]Landroid/icu/text/DecimalFormat;Landroid/icu/text/DecimalFormat; +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;->setMaximumIntegerDigits(I)V+]Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/DecimalFormatProperties;]Landroid/icu/text/DecimalFormat;Landroid/icu/text/DecimalFormat; HSPLandroid/icu/text/DecimalFormat;->setMinimumFractionDigits(I)V -HSPLandroid/icu/text/DecimalFormat;->setMinimumIntegerDigits(I)V +HSPLandroid/icu/text/DecimalFormat;->setMinimumIntegerDigits(I)V+]Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/DecimalFormatProperties;]Landroid/icu/text/DecimalFormat;Landroid/icu/text/DecimalFormat; 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/DecimalFormat;->toPattern()Ljava/lang/String;+]Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/DecimalFormatProperties; 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 @@ -9817,7 +9820,7 @@ HSPLandroid/icu/text/DecimalFormatSymbols;->getPlusSignString()Ljava/lang/String HSPLandroid/icu/text/DecimalFormatSymbols;->getULocale()Landroid/icu/util/ULocale; HSPLandroid/icu/text/DecimalFormatSymbols;->getZeroDigit()C HSPLandroid/icu/text/DecimalFormatSymbols;->initSpacingInfo(Landroid/icu/impl/CurrencyData$CurrencySpacingInfo;)V -HSPLandroid/icu/text/DecimalFormatSymbols;->initialize(Landroid/icu/util/ULocale;Landroid/icu/text/NumberingSystem;)V +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 @@ -9826,7 +9829,7 @@ HSPLandroid/icu/text/DecimalFormatSymbols;->setCurrencySymbol(Ljava/lang/String; 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;->setDigitStrings([Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String; 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 @@ -9849,7 +9852,7 @@ 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/DecimalFormatSymbols;->setZeroDigit(C)V+][C[C][Ljava/lang/String;[Ljava/lang/String; HSPLandroid/icu/text/DisplayContext;->type()Landroid/icu/text/DisplayContext$Type; HSPLandroid/icu/text/Edits$Iterator;->next(Z)Z HSPLandroid/icu/text/Edits;-><init>()V @@ -9867,7 +9870,7 @@ HSPLandroid/icu/text/Normalizer$NFKDMode;->getNormalizer2(I)Landroid/icu/text/No 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/Normalizer2;->normalize(Ljava/lang/CharSequence;)Ljava/lang/String;+]Ljava/lang/CharSequence;Ljava/lang/String;]Landroid/icu/text/Normalizer2;Landroid/icu/impl/Norm2AllModes$DecomposeNormalizer2; 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; @@ -9877,7 +9880,7 @@ HSPLandroid/icu/text/NumberFormat;->getInstance(Landroid/icu/util/ULocale;I)Land 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;->getPatternForStyleAndNumberingSystem(Landroid/icu/util/ULocale;Ljava/lang/String;I)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/icu/impl/ICUResourceBundle;Landroid/icu/impl/ICUResourceBundleImpl$ResourceTable; 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; @@ -9885,7 +9888,7 @@ HSPLandroid/icu/text/NumberingSystem$1;->createInstance(Ljava/lang/Object;Ljava/ 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;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/NumberingSystem;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;]Landroid/icu/impl/CacheBase;Landroid/icu/text/NumberingSystem$1; 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 @@ -9965,15 +9968,15 @@ HSPLandroid/icu/text/RelativeDateTimeFormatter;->keyToDirection(Landroid/icu/imp 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/ReplaceableString;->length()I+]Ljava/lang/StringBuffer;Ljava/lang/StringBuffer; 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;-><init>(Landroid/icu/text/RuleBasedBreakIterator;Landroid/icu/text/RuleBasedBreakIterator$BreakCache;)V+][S[S][I[I 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;->next()V+]Landroid/icu/text/RuleBasedBreakIterator$BreakCache;Landroid/icu/text/RuleBasedBreakIterator$BreakCache; +HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->populateFollowing()Z+]Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;]Landroid/icu/text/RuleBasedBreakIterator$BreakCache;Landroid/icu/text/RuleBasedBreakIterator$BreakCache; HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->populateNear(I)Z HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->populatePreceding()Z HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->preceding(I)V @@ -9982,19 +9985,19 @@ 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;-><init>(Landroid/icu/text/RuleBasedBreakIterator;Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;)V+]Landroid/icu/impl/breakiter/DictionaryBreakEngine$DequeI;Landroid/icu/impl/breakiter/DictionaryBreakEngine$DequeI; 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;->clone()Ljava/lang/Object;+]Ljava/text/CharacterIterator;Ljava/text/StringCharacterIterator; 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;->handleNext()I+]Landroid/icu/impl/RBBIDataWrapper;Landroid/icu/impl/RBBIDataWrapper;]Landroid/icu/util/CodePointTrie;Landroid/icu/util/CodePointTrie$Fast8;]Ljava/text/CharacterIterator;Ljava/text/StringCharacterIterator; HSPLandroid/icu/text/RuleBasedBreakIterator;->handleSafePrevious(I)I HSPLandroid/icu/text/RuleBasedBreakIterator;->isBoundary(I)Z HSPLandroid/icu/text/RuleBasedBreakIterator;->next()I @@ -10013,7 +10016,7 @@ HSPLandroid/icu/text/RuleBasedCollator;->checkNotFrozen()V HSPLandroid/icu/text/RuleBasedCollator;->clone()Ljava/lang/Object; HSPLandroid/icu/text/RuleBasedCollator;->cloneAsThawed()Landroid/icu/text/RuleBasedCollator; HSPLandroid/icu/text/RuleBasedCollator;->compare(Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/icu/text/RuleBasedCollator;->doCompare(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)I +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; @@ -10033,10 +10036,10 @@ HSPLandroid/icu/text/RuleBasedCollator;->writeSortKey(Ljava/lang/CharSequence;La 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;->fastZeroPaddingNumber(Ljava/lang/StringBuffer;III)V+]Ljava/lang/StringBuffer;Ljava/lang/StringBuffer; +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;+]Ljava/lang/StringBuffer;Ljava/lang/StringBuffer;]Ljava/text/FieldPosition;Ljava/text/FieldPosition;]Landroid/icu/text/SimpleDateFormat;Landroid/icu/text/SimpleDateFormat; 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;->format(Landroid/icu/util/Calendar;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;Ljava/util/List;)Ljava/lang/StringBuffer;+]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar;]Landroid/icu/text/SimpleDateFormat;Landroid/icu/text/SimpleDateFormat; 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; @@ -10051,7 +10054,7 @@ 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;->subFormat(Ljava/lang/StringBuffer;CIIILandroid/icu/text/DisplayContext;Ljava/text/FieldPosition;CLandroid/icu/util/Calendar;)V+]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar;]Ljava/lang/StringBuffer;Ljava/lang/StringBuffer;]Ljava/text/FieldPosition;Ljava/text/FieldPosition;]Landroid/icu/text/SimpleDateFormat;Landroid/icu/text/SimpleDateFormat; 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; @@ -10062,7 +10065,7 @@ HSPLandroid/icu/text/TimeZoneNames;->getInstance(Landroid/icu/util/ULocale;)Land 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()Ljava/lang/String;+]Landroid/icu/text/UCharacterIterator;Landroid/icu/impl/ReplaceableUCharacterIterator; HSPLandroid/icu/text/UCharacterIterator;->getText([C)I HSPLandroid/icu/text/UCharacterIterator;->setToStart()V HSPLandroid/icu/text/UFormat;-><init>()V @@ -10091,7 +10094,7 @@ 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 +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 @@ -10138,19 +10141,19 @@ HSPLandroid/icu/util/Calendar$PatternData;->make(Landroid/icu/util/Calendar;Land 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;-><init>(Landroid/icu/util/TimeZone;Landroid/icu/util/ULocale;)V+]Landroid/icu/util/ULocale;Landroid/icu/util/ULocale; 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;->complete()V+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar; +HSPLandroid/icu/util/Calendar;->computeFields()V+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar;]Landroid/icu/util/TimeZone;Landroid/icu/impl/OlsonTimeZone; +HSPLandroid/icu/util/Calendar;->computeGregorianAndDOWFields(I)V+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar; HSPLandroid/icu/util/Calendar;->computeGregorianFields(I)V -HSPLandroid/icu/util/Calendar;->computeWeekFields()V +HSPLandroid/icu/util/Calendar;->computeWeekFields()V+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar; 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;->get(I)I+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar; 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; @@ -10169,7 +10172,7 @@ 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;->getRegionForCalendar(Landroid/icu/util/ULocale;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String; HSPLandroid/icu/util/Calendar;->getRepeatedWallTimeOption()I HSPLandroid/icu/util/Calendar;->getSkippedWallTimeOption()I HSPLandroid/icu/util/Calendar;->getTimeInMillis()J @@ -10177,22 +10180,22 @@ 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;->initInternal()V+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar; HSPLandroid/icu/util/Calendar;->internalSet(II)V -HSPLandroid/icu/util/Calendar;->isEquivalentTo(Landroid/icu/util/Calendar;)Z +HSPLandroid/icu/util/Calendar;->isEquivalentTo(Landroid/icu/util/Calendar;)Z+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar;]Landroid/icu/util/TimeZone;Landroid/icu/impl/OlsonTimeZone;]Ljava/lang/Object;Landroid/icu/util/GregorianCalendar; 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;->setCalendarLocale(Landroid/icu/util/ULocale;)V+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar;]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/util/ULocale;Landroid/icu/util/ULocale; 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/Calendar;->setWeekData(Landroid/icu/util/Calendar$WeekData;)Landroid/icu/util/Calendar;+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar; +HSPLandroid/icu/util/Calendar;->setWeekData(Ljava/lang/String;)V+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar;]Landroid/icu/util/Calendar$WeekDataCache;Landroid/icu/util/Calendar$WeekDataCache; +HSPLandroid/icu/util/Calendar;->weekNumber(II)I+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar; +HSPLandroid/icu/util/Calendar;->weekNumber(III)I+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar; 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; @@ -10246,10 +10249,10 @@ HSPLandroid/icu/util/Currency;->getDefaultFractionDigits(Landroid/icu/util/Curre 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;->getName(Landroid/icu/util/ULocale;I[Z)Ljava/lang/String;+]Landroid/icu/text/CurrencyDisplayNames;Landroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo; 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;->getSymbol(Landroid/icu/util/ULocale;)Ljava/lang/String;+]Landroid/icu/util/Currency;Landroid/icu/util/Currency; +HSPLandroid/icu/util/Currency;->getSymbol(Ljava/util/Locale;)Ljava/lang/String;+]Landroid/icu/util/Currency;Landroid/icu/util/Currency; 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; @@ -10260,10 +10263,10 @@ 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;-><init>(Landroid/icu/util/TimeZone;Landroid/icu/util/ULocale;)V+]Landroid/icu/util/GregorianCalendar;Landroid/icu/util/GregorianCalendar; 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;->handleComputeFields(I)V+]Landroid/icu/util/GregorianCalendar;Landroid/icu/util/GregorianCalendar; +HSPLandroid/icu/util/GregorianCalendar;->handleGetYearLength(I)I+]Landroid/icu/util/GregorianCalendar;Landroid/icu/util/GregorianCalendar; 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 @@ -10325,7 +10328,7 @@ 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;->clone()Ljava/lang/Object;+]Landroid/icu/util/SimpleTimeZone;Landroid/icu/util/SimpleTimeZone; HSPLandroid/icu/util/SimpleTimeZone;->cloneAsThawed()Landroid/icu/util/TimeZone; HSPLandroid/icu/util/SimpleTimeZone;->compareToRule(IIIIIIIIIIII)I HSPLandroid/icu/util/SimpleTimeZone;->construct(IIIIIIIIIIII)V @@ -10334,7 +10337,7 @@ 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(IIIIII)I+]Landroid/icu/util/SimpleTimeZone;Landroid/icu/util/SimpleTimeZone; HSPLandroid/icu/util/SimpleTimeZone;->getOffset(IIIIIII)I HSPLandroid/icu/util/SimpleTimeZone;->getOffset(IIIIIIII)I HSPLandroid/icu/util/SimpleTimeZone;->getRawOffset()I @@ -10344,7 +10347,7 @@ 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;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/icu/util/SimpleTimeZone;Landroid/icu/util/SimpleTimeZone; HSPLandroid/icu/util/SimpleTimeZone;->useDaylightTime()Z HSPLandroid/icu/util/TimeArrayTimeZoneRule;-><init>(Ljava/lang/String;II[JI)V HSPLandroid/icu/util/TimeArrayTimeZoneRule;->getStartTimes()[J @@ -10359,10 +10362,10 @@ 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;->getOffset(JZ[I)V+]Landroid/icu/util/TimeZone;Landroid/icu/util/SimpleTimeZone; 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;->getTimeZone(Ljava/lang/String;IZ)Landroid/icu/util/TimeZone;+]Landroid/icu/util/TimeZone;Landroid/icu/impl/OlsonTimeZone; +HSPLandroid/icu/util/TimeZone;->hashCode()I+]Ljava/lang/String;Ljava/lang/String; 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 @@ -10399,37 +10402,37 @@ 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; +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;->equals(Ljava/lang/Object;)Z+]Ljava/lang/String;Ljava/lang/String; +HSPLandroid/icu/util/ULocale;->forLocale(Ljava/util/Locale;)Landroid/icu/util/ULocale;+]Landroid/icu/impl/SoftCache;Landroid/icu/util/ULocale$2; 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;->getBaseName(Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String; +HSPLandroid/icu/util/ULocale;->getCountry()Ljava/lang/String;+]Landroid/icu/impl/locale/BaseLocale;Landroid/icu/impl/locale/BaseLocale; +HSPLandroid/icu/util/ULocale;->getDefault()Landroid/icu/util/ULocale;+]Ljava/util/Locale;Ljava/util/Locale; 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;->getKeywordValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;+]Landroid/icu/impl/LocaleIDParser;Landroid/icu/impl/LocaleIDParser; 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;->getKeywords(Ljava/lang/String;)Ljava/util/Iterator;+]Landroid/icu/impl/LocaleIDParser;Landroid/icu/impl/LocaleIDParser; +HSPLandroid/icu/util/ULocale;->getLanguage()Ljava/lang/String;+]Landroid/icu/impl/locale/BaseLocale;Landroid/icu/impl/locale/BaseLocale; HSPLandroid/icu/util/ULocale;->getName()Ljava/lang/String; HSPLandroid/icu/util/ULocale;->getName(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/util/ULocale;->getRegionForSupplementalData(Landroid/icu/util/ULocale;Z)Ljava/lang/String; -HSPLandroid/icu/util/ULocale;->getScript()Ljava/lang/String; +HSPLandroid/icu/util/ULocale;->getRegionForSupplementalData(Landroid/icu/util/ULocale;Z)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/util/ULocale;Landroid/icu/util/ULocale; +HSPLandroid/icu/util/ULocale;->getScript()Ljava/lang/String;+]Landroid/icu/impl/locale/BaseLocale;Landroid/icu/impl/locale/BaseLocale; 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;->getShortestSubtagLength(Ljava/lang/String;)I+]Ljava/lang/String;Ljava/lang/String; +HSPLandroid/icu/util/ULocale;->getVariant()Ljava/lang/String;+]Landroid/icu/impl/locale/BaseLocale;Landroid/icu/impl/locale/BaseLocale; 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;->isRightToLeft()Z+]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/util/ULocale;Landroid/icu/util/ULocale; 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 @@ -10442,15 +10445,15 @@ 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;Landroid/icu/util/ULocale;)Landroid/icu/util/UResourceBundle;+]Landroid/icu/util/ULocale;Landroid/icu/util/ULocale; 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;->getRootType(Ljava/lang/String;Ljava/lang/ClassLoader;)Landroid/icu/util/UResourceBundle$RootType;+]Ljava/util/Map;Ljava/util/concurrent/ConcurrentHashMap; 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;->instantiateBundle(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Z)Landroid/icu/util/UResourceBundle;+]Landroid/icu/util/UResourceBundle$RootType;Landroid/icu/util/UResourceBundle$RootType; 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 @@ -10464,7 +10467,7 @@ HSPLandroid/location/ILocationManager$Stub;->asInterface(Landroid/os/IBinder;)La 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>(Landroid/location/Location;)V+]Landroid/location/Location;Landroid/location/Location; 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 @@ -10504,7 +10507,7 @@ 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/location/Location;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/location/Location;Landroid/location/Location;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/location/LocationManager;-><init>(Landroid/content/Context;Landroid/location/ILocationManager;)V HSPLandroid/location/LocationManager;->isLocationEnabledForUser(Landroid/os/UserHandle;)Z HSPLandroid/media/AudioAttributes$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/AudioAttributes; @@ -10534,7 +10537,7 @@ HSPLandroid/media/AudioAttributes;->-$$Nest$fputmTags(Landroid/media/AudioAttrib 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 +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 @@ -10544,16 +10547,16 @@ 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/AudioAttributes;->writeToParcel(Landroid/os/Parcel;I)V+]Ljava/util/HashSet;Ljava/util/HashSet;]Landroid/os/Parcel;Landroid/os/Parcel; 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;->convertInternalDeviceToDeviceType(I)I+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray; +HSPLandroid/media/AudioDeviceInfo;->getId()I+]Landroid/media/AudioHandle;Landroid/media/AudioHandle;]Landroid/media/AudioDevicePort;Landroid/media/AudioDevicePort; 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;->buildConfig(IIILandroid/media/AudioGainConfig;)Landroid/media/AudioPortConfig;+]Landroid/media/AudioDevicePort;Landroid/media/AudioDevicePort; HSPLandroid/media/AudioDevicePort;->type()I HSPLandroid/media/AudioDevicePortConfig;-><init>(Landroid/media/AudioDevicePort;IIILandroid/media/AudioGainConfig;)V HSPLandroid/media/AudioFocusRequest$Builder;-><init>(I)V @@ -10578,7 +10581,7 @@ 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;->equals(Ljava/lang/Object;)Z+]Landroid/media/AudioHandle;Landroid/media/AudioHandle; HSPLandroid/media/AudioHandle;->id()I HSPLandroid/media/AudioManager$1;-><init>(Landroid/media/AudioManager;)V HSPLandroid/media/AudioManager$2;-><init>(Landroid/media/AudioManager;)V @@ -10607,13 +10610,13 @@ HSPLandroid/media/AudioManager;->abandonAudioFocus(Landroid/media/AudioManager$O 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;->checkFlags(Landroid/media/AudioDevicePort;I)Z+]Landroid/media/AudioDevicePort;Landroid/media/AudioDevicePort; +HSPLandroid/media/AudioManager;->checkTypes(Landroid/media/AudioDevicePort;)Z+]Landroid/media/AudioDevicePort;Landroid/media/AudioDevicePort; +HSPLandroid/media/AudioManager;->filterDevicePorts(Ljava/util/ArrayList;Ljava/util/ArrayList;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList; 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;->getDeviceForPortId(II)Landroid/media/AudioDeviceInfo;+]Landroid/media/AudioDeviceInfo;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; @@ -10629,7 +10632,7 @@ 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;->infoListFromPortList(Ljava/util/ArrayList;I)[Landroid/media/AudioDeviceInfo;+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr; HSPLandroid/media/AudioManager;->isBluetoothA2dpOn()Z HSPLandroid/media/AudioManager;->isBluetoothScoOn()Z HSPLandroid/media/AudioManager;->isInputDevice(I)Z @@ -10656,12 +10659,12 @@ 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/AudioManager;->updateAudioPortCache(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;)I+]Landroid/media/AudioPatch;Landroid/media/AudioPatch;]Landroid/media/AudioPortEventHandler;Landroid/media/AudioPortEventHandler;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr; +HSPLandroid/media/AudioManager;->updatePortConfig(Landroid/media/AudioPortConfig;Ljava/util/ArrayList;)Landroid/media/AudioPortConfig;+]Landroid/media/AudioPortConfig;Landroid/media/AudioPortConfig;]Landroid/media/AudioHandle;Landroid/media/AudioHandle;]Landroid/media/AudioPort;Landroid/media/AudioMixPort;,Landroid/media/AudioDevicePort;,Landroid/media/AudioPort;]Ljava/util/ArrayList;Ljava/util/ArrayList; 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/AudioMixPort;->buildConfig(IIILandroid/media/AudioGainConfig;)Landroid/media/AudioPortConfig;+]Landroid/media/AudioMixPort;Landroid/media/AudioMixPort; 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; @@ -10669,7 +10672,7 @@ 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$$ExternalSyntheticLambda0;->applyAsInt(Ljava/lang/Object;)I+]Ljava/lang/Number;Ljava/lang/Integer; 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; @@ -10682,10 +10685,10 @@ 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$1;->handleMessage(Landroid/os/Message;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList; 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;->postEventFromNative(Ljava/lang/Object;IIILjava/lang/Object;)V+]Landroid/os/Handler;Landroid/media/AudioPortEventHandler$1;]Landroid/media/AudioPortEventHandler;Landroid/media/AudioPortEventHandler;]Ljava/lang/ref/WeakReference;Ljava/lang/ref/WeakReference; HSPLandroid/media/AudioPortEventHandler;->registerListener(Landroid/media/AudioManager$OnAudioPortUpdateListener;)V HSPLandroid/media/AudioProfile;-><init>(I[I[I[II)V HSPLandroid/media/AudioProfile;->getChannelIndexMasks()[I @@ -11401,8 +11404,8 @@ 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; -HSPLandroid/net/Uri$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; +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 @@ -11419,22 +11422,22 @@ 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;->appendEncodedPath(Ljava/lang/String;)Landroid/net/Uri$Builder;+]Landroid/net/Uri$Builder;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;->appendQueryParameter(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri$Builder;+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/net/Uri$Part;Landroid/net/Uri$Part$EmptyPart;,Landroid/net/Uri$Part; 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;->authority(Ljava/lang/String;)Landroid/net/Uri$Builder;+]Landroid/net/Uri$Builder;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;->encodedFragment(Ljava/lang/String;)Landroid/net/Uri$Builder;+]Landroid/net/Uri$Builder;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;->path(Ljava/lang/String;)Landroid/net/Uri$Builder;+]Landroid/net/Uri$Builder;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; @@ -11442,22 +11445,22 @@ HSPLandroid/net/Uri$HierarchicalUri;-><init>(Ljava/lang/String;Landroid/net/Uri$ HSPLandroid/net/Uri$HierarchicalUri;->appendSspTo(Ljava/lang/StringBuilder;)V HSPLandroid/net/Uri$HierarchicalUri;->buildUpon()Landroid/net/Uri$Builder; HSPLandroid/net/Uri$HierarchicalUri;->generatePath(Landroid/net/Uri$PathPart;)Landroid/net/Uri$PathPart;+]Landroid/net/Uri$Part;Landroid/net/Uri$Part$EmptyPart;,Landroid/net/Uri$Part; -HSPLandroid/net/Uri$HierarchicalUri;->getAuthority()Ljava/lang/String; +HSPLandroid/net/Uri$HierarchicalUri;->getAuthority()Ljava/lang/String;+]Landroid/net/Uri$Part;Landroid/net/Uri$Part$EmptyPart;,Landroid/net/Uri$Part; HSPLandroid/net/Uri$HierarchicalUri;->getEncodedAuthority()Ljava/lang/String; -HSPLandroid/net/Uri$HierarchicalUri;->getEncodedFragment()Ljava/lang/String; +HSPLandroid/net/Uri$HierarchicalUri;->getEncodedFragment()Ljava/lang/String;+]Landroid/net/Uri$Part;Landroid/net/Uri$Part$EmptyPart; 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;->getPath()Ljava/lang/String;+]Landroid/net/Uri$PathPart;Landroid/net/Uri$PathPart; +HSPLandroid/net/Uri$HierarchicalUri;->getPathSegments()Ljava/util/List;+]Landroid/net/Uri$PathPart;Landroid/net/Uri$PathPart; +HSPLandroid/net/Uri$HierarchicalUri;->getQuery()Ljava/lang/String;+]Landroid/net/Uri$Part;Landroid/net/Uri$Part$EmptyPart; 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; -HSPLandroid/net/Uri$HierarchicalUri;->readFrom(Landroid/os/Parcel;)Landroid/net/Uri; +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;+]Ljava/lang/String;Ljava/lang/String;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/net/Uri$HierarchicalUri;->toString()Ljava/lang/String; -HSPLandroid/net/Uri$HierarchicalUri;->writeToParcel(Landroid/os/Parcel;I)V +HSPLandroid/net/Uri$HierarchicalUri;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/net/Uri$Part;Landroid/net/Uri$Part$EmptyPart;,Landroid/net/Uri$Part;]Landroid/net/Uri$PathPart;Landroid/net/Uri$PathPart;]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -11467,7 +11470,7 @@ 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;->from(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri$Part;+]Ljava/lang/String;Ljava/lang/String; 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; @@ -11475,24 +11478,24 @@ 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; -HSPLandroid/net/Uri$PathPart;->from(Ljava/lang/String;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/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/String;Ljava/lang/String;]Landroid/net/Uri$PathPart;Landroid/net/Uri$PathPart; +HSPLandroid/net/Uri$PathPart;->from(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri$PathPart;+]Ljava/lang/String;Ljava/lang/String; 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; -HSPLandroid/net/Uri$PathPart;->makeAbsolute(Landroid/net/Uri$PathPart;)Landroid/net/Uri$PathPart; +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;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; 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/Object;+]Landroid/net/Uri$PathSegments;Landroid/net/Uri$PathSegments; 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; -HSPLandroid/net/Uri$StringUri;->findFragmentSeparator()I -HSPLandroid/net/Uri$StringUri;->findSchemeSeparator()I +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; @@ -11508,16 +11511,16 @@ 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;->isHierarchical()Z+]Ljava/lang/String;Ljava/lang/String; HSPLandroid/net/Uri$StringUri;->isRelative()Z -HSPLandroid/net/Uri$StringUri;->parseAuthority(Ljava/lang/String;I)Ljava/lang/String; +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; -HSPLandroid/net/Uri$StringUri;->parsePath(Ljava/lang/String;I)Ljava/lang/String; -HSPLandroid/net/Uri$StringUri;->parseQuery()Ljava/lang/String; -HSPLandroid/net/Uri$StringUri;->parseScheme()Ljava/lang/String; +HSPLandroid/net/Uri$StringUri;->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;+]Ljava/lang/String;Ljava/lang/String; HSPLandroid/net/Uri$StringUri;->toString()Ljava/lang/String; -HSPLandroid/net/Uri$StringUri;->writeToParcel(Landroid/os/Parcel;I)V +HSPLandroid/net/Uri$StringUri;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/net/Uri;-><init>()V HSPLandroid/net/Uri;-><init>(Landroid/net/Uri-IA;)V HSPLandroid/net/Uri;->checkContentUriWithoutPermission(Ljava/lang/String;I)V @@ -11526,26 +11529,26 @@ 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; -HSPLandroid/net/Uri;->equals(Ljava/lang/Object;)Z +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+]Ljava/lang/String;Ljava/lang/String;]Landroid/net/Uri;Landroid/net/Uri$StringUri; 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; +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; -HSPLandroid/net/Uri;->hashCode()I +HSPLandroid/net/Uri;->hashCode()I+]Ljava/lang/String;Ljava/lang/String;]Landroid/net/Uri;Landroid/net/Uri$StringUri; HSPLandroid/net/Uri;->isAbsolute()Z -HSPLandroid/net/Uri;->isAllowed(CLjava/lang/String;)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;->toSafeString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/String;Ljava/lang/String;]Landroid/net/Uri;Landroid/net/Uri$OpaqueUri;,Landroid/net/Uri$HierarchicalUri; HSPLandroid/net/Uri;->withAppendedPath(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri; HSPLandroid/net/Uri;->writeToParcel(Landroid/os/Parcel;Landroid/net/Uri;)V -HSPLandroid/net/UriCodec;->appendDecoded(Ljava/lang/StringBuilder;Ljava/lang/String;ZLjava/nio/charset/Charset;Z)V -HSPLandroid/net/UriCodec;->decode(Ljava/lang/String;ZLjava/nio/charset/Charset;Z)Ljava/lang/String; -HSPLandroid/net/UriCodec;->flushDecodingByteAccumulator(Ljava/lang/StringBuilder;Ljava/nio/charset/CharsetDecoder;Ljava/nio/ByteBuffer;Z)V -HSPLandroid/net/UriCodec;->getNextCharacter(Ljava/lang/String;IILjava/lang/String;)C +HSPLandroid/net/UriCodec;->appendDecoded(Ljava/lang/StringBuilder;Ljava/lang/String;ZLjava/nio/charset/Charset;Z)V+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]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;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/String;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+]Ljava/lang/String;Ljava/lang/String; HSPLandroid/net/UriCodec;->hexCharToValue(C)I HSPLandroid/net/WebAddress;-><init>(Ljava/lang/String;)V HSPLandroid/net/WebAddress;->toString()Ljava/lang/String; @@ -11628,53 +11631,53 @@ 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 +HSPLandroid/os/BaseBundle;-><init>(Landroid/os/BaseBundle;Z)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/Parcel;Landroid/os/Parcel;]Landroid/os/BaseBundle;Landroid/os/Bundle; HSPLandroid/os/BaseBundle;-><init>(Landroid/os/Parcel;I)V -HSPLandroid/os/BaseBundle;-><init>(Ljava/lang/ClassLoader;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;->containsKey(Ljava/lang/String;)Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/BaseBundle;Landroid/os/Bundle; HSPLandroid/os/BaseBundle;->deepCopyValue(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/os/BaseBundle;->get(Ljava/lang/String;)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;->getBoolean(Ljava/lang/String;)Z+]Landroid/os/BaseBundle;Landroid/os/PersistableBundle;,Landroid/os/Bundle; +HSPLandroid/os/BaseBundle;->getBoolean(Ljava/lang/String;Z)Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/Boolean;Ljava/lang/Boolean;]Landroid/os/BaseBundle;Landroid/os/Bundle; 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 +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 +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;->getLong(Ljava/lang/String;J)J+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/Long;Ljava/lang/Long;]Landroid/os/BaseBundle;Landroid/os/Bundle; +HSPLandroid/os/BaseBundle;->getLongArray(Ljava/lang/String;)[J+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/BaseBundle;Landroid/os/Bundle; 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;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/BaseBundle;Landroid/os/PersistableBundle;,Landroid/os/Bundle; HSPLandroid/os/BaseBundle;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/os/BaseBundle;->getStringArray(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; -HSPLandroid/os/BaseBundle;->getValue(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object; -HSPLandroid/os/BaseBundle;->getValue(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/Object; -HSPLandroid/os/BaseBundle;->getValueAt(ILjava/lang/Class;[Ljava/lang/Class;)Ljava/lang/Object; -HSPLandroid/os/BaseBundle;->initializeFromParcelLocked(Landroid/os/Parcel;ZZ)V -HSPLandroid/os/BaseBundle;->isEmpty()Z +HSPLandroid/os/BaseBundle;->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/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; +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;->putBoolean(Ljava/lang/String;Z)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/BaseBundle;Landroid/os/PersistableBundle;,Landroid/os/Bundle; 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;->putCharSequence(Ljava/lang/String;Ljava/lang/CharSequence;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/BaseBundle;Landroid/os/Bundle; HSPLandroid/os/BaseBundle;->putCharSequenceArray(Ljava/lang/String;[Ljava/lang/CharSequence;)V -HSPLandroid/os/BaseBundle;->putDouble(Ljava/lang/String;D)V +HSPLandroid/os/BaseBundle;->putDouble(Ljava/lang/String;D)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/BaseBundle;Landroid/os/Bundle; HSPLandroid/os/BaseBundle;->putFloat(Ljava/lang/String;F)V HSPLandroid/os/BaseBundle;->putInt(Ljava/lang/String;I)V HSPLandroid/os/BaseBundle;->putIntArray(Ljava/lang/String;[I)V @@ -11685,16 +11688,16 @@ HSPLandroid/os/BaseBundle;->putString(Ljava/lang/String;Ljava/lang/String;)V HSPLandroid/os/BaseBundle;->putStringArray(Ljava/lang/String;[Ljava/lang/String;)V HSPLandroid/os/BaseBundle;->putStringArrayList(Ljava/lang/String;Ljava/util/ArrayList;)V HSPLandroid/os/BaseBundle;->readFromParcelInner(Landroid/os/Parcel;)V -HSPLandroid/os/BaseBundle;->readFromParcelInner(Landroid/os/Parcel;I)V -HSPLandroid/os/BaseBundle;->recycleParcel(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 -HSPLandroid/os/BaseBundle;->unparcel()V+]Landroid/os/BaseBundle;Landroid/os/Bundle; +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; -HSPLandroid/os/BaseBundle;->writeToParcelInner(Landroid/os/Parcel;I)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 @@ -11731,7 +11734,7 @@ HSPLandroid/os/Binder$PropagateWorkSourceTransactListener;->onTransactEnded(Ljav HSPLandroid/os/Binder$PropagateWorkSourceTransactListener;->onTransactStarted(Landroid/os/IBinder;I)Ljava/lang/Object; HSPLandroid/os/Binder$ProxyTransactListener;->onTransactStarted(Landroid/os/IBinder;II)Ljava/lang/Object;+]Landroid/os/Binder$ProxyTransactListener;Landroid/os/Binder$PropagateWorkSourceTransactListener; HSPLandroid/os/Binder;-><init>()V -HSPLandroid/os/Binder;-><init>(Ljava/lang/String;)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 @@ -11739,14 +11742,14 @@ HSPLandroid/os/Binder;->copyAllowBlocking(Landroid/os/IBinder;Landroid/os/IBinde HSPLandroid/os/Binder;->defaultBlocking(Landroid/os/IBinder;)Landroid/os/IBinder; HSPLandroid/os/Binder;->doDump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V HSPLandroid/os/Binder;->dump(Ljava/io/FileDescriptor;[Ljava/lang/String;)V -HSPLandroid/os/Binder;->execTransact(IJJI)Z -HSPLandroid/os/Binder;->execTransactInternal(ILandroid/os/Parcel;Landroid/os/Parcel;II)Z +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;megamorphic_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; +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;->isProxy(Landroid/os/IInterface;)Z HSPLandroid/os/Binder;->isStackTrackingEnabled()Z @@ -11759,15 +11762,15 @@ HSPLandroid/os/Binder;->setProxyTransactListener(Landroid/os/Binder$ProxyTransac 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;->get(J)Landroid/os/BinderProxy;+]Ljava/lang/Long;Ljava/lang/Long;]Ljava/lang/ref/WeakReference;Ljava/lang/ref/WeakReference;]Ljava/util/ArrayList;Ljava/util/ArrayList; 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$ProxyMap;->set(JLandroid/os/BinderProxy;)V+]Ljava/lang/ref/WeakReference;Ljava/lang/ref/WeakReference;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HSPLandroid/os/BinderProxy;-><init>(J)V -HSPLandroid/os/BinderProxy;->getInstance(JJ)Landroid/os/BinderProxy; +HSPLandroid/os/BinderProxy;->getInstance(JJ)Landroid/os/BinderProxy;+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry;]Landroid/os/BinderProxy$ProxyMap;Landroid/os/BinderProxy$ProxyMap; 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 +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/BluetoothServiceManager$ServiceRegisterer;-><init>(Ljava/lang/String;)V HSPLandroid/os/BluetoothServiceManager$ServiceRegisterer;->get()Landroid/os/IBinder; HSPLandroid/os/BluetoothServiceManager;-><init>()V @@ -11793,7 +11796,7 @@ 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;->getBundle(Ljava/lang/String;)Landroid/os/Bundle;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/Bundle;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 @@ -11808,8 +11811,8 @@ HSPLandroid/os/Bundle;->getSerializable(Ljava/lang/String;Ljava/lang/Class;)Ljav HSPLandroid/os/Bundle;->getSparseParcelableArray(Ljava/lang/String;)Landroid/util/SparseArray; HSPLandroid/os/Bundle;->getStringArrayList(Ljava/lang/String;)Ljava/util/ArrayList; HSPLandroid/os/Bundle;->hasFileDescriptors()Z -HSPLandroid/os/Bundle;->maybePrefillHasFds()V -HSPLandroid/os/Bundle;->putAll(Landroid/os/Bundle;)V +HSPLandroid/os/Bundle;->maybePrefillHasFds()V+]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/os/Bundle;->putAll(Landroid/os/Bundle;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/Bundle;Landroid/os/Bundle; 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 @@ -11817,9 +11820,9 @@ HSPLandroid/os/Bundle;->putCharSequence(Ljava/lang/String;Ljava/lang/CharSequenc 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;->putParcelable(Ljava/lang/String;Landroid/os/Parcelable;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/Bundle;Landroid/os/Bundle; 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;->putParcelableArrayList(Ljava/lang/String;Ljava/util/ArrayList;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/Bundle;Landroid/os/Bundle; 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 @@ -11831,7 +11834,7 @@ HSPLandroid/os/Bundle;->setClassLoader(Ljava/lang/ClassLoader;)V HSPLandroid/os/Bundle;->setDefusable(Landroid/os/Bundle;Z)Landroid/os/Bundle; HSPLandroid/os/Bundle;->setDefusable(Z)V HSPLandroid/os/Bundle;->toString()Ljava/lang/String; -HSPLandroid/os/Bundle;->writeToParcel(Landroid/os/Parcel;I)V +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 @@ -11924,8 +11927,8 @@ HSPLandroid/os/Environment$UserEnvironment;->buildExternalStorageAppCacheDirs(Lj 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$UserEnvironment;->getExternalDirs()[Ljava/io/File;+]Landroid/os/storage/StorageVolume;Landroid/os/storage/StorageVolume; +HSPLandroid/os/Environment;->buildExternalStorageAppFilesDirs(Ljava/lang/String;)[Ljava/io/File;+]Landroid/os/Environment$UserEnvironment;Landroid/os/Environment$UserEnvironment; 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; @@ -11968,7 +11971,7 @@ 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; +HSPLandroid/os/FileUtils;->buildValidExtFilename(Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/String;Ljava/lang/String; HSPLandroid/os/FileUtils;->bytesToFile(Ljava/lang/String;[B)V HSPLandroid/os/FileUtils;->closeQuietly(Ljava/lang/AutoCloseable;)V HSPLandroid/os/FileUtils;->contains(Ljava/io/File;Ljava/io/File;)Z @@ -12038,28 +12041,28 @@ 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 +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 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;J)Z+]Landroid/os/Handler;Landroid/os/Handler;,Landroid/view/ViewRootImpl$ViewRootHandler; HSPLandroid/os/Handler;->postDelayed(Ljava/lang/Runnable;Ljava/lang/Object;J)Z -HSPLandroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V +HSPLandroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V+]Landroid/os/MessageQueue;Landroid/os/MessageQueue; 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;->removeMessages(I)V+]Landroid/os/MessageQueue;Landroid/os/MessageQueue; +HSPLandroid/os/Handler;->removeMessages(ILjava/lang/Object;)V+]Landroid/os/MessageQueue;Landroid/os/MessageQueue; 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 +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;megamorphic_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/HandlerExecutor;->execute(Ljava/lang/Runnable;)V+]Landroid/os/Handler;Landroid/os/Handler; HSPLandroid/os/HandlerThread;-><init>(Ljava/lang/String;)V HSPLandroid/os/HandlerThread;-><init>(Ljava/lang/String;I)V HSPLandroid/os/HandlerThread;->getLooper()Landroid/os/Looper; @@ -12085,7 +12088,7 @@ HSPLandroid/os/IBatteryPropertiesRegistrar$Stub$Proxy;-><init>(Landroid/os/IBind HSPLandroid/os/IBatteryPropertiesRegistrar$Stub$Proxy;->asBinder()Landroid/os/IBinder; HSPLandroid/os/IBatteryPropertiesRegistrar$Stub$Proxy;->getProperty(ILandroid/os/BatteryProperty;)I HSPLandroid/os/IBatteryPropertiesRegistrar$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IBatteryPropertiesRegistrar; -HSPLandroid/os/IBinder$DeathRecipient;->binderDied(Landroid/os/IBinder;)V +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; @@ -12125,7 +12128,7 @@ 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$Proxy;->updateWakeLockWorkSource(Landroid/os/IBinder;Landroid/os/WorkSource;Ljava/lang/String;)V+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/IPowerManager$Stub$Proxy;Landroid/os/IPowerManager$Stub$Proxy;]Landroid/os/Parcel;Landroid/os/Parcel; 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 @@ -12153,7 +12156,7 @@ HSPLandroid/os/IThermalStatusListener$Stub;->onTransact(ILandroid/os/Parcel;Land 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;->getApplicationRestrictionsForUser(Ljava/lang/String;I)Landroid/os/Bundle;+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/IUserManager$Stub$Proxy;Landroid/os/IUserManager$Stub$Proxy;]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -12195,15 +12198,15 @@ HSPLandroid/os/IpcDataCache;-><init>(Landroid/os/IpcDataCache$Config;Landroid/os 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;-><init>([Ljava/util/Locale;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/util/Locale;Ljava/util/Locale;]Ljava/util/HashSet;Ljava/util/HashSet;]Ljava/util/ArrayList;Ljava/util/ArrayList; 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 HSPLandroid/os/LocaleList;->findFirstMatchIndex(Ljava/util/Locale;)I -HSPLandroid/os/LocaleList;->forLanguageTags(Ljava/lang/String;)Landroid/os/LocaleList; +HSPLandroid/os/LocaleList;->forLanguageTags(Ljava/lang/String;)Landroid/os/LocaleList;+]Ljava/lang/String;Ljava/lang/String; HSPLandroid/os/LocaleList;->get(I)Ljava/util/Locale; HSPLandroid/os/LocaleList;->getAdjustedDefault()Landroid/os/LocaleList; -HSPLandroid/os/LocaleList;->getDefault()Landroid/os/LocaleList; +HSPLandroid/os/LocaleList;->getDefault()Landroid/os/LocaleList;+]Ljava/util/Locale;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; @@ -12223,9 +12226,9 @@ HSPLandroid/os/Looper;->getMainLooper()Landroid/os/Looper; HSPLandroid/os/Looper;->getQueue()Landroid/os/MessageQueue; HSPLandroid/os/Looper;->getThread()Ljava/lang/Thread; HSPLandroid/os/Looper;->isCurrentThread()Z -HSPLandroid/os/Looper;->loop()V -HSPLandroid/os/Looper;->loopOnce(Landroid/os/Looper;JI)Z+]Landroid/os/Handler;missing_types]Landroid/os/Message;Landroid/os/Message;]Landroid/os/MessageQueue;Landroid/os/MessageQueue; -HSPLandroid/os/Looper;->myLooper()Landroid/os/Looper; +HSPLandroid/os/Looper;->loop()V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/Thread;Landroid/os/HandlerThread;,Landroid/net/ConnectivityThread; +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 @@ -12283,12 +12286,12 @@ HSPLandroid/os/MessageQueue;->postSyncBarrier(J)I+]Landroid/os/Message;Landroid/ 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;->removeCallbacksAndMessages(Landroid/os/Handler;Ljava/lang/Object;)V+]Landroid/os/Message;Landroid/os/Message; HSPLandroid/os/MessageQueue;->removeIdleHandler(Landroid/os/MessageQueue$IdleHandler;)V -HSPLandroid/os/MessageQueue;->removeMessages(Landroid/os/Handler;ILjava/lang/Object;)V -HSPLandroid/os/MessageQueue;->removeMessages(Landroid/os/Handler;Ljava/lang/Runnable;Ljava/lang/Object;)V +HSPLandroid/os/MessageQueue;->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 +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; @@ -12301,15 +12304,15 @@ HSPLandroid/os/Messenger;->send(Landroid/os/Message;)V HSPLandroid/os/Messenger;->writeMessengerOrNullToParcel(Landroid/os/Messenger;Landroid/os/Parcel;)V HSPLandroid/os/Messenger;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/os/Parcel$2;-><init>(Landroid/os/Parcel;Ljava/io/InputStream;Ljava/lang/ClassLoader;)V -HSPLandroid/os/Parcel$2;->resolveClass(Ljava/io/ObjectStreamClass;)Ljava/lang/Class; +HSPLandroid/os/Parcel$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; +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; HSPLandroid/os/Parcel$LazyValue;->writeToParcel(Landroid/os/Parcel;)V -HSPLandroid/os/Parcel$ReadWriteHelper;->readString16(Landroid/os/Parcel;)Ljava/lang/String; -HSPLandroid/os/Parcel$ReadWriteHelper;->readString8(Landroid/os/Parcel;)Ljava/lang/String; -HSPLandroid/os/Parcel$ReadWriteHelper;->writeString16(Landroid/os/Parcel;Ljava/lang/String;)V -HSPLandroid/os/Parcel$ReadWriteHelper;->writeString8(Landroid/os/Parcel;Ljava/lang/String;)V +HSPLandroid/os/Parcel$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 @@ -12323,26 +12326,26 @@ 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 -HSPLandroid/os/Parcel;->createLongArray()[J -HSPLandroid/os/Parcel;->createString16Array()[Ljava/lang/String; -HSPLandroid/os/Parcel;->createString8Array()[Ljava/lang/String; +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; -HSPLandroid/os/Parcel;->createTypedArray(Landroid/os/Parcelable$Creator;)[Ljava/lang/Object; -HSPLandroid/os/Parcel;->createTypedArrayList(Landroid/os/Parcelable$Creator;)Ljava/util/ArrayList; +HSPLandroid/os/Parcel;->createStringArrayList()Ljava/util/ArrayList;+]Landroid/os/Parcel;Landroid/os/Parcel;]Ljava/util/ArrayList;Ljava/util/ArrayList; +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 +HSPLandroid/os/Parcel;->enforceNoDataAvail()V+]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/os/Parcel;->ensureReadSquashableParcelables()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;->getValueType(Ljava/lang/Object;)I+]Ljava/lang/Object;Ljava/util/Random;]Ljava/lang/Class;Ljava/lang/Class; HSPLandroid/os/Parcel;->hasFileDescriptors()Z HSPLandroid/os/Parcel;->hasReadWriteHelper()Z HSPLandroid/os/Parcel;->init(J)V @@ -12357,37 +12360,37 @@ 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; -HSPLandroid/os/Parcel;->readArrayMap(Landroid/util/ArrayMap;IZZLjava/lang/ClassLoader;)I +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 +HSPLandroid/os/Parcel;->readBoolean()Z+]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/os/Parcel;->readBooleanArray([Z)V -HSPLandroid/os/Parcel;->readBundle()Landroid/os/Bundle; -HSPLandroid/os/Parcel;->readBundle(Ljava/lang/ClassLoader;)Landroid/os/Bundle; -HSPLandroid/os/Parcel;->readByte()B +HSPLandroid/os/Parcel;->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; +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()V+]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/os/Parcel;->readException(ILjava/lang/String;)V -HSPLandroid/os/Parcel;->readExceptionCode()I +HSPLandroid/os/Parcel;->readExceptionCode()I+]Landroid/os/Parcel;Landroid/os/Parcel; 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; +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;->readList(Ljava/util/List;Ljava/lang/ClassLoader;Ljava/lang/Class;)V+]Landroid/os/Parcel;Landroid/os/Parcel; 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;->readListInternal(Ljava/util/List;ILjava/lang/ClassLoader;Ljava/lang/Class;)V+]Ljava/util/List;Ljava/util/ArrayList; HSPLandroid/os/Parcel;->readLong()J HSPLandroid/os/Parcel;->readLongArray([J)V HSPLandroid/os/Parcel;->readMap(Ljava/util/Map;Ljava/lang/ClassLoader;)V @@ -12397,18 +12400,18 @@ HSPLandroid/os/Parcel;->readParcelable(Ljava/lang/ClassLoader;)Landroid/os/Parce HSPLandroid/os/Parcel;->readParcelable(Ljava/lang/ClassLoader;Ljava/lang/Class;)Ljava/lang/Object; HSPLandroid/os/Parcel;->readParcelableArray(Ljava/lang/ClassLoader;)[Landroid/os/Parcelable; HSPLandroid/os/Parcel;->readParcelableArray(Ljava/lang/ClassLoader;Ljava/lang/Class;)[Ljava/lang/Object; -HSPLandroid/os/Parcel;->readParcelableArrayInternal(Ljava/lang/ClassLoader;Ljava/lang/Class;)[Ljava/lang/Object; +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; -HSPLandroid/os/Parcel;->readParcelableInternal(Ljava/lang/ClassLoader;Ljava/lang/Class;)Ljava/lang/Object; +HSPLandroid/os/Parcel;->readParcelableCreatorInternal(Ljava/lang/ClassLoader;Ljava/lang/Class;)Landroid/os/Parcelable$Creator;+]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel;]Ljava/lang/Object;Landroid/os/Parcel;]Ljava/lang/reflect/Field;Ljava/lang/reflect/Field; +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; HSPLandroid/os/Parcel;->readPersistableBundle()Landroid/os/PersistableBundle; -HSPLandroid/os/Parcel;->readPersistableBundle(Ljava/lang/ClassLoader;)Landroid/os/PersistableBundle; +HSPLandroid/os/Parcel;->readPersistableBundle(Ljava/lang/ClassLoader;)Landroid/os/PersistableBundle;+]Landroid/os/PersistableBundle;Landroid/os/PersistableBundle;]Landroid/os/Parcel;Landroid/os/Parcel; 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; +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; @@ -12416,21 +12419,21 @@ HSPLandroid/os/Parcel;->readSparseArrayInternal(Ljava/lang/ClassLoader;Ljava/lan 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; -HSPLandroid/os/Parcel;->readString()Ljava/lang/String; -HSPLandroid/os/Parcel;->readString16()Ljava/lang/String; +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; +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; +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;->readTypedArray([Ljava/lang/Object;Landroid/os/Parcelable$Creator;)V+]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/os/Parcel;->readTypedList(Ljava/util/List;Landroid/os/Parcelable$Creator;)V -HSPLandroid/os/Parcel;->readTypedObject(Landroid/os/Parcelable$Creator;)Ljava/lang/Object; +HSPLandroid/os/Parcel;->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; +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; HSPLandroid/os/Parcel;->recycle()V @@ -12442,16 +12445,16 @@ 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 -HSPLandroid/os/Parcel;->writeArraySet(Landroid/util/ArraySet;)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+]Landroid/util/ArraySet;Landroid/util/ArraySet;]Landroid/os/Parcel;Landroid/os/Parcel; 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 +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;->writeByteArray([BII)V+]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/os/Parcel;->writeCharSequence(Ljava/lang/CharSequence;)V HSPLandroid/os/Parcel;->writeDouble(D)V HSPLandroid/os/Parcel;->writeException(Ljava/lang/Exception;)V @@ -12467,39 +12470,39 @@ 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 -HSPLandroid/os/Parcel;->writeParcelableArray([Landroid/os/Parcelable;I)V -HSPLandroid/os/Parcel;->writeParcelableCreator(Landroid/os/Parcelable;)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;megamorphic_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 -HSPLandroid/os/Parcel;->writeString16(Ljava/lang/String;)V -HSPLandroid/os/Parcel;->writeString16Array([Ljava/lang/String;)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 -HSPLandroid/os/Parcel;->writeString8Array([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+]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/os/Parcel;->writeString8NoHelper(Ljava/lang/String;)V -HSPLandroid/os/Parcel;->writeStringArray([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 +HSPLandroid/os/Parcel;->writeStrongInterface(Landroid/os/IInterface;)V+]Landroid/os/IInterface;Landroid/database/ContentObserver$Transport;,Landroid/app/LoadedApk$ServiceDispatcher$InnerConnection;,Landroid/app/ActivityThread$ApplicationThread;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/os/Parcel;->writeTypedArray([Landroid/os/Parcelable;I)V HSPLandroid/os/Parcel;->writeTypedArrayMap(Landroid/util/ArrayMap;I)V HSPLandroid/os/Parcel;->writeTypedList(Ljava/util/List;)V -HSPLandroid/os/Parcel;->writeTypedList(Ljava/util/List;I)V -HSPLandroid/os/Parcel;->writeTypedObject(Landroid/os/Parcelable;I)V -HSPLandroid/os/Parcel;->writeValue(ILjava/lang/Object;)V -HSPLandroid/os/Parcel;->writeValue(Ljava/lang/Object;)V +HSPLandroid/os/Parcel;->writeTypedList(Ljava/util/List;I)V+]Ljava/util/List;Ljava/util/ArrayList;]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/os/Parcel;->writeTypedObject(Landroid/os/Parcelable;I)V+]Landroid/os/Parcelable;megamorphic_types]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/Double;Ljava/lang/Double;]Ljava/lang/Long;Ljava/lang/Long;]Ljava/lang/Byte;Ljava/lang/Byte;]Landroid/os/Parcel;Landroid/os/Parcel;]Ljava/lang/Float;Ljava/lang/Float; +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$AutoCloseInputStream;->read([BII)I+]Landroid/os/ParcelFileDescriptor;Landroid/content/ContentResolver$ParcelFileDescriptorInner;,Landroid/os/ParcelFileDescriptor; HSPLandroid/os/ParcelFileDescriptor$AutoCloseOutputStream;-><init>(Landroid/os/ParcelFileDescriptor;)V HSPLandroid/os/ParcelFileDescriptor$AutoCloseOutputStream;->close()V HSPLandroid/os/ParcelFileDescriptor;-><init>(Landroid/os/ParcelFileDescriptor;)V @@ -12533,10 +12536,10 @@ HSPLandroid/os/ParcelUuid$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Ob 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;->equals(Ljava/lang/Object;)Z+]Ljava/util/UUID;Ljava/util/UUID; 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;->hashCode()I+]Ljava/util/UUID;Ljava/util/UUID; HSPLandroid/os/ParcelUuid;->toString()Ljava/lang/String; HSPLandroid/os/ParcelUuid;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/os/ParcelableException;-><init>(Ljava/lang/Throwable;)V @@ -12577,7 +12580,7 @@ HSPLandroid/os/PowerManager$1;-><init>(Landroid/os/PowerManager;ILjava/lang/Stri 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/Integer;)Ljava/lang/Boolean;+]Landroid/os/IPowerManager;Landroid/os/IPowerManager$Stub$Proxy; 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 @@ -12587,13 +12590,13 @@ 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;->acquireLocked()V+]Landroid/os/Handler;Landroid/app/ActivityThread$H;]Landroid/os/IPowerManager;Landroid/os/IPowerManager$Stub$Proxy; 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$WakeLock;->setWorkSource(Landroid/os/WorkSource;)V+]Landroid/os/WorkSource;Landroid/os/WorkSource;]Landroid/os/IPowerManager;Landroid/os/IPowerManager$Stub$Proxy; 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 @@ -12646,7 +12649,7 @@ 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/RemoteCallback;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/IRemoteCallback;Landroid/os/RemoteCallback$1;]Landroid/os/Parcel;Landroid/os/Parcel; 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 @@ -12730,23 +12733,23 @@ 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$5;->onPathAccess(Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String; 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;->handleViolationWithTimingAttempt(Landroid/os/StrictMode$ViolationInfo;)V+]Landroid/os/Handler;Landroid/os/Handler;]Landroid/os/StrictMode$AndroidBlockGuardPolicy;Landroid/os/StrictMode$AndroidBlockGuardPolicy;]Ljava/lang/ThreadLocal;Landroid/os/StrictMode$2;,Landroid/os/StrictMode$3;]Landroid/os/StrictMode$ViolationInfo;Landroid/os/StrictMode$ViolationInfo;]Ljava/util/ArrayList;Ljava/util/ArrayList; +HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->lambda$handleViolationWithTimingAttempt$0(Landroid/view/IWindowManager;Ljava/util/ArrayList;)V+]Landroid/os/StrictMode$AndroidBlockGuardPolicy;Landroid/os/StrictMode$AndroidBlockGuardPolicy;]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onCustomSlowCall(Ljava/lang/String;)V HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onNetwork()V HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onReadFromDisk()V -HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onThreadPolicyViolation(Landroid/os/StrictMode$ViolationInfo;)V +HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onThreadPolicyViolation(Landroid/os/StrictMode$ViolationInfo;)V+]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;]Landroid/os/StrictMode$ViolationLogger;Landroid/os/StrictMode$$ExternalSyntheticLambda1;]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/Integer;Ljava/lang/Integer;]Ljava/lang/ThreadLocal;Landroid/os/StrictMode$1;,Ljava/lang/ThreadLocal;]Ljava/lang/Long;Ljava/lang/Long;]Landroid/os/StrictMode$ViolationInfo;Landroid/os/StrictMode$ViolationInfo;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr; 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$AndroidBlockGuardPolicy;->startHandlingViolationException(Landroid/os/strictmode/Violation;)V+]Landroid/os/StrictMode$AndroidBlockGuardPolicy;Landroid/os/StrictMode$AndroidBlockGuardPolicy; 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 @@ -12783,12 +12786,12 @@ HSPLandroid/os/StrictMode$ThreadSpanState;-><init>(Landroid/os/StrictMode$Thread 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 -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;-><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+]Ljava/lang/ThreadLocal;Landroid/os/StrictMode$8; +HSPLandroid/os/StrictMode$ViolationInfo;->getStackTrace()Ljava/lang/String;+]Ljava/util/Deque;Ljava/util/ArrayDeque;]Ljava/io/PrintWriter;Lcom/android/internal/util/FastPrintWriter;]Ljava/lang/StackTraceElement;Ljava/lang/StackTraceElement;]Ljava/util/Iterator;Ljava/util/ArrayDeque$DeqIterator;]Ljava/io/StringWriter;Ljava/io/StringWriter;]Landroid/os/strictmode/Violation;Landroid/os/strictmode/UnbufferedIoViolation;,Landroid/os/strictmode/DiskReadViolation;,Landroid/os/strictmode/CustomViolation; +HSPLandroid/os/StrictMode$ViolationInfo;->hashCode()I+]Landroid/os/strictmode/Violation;Landroid/os/strictmode/DiskReadViolation;,Landroid/os/strictmode/LeakedClosableViolation; HSPLandroid/os/StrictMode$ViolationInfo;->penaltyEnabled(I)Z -HSPLandroid/os/StrictMode$ViolationInfo;->writeToParcel(Landroid/os/Parcel;I)V +HSPLandroid/os/StrictMode$ViolationInfo;->writeToParcel(Landroid/os/Parcel;I)V+]Ljava/util/Deque;Ljava/util/ArrayDeque;]Ljava/lang/StackTraceElement;Ljava/lang/StackTraceElement;]Ljava/util/Iterator;Ljava/util/ArrayDeque$DeqIterator;]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -12827,13 +12830,13 @@ 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 +HSPLandroid/os/StrictMode;->assertConfigurationContext(Landroid/content/Context;Ljava/lang/String;)V+]Landroid/content/Context;missing_types +HSPLandroid/os/StrictMode;->clampViolationTimeMap(Landroid/util/SparseLongArray;J)V+]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray; +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;->getThreadPolicy()Landroid/os/StrictMode$ThreadPolicy;+]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal; HSPLandroid/os/StrictMode;->getThreadPolicyMask()I HSPLandroid/os/StrictMode;->getVmPolicy()Landroid/os/StrictMode$VmPolicy; HSPLandroid/os/StrictMode;->handleApplicationStrictModeViolation(ILandroid/os/StrictMode$ViolationInfo;)V @@ -12849,15 +12852,15 @@ 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;->onVmPolicyViolation(Landroid/os/strictmode/Violation;Z)V+]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;]Landroid/os/StrictMode$ViolationLogger;Landroid/os/StrictMode$$ExternalSyntheticLambda1;]Ljava/lang/Integer;Ljava/lang/Integer;]Landroid/os/StrictMode$ViolationInfo;Landroid/os/StrictMode$ViolationInfo; +HSPLandroid/os/StrictMode;->readAndHandleBinderCallViolations(Landroid/os/Parcel;)V+]Landroid/os/StrictMode$AndroidBlockGuardPolicy;Landroid/os/StrictMode$AndroidBlockGuardPolicy;]Landroid/os/StrictMode$ViolationInfo;Landroid/os/StrictMode$ViolationInfo;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/os/StrictMode;->registerIntentMatchingRestrictionCallback()V -HSPLandroid/os/StrictMode;->setBlockGuardPolicy(I)V +HSPLandroid/os/StrictMode;->setBlockGuardPolicy(I)V+]Landroid/os/StrictMode$AndroidBlockGuardPolicy;Landroid/os/StrictMode$AndroidBlockGuardPolicy;]Ljava/lang/ThreadLocal;Landroid/os/StrictMode$4; HSPLandroid/os/StrictMode;->setBlockGuardVmPolicy(I)V HSPLandroid/os/StrictMode;->setCloseGuardEnabled(Z)V -HSPLandroid/os/StrictMode;->setThreadPolicy(Landroid/os/StrictMode$ThreadPolicy;)V +HSPLandroid/os/StrictMode;->setThreadPolicy(Landroid/os/StrictMode$ThreadPolicy;)V+]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal; HSPLandroid/os/StrictMode;->setThreadPolicyMask(I)V -HSPLandroid/os/StrictMode;->setVmPolicy(Landroid/os/StrictMode$VmPolicy;)V +HSPLandroid/os/StrictMode;->setVmPolicy(Landroid/os/StrictMode$VmPolicy;)V+]Ljava/util/HashMap;Ljava/util/HashMap;]Landroid/os/MessageQueue;Landroid/os/MessageQueue;]Landroid/os/INetworkManagementService;Landroid/os/INetworkManagementService$Stub$Proxy; HSPLandroid/os/StrictMode;->tooManyViolationsThisLoop()Z HSPLandroid/os/StrictMode;->trackActivity(Ljava/lang/Object;)Ljava/lang/Object; HSPLandroid/os/StrictMode;->vmClosableObjectLeaksEnabled()Z @@ -12918,7 +12921,7 @@ 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 +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 @@ -12930,7 +12933,7 @@ 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;)Landroid/os/UserHandle;+]Landroid/os/Parcel;Landroid/os/Parcel; 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 @@ -13096,7 +13099,7 @@ HSPLandroid/os/storage/IStorageManager$Stub$Proxy;-><init>(Landroid/os/IBinder;) 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;->getVolumeList(ILjava/lang/String;I)[Landroid/os/storage/StorageVolume;+]Landroid/os/storage/IStorageManager$Stub$Proxy;Landroid/os/storage/IStorageManager$Stub$Proxy;]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel; 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 @@ -13129,7 +13132,7 @@ HSPLandroid/os/storage/StorageVolume$1;->createFromParcel(Landroid/os/Parcel;)La 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;)V+]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -13151,9 +13154,9 @@ HSPLandroid/os/strictmode/CredentialProtectedWhileLockedViolation;-><init>(Ljava 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;->calcStackTraceHashCode([Ljava/lang/StackTraceElement;)I+]Ljava/lang/StackTraceElement;Ljava/lang/StackTraceElement; HSPLandroid/os/strictmode/Violation;->fillInStackTrace()Ljava/lang/Throwable; -HSPLandroid/os/strictmode/Violation;->hashCode()I +HSPLandroid/os/strictmode/Violation;->hashCode()I+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/Object;Landroid/os/strictmode/DiskReadViolation;,Ljava/lang/Class;]Ljava/lang/Throwable;Ljava/lang/Throwable;]Landroid/os/strictmode/Violation;Landroid/os/strictmode/DiskReadViolation;,Landroid/os/strictmode/LeakedClosableViolation; HSPLandroid/os/strictmode/Violation;->initCause(Ljava/lang/Throwable;)Ljava/lang/Throwable; HSPLandroid/os/vibrator/PrebakedSegment;->getDuration()J HSPLandroid/os/vibrator/PrebakedSegment;->isValidEffectStrength(I)Z @@ -13174,7 +13177,7 @@ HSPLandroid/permission/IPermissionManager$Stub$Proxy;-><init>(Landroid/os/IBinde 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;->getSplitPermissions()Ljava/util/List;+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/permission/IPermissionManager$Stub$Proxy;Landroid/permission/IPermissionManager$Stub$Proxy;]Landroid/os/Parcel;Landroid/os/Parcel; 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 @@ -13198,7 +13201,7 @@ 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$SplitPermissionInfo;->getTargetSdk()I+]Landroid/content/pm/permission/SplitPermissionInfoParcelable;Landroid/content/pm/permission/SplitPermissionInfoParcelable; HSPLandroid/permission/PermissionManager;-><init>(Landroid/content/Context;)V HSPLandroid/permission/PermissionManager;->addOnPermissionsChangeListener(Landroid/content/pm/PackageManager$OnPermissionsChangedListener;)V HSPLandroid/permission/PermissionManager;->getPermissionFlags(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)I @@ -13243,11 +13246,11 @@ HSPLandroid/provider/SearchIndexablesProvider;->queryDynamicRawData([Ljava/lang/ 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;->createCompositeName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; 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;->createPrefix(Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; 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(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/util/List;)Ljava/util/Map;+]Landroid/provider/Settings$NameValueCache;Landroid/provider/Settings$NameValueCache;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/String;Ljava/lang/String;]Ljava/util/List;Ljava/util/Arrays$ArrayList;,Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/Arrays$ArrayItr; 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; @@ -13256,7 +13259,7 @@ HSPLandroid/provider/Settings$GenerationTracker;-><init>(Ljava/lang/String;Landr 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$GenerationTracker;->readCurrentGeneration()I+]Landroid/util/MemoryIntArray;Landroid/util/MemoryIntArray; 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 @@ -13270,7 +13273,7 @@ HSPLandroid/provider/Settings$Global;->putString(Landroid/content/ContentResolve 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; -HSPLandroid/provider/Settings$NameValueCache;->getStringsForPrefix(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/util/List;)Landroid/util/ArrayMap; +HSPLandroid/provider/Settings$NameValueCache;->getStringsForPrefix(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/util/List;)Landroid/util/ArrayMap;+]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/Map;Ljava/util/HashMap;]Ljava/util/Set;Ljava/util/HashMap$EntrySet;]Ljava/lang/String;Ljava/lang/String;]Landroid/content/IContentProvider;Landroid/content/ContentProviderProxy;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/content/ContentResolver;Landroid/app/ContextImpl$ApplicationContentResolver;]Ljava/util/Iterator;Ljava/util/HashMap$EntryIterator;,Ljava/util/ArrayList$Itr;]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; @@ -13282,7 +13285,7 @@ HSPLandroid/provider/Settings$Secure;->getIntForUser(Landroid/content/ContentRes 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; -HSPLandroid/provider/Settings$Secure;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String; +HSPLandroid/provider/Settings$Secure;->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$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 @@ -13296,7 +13299,7 @@ HSPLandroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;L HSPLandroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I HSPLandroid/provider/Settings$System;->getIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)I HSPLandroid/provider/Settings$System;->getIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;II)I -HSPLandroid/provider/Settings$System;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String; +HSPLandroid/provider/Settings$System;->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$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 @@ -13675,14 +13678,14 @@ HSPLandroid/service/notification/NotificationListenerService$NotificationListene 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 +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 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 +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 @@ -13711,7 +13714,7 @@ HSPLandroid/service/notification/NotificationRankingUpdate;-><init>(Landroid/os/ HSPLandroid/service/notification/NotificationRankingUpdate;->getRankingMap()Landroid/service/notification/NotificationListenerService$RankingMap; HSPLandroid/service/notification/StatusBarNotification$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/notification/StatusBarNotification; HSPLandroid/service/notification/StatusBarNotification$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/service/notification/StatusBarNotification;-><init>(Landroid/os/Parcel;)V +HSPLandroid/service/notification/StatusBarNotification;-><init>(Landroid/os/Parcel;)V+]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; @@ -13726,11 +13729,11 @@ HSPLandroid/service/notification/StatusBarNotification;->getTag()Ljava/lang/Stri 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;->groupKey()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/os/UserHandle;Landroid/os/UserHandle; 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; +HSPLandroid/service/notification/StatusBarNotification;->key()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Landroid/app/Notification;Landroid/app/Notification;]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 @@ -13790,9 +13793,9 @@ 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/DisplayProperties;->tryParseBoolean(Ljava/lang/String;)Ljava/lang/Boolean;+]Ljava/lang/String;Ljava/lang/String; +HSPLandroid/sysprop/InputProperties;->force_enable_stylus_pointer_icon()Ljava/util/Optional; +HSPLandroid/sysprop/InputProperties;->tryParseBoolean(Ljava/lang/String;)Ljava/lang/Boolean; 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; @@ -13835,7 +13838,7 @@ HSPLandroid/system/keystore2/Authorization$1;->newArray(I)[Landroid/system/keyst 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/Authorization;->readFromParcel(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -13877,7 +13880,7 @@ HSPLandroid/system/keystore2/KeyMetadata$1;->createFromParcel(Landroid/os/Parcel 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/KeyMetadata;->readFromParcel(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -14054,7 +14057,7 @@ 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;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/telephony/CellSignalStrengthLte;->equals(Ljava/lang/Object;)Z HSPLandroid/telephony/CellSignalStrengthLte;->getDbm()I HSPLandroid/telephony/CellSignalStrengthLte;->getLevel()I @@ -14063,7 +14066,7 @@ 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;-><init>(Landroid/os/Parcel;)V+]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -14080,7 +14083,7 @@ HSPLandroid/telephony/CellSignalStrengthWcdma;->writeToParcel(Landroid/os/Parcel 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/os/Parcel;)V+]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/telephony/DataSpecificRegistrationInfo;-><init>(Landroid/telephony/DataSpecificRegistrationInfo;)V HSPLandroid/telephony/DataSpecificRegistrationInfo;->toString()Ljava/lang/String; HSPLandroid/telephony/DataSpecificRegistrationInfo;->writeToParcel(Landroid/os/Parcel;I)V @@ -14118,7 +14121,7 @@ HSPLandroid/telephony/ModemActivityInfo;->toString()Ljava/lang/String; HSPLandroid/telephony/NetworkRegistrationInfo$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object; HSPLandroid/telephony/NetworkRegistrationInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/NetworkRegistrationInfo; HSPLandroid/telephony/NetworkRegistrationInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telephony/NetworkRegistrationInfo;-><init>(Landroid/os/Parcel;)V +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 @@ -14174,7 +14177,7 @@ HSPLandroid/telephony/Rlog;->d(Ljava/lang/String;Ljava/lang/String;)I HSPLandroid/telephony/ServiceState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/ServiceState; HSPLandroid/telephony/ServiceState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/telephony/ServiceState;-><init>()V -HSPLandroid/telephony/ServiceState;-><init>(Landroid/os/Parcel;)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; @@ -14208,13 +14211,13 @@ 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;-><init>(Landroid/os/Parcel;)V+]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel; 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; +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 @@ -14475,7 +14478,7 @@ HSPLandroid/telephony/UiccAccessRule$1;->newArray(I)[Landroid/telephony/UiccAcce 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/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/telephony/VoiceSpecificRegistrationInfo;-><init>(Landroid/telephony/VoiceSpecificRegistrationInfo;)V HSPLandroid/telephony/VoiceSpecificRegistrationInfo;->toString()Ljava/lang/String; HSPLandroid/telephony/VoiceSpecificRegistrationInfo;->writeToParcel(Landroid/os/Parcel;I)V @@ -14535,26 +14538,26 @@ HSPLandroid/telephony/ims/RegistrationManager$RegistrationCallback;->getBinder() 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;->bidi(I[C[B)I+]Landroid/icu/text/Bidi;Landroid/icu/text/Bidi; 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;->clearWithReleasingLargeArray()V+]Landroid/text/AutoGrowArray$ByteArray;Landroid/text/AutoGrowArray$ByteArray; 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;->clearWithReleasingLargeArray()V+]Landroid/text/AutoGrowArray$FloatArray;Landroid/text/AutoGrowArray$FloatArray; 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;->clearWithReleasingLargeArray()V+]Landroid/text/AutoGrowArray$IntArray;Landroid/text/AutoGrowArray$IntArray; HSPLandroid/text/AutoGrowArray$IntArray;->ensureCapacity(I)V HSPLandroid/text/AutoGrowArray$IntArray;->getRawArray()[I HSPLandroid/text/AutoGrowArray;->computeNewCapacity(II)I @@ -14571,7 +14574,7 @@ 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;-><init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFLandroid/text/BoringLayout$Metrics;ZLandroid/text/TextUtils$TruncateAt;IZ)V+]Landroid/text/BoringLayout;Landroid/text/BoringLayout; 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 @@ -14583,18 +14586,18 @@ 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;->getLineStart(I)I+]Landroid/text/BoringLayout;Landroid/text/BoringLayout;]Ljava/lang/CharSequence;Ljava/lang/String;,Landroid/text/SpannableString; 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 +HSPLandroid/text/BoringLayout;->init(Ljava/lang/CharSequence;Landroid/text/TextPaint;Landroid/text/Layout$Alignment;Landroid/text/BoringLayout$Metrics;ZZZ)V+]Landroid/text/TextLine;Landroid/text/TextLine;]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/text/BoringLayout$Metrics;)Landroid/text/BoringLayout$Metrics; +HSPLandroid/text/BoringLayout;->isBoring(Ljava/lang/CharSequence;Landroid/text/TextPaint;Landroid/text/TextDirectionHeuristic;ZLandroid/text/BoringLayout$Metrics;)Landroid/text/BoringLayout$Metrics;+]Landroid/text/TextLine;Landroid/text/TextLine;]Landroid/text/Spanned;missing_types]Ljava/lang/CharSequence;missing_types]Landroid/text/TextDirectionHeuristic;Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicLocale;,Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicInternal; 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;Z)Landroid/text/BoringLayout;+]Landroid/text/BoringLayout;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 @@ -14604,7 +14607,7 @@ HSPLandroid/text/CharSequenceCharacterIterator;->getEndIndex()I HSPLandroid/text/CharSequenceCharacterIterator;->getIndex()I HSPLandroid/text/CharSequenceCharacterIterator;->next()C HSPLandroid/text/CharSequenceCharacterIterator;->setIndex(I)C -HSPLandroid/text/DynamicLayout$Builder;->obtain(Ljava/lang/CharSequence;Landroid/text/TextPaint;I)Landroid/text/DynamicLayout$Builder; +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 @@ -14612,29 +14615,29 @@ HSPLandroid/text/DynamicLayout$ChangeWatcher;->onSpanChanged(Landroid/text/Spann HSPLandroid/text/DynamicLayout$ChangeWatcher;->onSpanRemoved(Landroid/text/Spannable;Ljava/lang/Object;II)V HSPLandroid/text/DynamicLayout$ChangeWatcher;->onTextChanged(Ljava/lang/CharSequence;III)V HSPLandroid/text/DynamicLayout;-><init>(Landroid/text/DynamicLayout$Builder;)V -HSPLandroid/text/DynamicLayout;->addBlockAtOffset(I)V -HSPLandroid/text/DynamicLayout;->contentMayProtrudeFromLineTopOrBottom(Ljava/lang/CharSequence;II)Z -HSPLandroid/text/DynamicLayout;->createBlocks()V -HSPLandroid/text/DynamicLayout;->generate(Landroid/text/DynamicLayout$Builder;)V +HSPLandroid/text/DynamicLayout;->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+]Ljava/lang/CharSequence;Landroid/text/SpannableString; +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;missing_types]Landroid/text/Spannable;missing_types HSPLandroid/text/DynamicLayout;->getBlockEndLines()[I HSPLandroid/text/DynamicLayout;->getBlockIndices()[I HSPLandroid/text/DynamicLayout;->getBlocksAlwaysNeedToBeRedrawn()Landroid/util/ArraySet; HSPLandroid/text/DynamicLayout;->getEllipsisCount(I)I HSPLandroid/text/DynamicLayout;->getEllipsisStart(I)I HSPLandroid/text/DynamicLayout;->getEllipsizedWidth()I -HSPLandroid/text/DynamicLayout;->getEndHyphenEdit(I)I +HSPLandroid/text/DynamicLayout;->getEndHyphenEdit(I)I+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector; HSPLandroid/text/DynamicLayout;->getIndexFirstChangedBlock()I -HSPLandroid/text/DynamicLayout;->getLineContainsTab(I)Z -HSPLandroid/text/DynamicLayout;->getLineCount()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 -HSPLandroid/text/DynamicLayout;->getLineDirections(I)Landroid/text/Layout$Directions; +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 -HSPLandroid/text/DynamicLayout;->getLineTop(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 -HSPLandroid/text/DynamicLayout;->getStartHyphenEdit(I)I -HSPLandroid/text/DynamicLayout;->reflow(Ljava/lang/CharSequence;III)V +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;missing_types]Ljava/lang/CharSequence;missing_types]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 @@ -14689,47 +14692,47 @@ HSPLandroid/text/Layout;-><init>(Ljava/lang/CharSequence;Landroid/text/TextPaint HSPLandroid/text/Layout;->addSelection(IIIIILandroid/text/Layout$SelectionRectangleConsumer;)V HSPLandroid/text/Layout;->draw(Landroid/graphics/Canvas;)V HSPLandroid/text/Layout;->draw(Landroid/graphics/Canvas;Landroid/graphics/Path;Landroid/graphics/Paint;I)V -HSPLandroid/text/Layout;->draw(Landroid/graphics/Canvas;Ljava/util/List;Ljava/util/List;Landroid/graphics/Path;Landroid/graphics/Paint;I)V +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/StaticLayout; HSPLandroid/text/Layout;->drawBackground(Landroid/graphics/Canvas;II)V -HSPLandroid/text/Layout;->drawText(Landroid/graphics/Canvas;II)V -HSPLandroid/text/Layout;->drawWithoutText(Landroid/graphics/Canvas;Ljava/util/List;Ljava/util/List;Landroid/graphics/Path;Landroid/graphics/Paint;III)V -HSPLandroid/text/Layout;->ellipsize(III[CILandroid/text/TextUtils$TruncateAt;)V +HSPLandroid/text/Layout;->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;missing_types]Ljava/lang/CharSequence;missing_types +HSPLandroid/text/Layout;->drawWithoutText(Landroid/graphics/Canvas;Ljava/util/List;Ljava/util/List;Landroid/graphics/Path;Landroid/graphics/Paint;III)V+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;,Landroid/text/StaticLayout;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas; +HSPLandroid/text/Layout;->ellipsize(III[CILandroid/text/TextUtils$TruncateAt;)V+]Ljava/lang/String;Ljava/lang/String;]Landroid/text/Layout;Landroid/text/StaticLayout; 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;->getHeight()I+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/StaticLayout; +HSPLandroid/text/Layout;->getHeight(Z)I+]Landroid/text/Layout;Landroid/text/DynamicLayout; HSPLandroid/text/Layout;->getHorizontal(IZ)F -HSPLandroid/text/Layout;->getHorizontal(IZIZ)F +HSPLandroid/text/Layout;->getHorizontal(IZIZ)F+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;]Landroid/text/TextLine;Landroid/text/TextLine; HSPLandroid/text/Layout;->getIndentAdjust(ILandroid/text/Layout$Alignment;)I -HSPLandroid/text/Layout;->getLineBaseline(I)I +HSPLandroid/text/Layout;->getLineBaseline(I)I+]Landroid/text/Layout;Landroid/text/BoringLayout;,Landroid/text/StaticLayout; HSPLandroid/text/Layout;->getLineBottom(I)I HSPLandroid/text/Layout;->getLineBottom(IZ)I -HSPLandroid/text/Layout;->getLineEnd(I)I -HSPLandroid/text/Layout;->getLineExtent(ILandroid/text/Layout$TabStops;Z)F -HSPLandroid/text/Layout;->getLineExtent(IZ)F -HSPLandroid/text/Layout;->getLineForOffset(I)I +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+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;]Landroid/text/TextLine;Landroid/text/TextLine;]Landroid/text/TextPaint;Landroid/text/TextPaint; +HSPLandroid/text/Layout;->getLineExtent(IZ)F+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/StaticLayout;]Landroid/text/TextLine;Landroid/text/TextLine;]Landroid/text/TextPaint;Landroid/text/TextPaint; +HSPLandroid/text/Layout;->getLineForOffset(I)I+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;,Landroid/text/StaticLayout; HSPLandroid/text/Layout;->getLineForVertical(I)I -HSPLandroid/text/Layout;->getLineLeft(I)F +HSPLandroid/text/Layout;->getLineLeft(I)F+]Landroid/text/Layout$Alignment;Landroid/text/Layout$Alignment;]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/StaticLayout;,Landroid/text/BoringLayout; HSPLandroid/text/Layout;->getLineMax(I)F -HSPLandroid/text/Layout;->getLineRangeForDraw(Landroid/graphics/Canvas;)J -HSPLandroid/text/Layout;->getLineRight(I)F -HSPLandroid/text/Layout;->getLineStartPos(III)I -HSPLandroid/text/Layout;->getLineVisibleEnd(I)I -HSPLandroid/text/Layout;->getLineVisibleEnd(III)I +HSPLandroid/text/Layout;->getLineRangeForDraw(Landroid/graphics/Canvas;)J+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;,Landroid/text/StaticLayout;]Landroid/graphics/Canvas;missing_types +HSPLandroid/text/Layout;->getLineRight(I)F+]Landroid/text/Layout$Alignment;Landroid/text/Layout$Alignment;]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout; +HSPLandroid/text/Layout;->getLineStartPos(III)I+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout; +HSPLandroid/text/Layout;->getLineVisibleEnd(I)I+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;,Landroid/text/StaticLayout; +HSPLandroid/text/Layout;->getLineVisibleEnd(III)I+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;,Landroid/text/StaticLayout; HSPLandroid/text/Layout;->getLineWidth(I)F HSPLandroid/text/Layout;->getOffsetAtStartOf(I)I HSPLandroid/text/Layout;->getOffsetForHorizontal(IF)I HSPLandroid/text/Layout;->getOffsetForHorizontal(IFZ)I HSPLandroid/text/Layout;->getPaint()Landroid/text/TextPaint; -HSPLandroid/text/Layout;->getParagraphAlignment(I)Landroid/text/Layout$Alignment; -HSPLandroid/text/Layout;->getParagraphLeadingMargin(I)I -HSPLandroid/text/Layout;->getParagraphLeft(I)I -HSPLandroid/text/Layout;->getParagraphRight(I)I -HSPLandroid/text/Layout;->getParagraphSpans(Landroid/text/Spanned;IILjava/lang/Class;)[Ljava/lang/Object; +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;Landroid/text/SpannableString; +HSPLandroid/text/Layout;->getParagraphLeft(I)I+]Landroid/text/Layout;Landroid/text/DynamicLayout; +HSPLandroid/text/Layout;->getParagraphRight(I)I+]Landroid/text/Layout;Landroid/text/DynamicLayout; +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;->getPrimaryHorizontal(IZ)F+]Landroid/text/Layout;Landroid/text/DynamicLayout; HSPLandroid/text/Layout;->getSelection(IILandroid/text/Layout$SelectionRectangleConsumer;)V HSPLandroid/text/Layout;->getSelectionPath(IILandroid/graphics/Path;)V HSPLandroid/text/Layout;->getSpacingAdd()F @@ -14742,7 +14745,7 @@ 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;->primaryIsTrailingPrevious(I)Z+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout; 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 @@ -14751,30 +14754,30 @@ HSPLandroid/text/MeasuredParagraph;->buildForBidi(Ljava/lang/CharSequence;IILand 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;->getDirections(II)Landroid/text/Layout$Directions;+]Landroid/text/AutoGrowArray$ByteArray;Landroid/text/AutoGrowArray$ByteArray; 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/MeasuredParagraph;->obtain()Landroid/text/MeasuredParagraph;+]Landroid/util/Pools$SynchronizedPool;Landroid/util/Pools$SynchronizedPool; +HSPLandroid/text/MeasuredParagraph;->recycle()V+]Landroid/text/MeasuredParagraph;Landroid/text/MeasuredParagraph;]Landroid/util/Pools$SynchronizedPool;Landroid/util/Pools$SynchronizedPool; +HSPLandroid/text/MeasuredParagraph;->release()V+]Landroid/text/AutoGrowArray$FloatArray;Landroid/text/AutoGrowArray$FloatArray;]Landroid/text/AutoGrowArray$ByteArray;Landroid/text/AutoGrowArray$ByteArray;]Landroid/text/AutoGrowArray$IntArray;Landroid/text/AutoGrowArray$IntArray; +HSPLandroid/text/MeasuredParagraph;->reset()V+]Landroid/text/AutoGrowArray$FloatArray;Landroid/text/AutoGrowArray$FloatArray;]Landroid/text/AutoGrowArray$ByteArray;Landroid/text/AutoGrowArray$ByteArray;]Landroid/text/AutoGrowArray$IntArray;Landroid/text/AutoGrowArray$IntArray; +HSPLandroid/text/MeasuredParagraph;->resetAndAnalyzeBidi(Ljava/lang/CharSequence;IILandroid/text/TextDirectionHeuristic;)V+]Landroid/text/AutoGrowArray$ByteArray;Landroid/text/AutoGrowArray$ByteArray;]Landroid/text/Spanned;missing_types +HSPLandroid/text/PackedIntVector;->adjustValuesBelow(III)V+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector; +HSPLandroid/text/PackedIntVector;->deleteAt(II)V+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector; HSPLandroid/text/PackedIntVector;->getValue(II)I+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector; -HSPLandroid/text/PackedIntVector;->growBuffer()V -HSPLandroid/text/PackedIntVector;->insertAt(I[I)V +HSPLandroid/text/PackedIntVector;->growBuffer()V+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector; +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;->deleteAt(II)V+]Landroid/text/PackedObjectVector;Landroid/text/PackedObjectVector; HSPLandroid/text/PackedObjectVector;->getValue(II)Ljava/lang/Object; -HSPLandroid/text/PackedObjectVector;->growBuffer()V -HSPLandroid/text/PackedObjectVector;->insertAt(I[Ljava/lang/Object;)V +HSPLandroid/text/PackedObjectVector;->growBuffer()V+]Landroid/text/PackedObjectVector;Landroid/text/PackedObjectVector; +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 @@ -14784,23 +14787,23 @@ 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 -HSPLandroid/text/Selection;->removeMemory(Landroid/text/Spannable;)V +HSPLandroid/text/Selection;->getSelectionEnd(Ljava/lang/CharSequence;)I+]Landroid/text/Spanned;Landroid/text/SpannableString;,Landroid/text/SpannableStringBuilder; +HSPLandroid/text/Selection;->getSelectionStart(Ljava/lang/CharSequence;)I+]Landroid/text/Spanned;Landroid/text/SpannableString;,Landroid/text/SpannableStringBuilder; +HSPLandroid/text/Selection;->removeMemory(Landroid/text/Spannable;)V+]Landroid/text/Spannable;Landroid/text/SpannableStringBuilder;,Landroid/text/SpannableString; 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;->setSelection(Landroid/text/Spannable;III)V+]Landroid/text/Spannable;Landroid/text/SpannableStringBuilder;,Landroid/text/SpannableString; 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 +HSPLandroid/text/SpanSet;->init(Landroid/text/Spanned;II)V+]Landroid/text/Spanned;missing_types 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;-><init>(Ljava/lang/CharSequence;Z)V+]Ljava/lang/CharSequence;Ljava/lang/String;,Landroid/text/SpannableString; HSPLandroid/text/SpannableString;->equals(Ljava/lang/Object;)Z HSPLandroid/text/SpannableString;->getSpanEnd(Ljava/lang/Object;)I HSPLandroid/text/SpannableString;->getSpanFlags(Ljava/lang/Object;)I @@ -14818,12 +14821,12 @@ 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; +HSPLandroid/text/SpannableStringBuilder;->append(Ljava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;+]Ljava/lang/CharSequence;Ljava/lang/String;]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 -HSPLandroid/text/SpannableStringBuilder;->charAt(I)C -HSPLandroid/text/SpannableStringBuilder;->checkRange(Ljava/lang/String;II)V +HSPLandroid/text/SpannableStringBuilder;->change(IILjava/lang/CharSequence;II)V+]Landroid/text/Spanned;Landroid/text/SpannableStringBuilder; +HSPLandroid/text/SpannableStringBuilder;->charAt(I)C+]Landroid/text/SpannableStringBuilder;Landroid/text/SpannableStringBuilder; +HSPLandroid/text/SpannableStringBuilder;->checkRange(Ljava/lang/String;II)V+]Landroid/text/SpannableStringBuilder;Landroid/text/SpannableStringBuilder; HSPLandroid/text/SpannableStringBuilder;->checkSortBuffer([II)[I HSPLandroid/text/SpannableStringBuilder;->clear()V HSPLandroid/text/SpannableStringBuilder;->compareSpans(II[I[I)I @@ -14835,8 +14838,8 @@ HSPLandroid/text/SpannableStringBuilder;->equals(Ljava/lang/Object;)Z HSPLandroid/text/SpannableStringBuilder;->getChars(II[CI)V HSPLandroid/text/SpannableStringBuilder;->getSpanEnd(Ljava/lang/Object;)I HSPLandroid/text/SpannableStringBuilder;->getSpanFlags(Ljava/lang/Object;)I -HSPLandroid/text/SpannableStringBuilder;->getSpanStart(Ljava/lang/Object;)I -HSPLandroid/text/SpannableStringBuilder;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object; +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;Landroid/text/SpannableStringBuilder; 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 HSPLandroid/text/SpannableStringBuilder;->getTextWatcherDepth()I @@ -14846,7 +14849,7 @@ 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;->moveGapTo(I)V+]Landroid/text/SpannableStringBuilder;Landroid/text/SpannableStringBuilder; HSPLandroid/text/SpannableStringBuilder;->nextSpanTransition(IILjava/lang/Class;)I HSPLandroid/text/SpannableStringBuilder;->nextSpanTransitionRec(IILjava/lang/Class;I)I HSPLandroid/text/SpannableStringBuilder;->obtain(I)[I @@ -14856,8 +14859,8 @@ 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; +HSPLandroid/text/SpannableStringBuilder;->replace(IILjava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;+]Ljava/lang/CharSequence;Ljava/lang/String;]Landroid/text/SpannableStringBuilder;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 @@ -14878,13 +14881,13 @@ HSPLandroid/text/SpannableStringBuilder;->subSequence(II)Ljava/lang/CharSequence HSPLandroid/text/SpannableStringBuilder;->toString()Ljava/lang/String; HSPLandroid/text/SpannableStringBuilder;->treeRoot()I HSPLandroid/text/SpannableStringBuilder;->updatedIntervalBound(IIIIZZ)I -HSPLandroid/text/SpannableStringInternal;-><init>(Ljava/lang/CharSequence;IIZ)V -HSPLandroid/text/SpannableStringInternal;->charAt(I)C -HSPLandroid/text/SpannableStringInternal;->checkRange(Ljava/lang/String;II)V -HSPLandroid/text/SpannableStringInternal;->copySpansFromInternal(Landroid/text/SpannableStringInternal;IIZ)V +HSPLandroid/text/SpannableStringInternal;-><init>(Ljava/lang/CharSequence;IIZ)V+]Ljava/lang/CharSequence;Ljava/lang/String;,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/SpannableString; +HSPLandroid/text/SpannableStringInternal;->copySpansFromInternal(Landroid/text/SpannableStringInternal;IIZ)V+]Landroid/text/SpannableStringInternal;Landroid/text/SpannableString; HSPLandroid/text/SpannableStringInternal;->copySpansFromSpanned(Landroid/text/Spanned;IIZ)V HSPLandroid/text/SpannableStringInternal;->equals(Ljava/lang/Object;)Z -HSPLandroid/text/SpannableStringInternal;->getChars(II[CI)V +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 @@ -14892,8 +14895,8 @@ HSPLandroid/text/SpannableStringInternal;->getSpans(IILjava/lang/Class;)[Ljava/l HSPLandroid/text/SpannableStringInternal;->length()I+]Ljava/lang/String;Ljava/lang/String; HSPLandroid/text/SpannableStringInternal;->nextSpanTransition(IILjava/lang/Class;)I+]Ljava/lang/Class;Ljava/lang/Class; HSPLandroid/text/SpannableStringInternal;->removeSpan(Ljava/lang/Object;I)V -HSPLandroid/text/SpannableStringInternal;->sendSpanAdded(Ljava/lang/Object;II)V -HSPLandroid/text/SpannableStringInternal;->sendSpanChanged(Ljava/lang/Object;IIII)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+]Landroid/text/SpanWatcher;Landroid/widget/Editor$SpanController;,Landroid/widget/TextView$ChangeWatcher;]Landroid/text/SpannableStringInternal;Landroid/text/SpannableString; 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; @@ -14927,8 +14930,8 @@ HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmTextDir(Landroid/text/Stati 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;->obtain(Ljava/lang/CharSequence;IILandroid/text/TextPaint;I)Landroid/text/StaticLayout$Builder;+]Landroid/util/Pools$SynchronizedPool;Landroid/util/Pools$SynchronizedPool; +HSPLandroid/text/StaticLayout$Builder;->recycle(Landroid/text/StaticLayout$Builder;)V+]Landroid/util/Pools$SynchronizedPool;Landroid/util/Pools$SynchronizedPool; 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; @@ -14942,7 +14945,7 @@ HSPLandroid/text/StaticLayout$Builder;->setMaxLines(I)Landroid/text/StaticLayout 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;->calculateEllipsis(IILandroid/text/MeasuredParagraph;IFLandroid/text/TextUtils$TruncateAt;IFLandroid/text/TextPaint;Z)V -HSPLandroid/text/StaticLayout;->generate(Landroid/text/StaticLayout$Builder;ZZ)V +HSPLandroid/text/StaticLayout;->generate(Landroid/text/StaticLayout$Builder;ZZ)V+]Landroid/text/MeasuredParagraph;Landroid/text/MeasuredParagraph;]Landroid/graphics/text/LineBreaker$Builder;Landroid/graphics/text/LineBreaker$Builder;]Landroid/graphics/text/LineBreaker;Landroid/graphics/text/LineBreaker;]Landroid/text/Spanned;Landroid/text/SpannableString;]Ljava/lang/CharSequence;missing_types]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;]Landroid/text/StaticLayout;Landroid/text/StaticLayout;]Landroid/text/TextPaint;Landroid/text/TextPaint; HSPLandroid/text/StaticLayout;->getBottomPadding()I HSPLandroid/text/StaticLayout;->getEllipsisCount(I)I HSPLandroid/text/StaticLayout;->getEllipsisStart(I)I @@ -14952,7 +14955,7 @@ HSPLandroid/text/StaticLayout;->getIndentAdjust(ILandroid/text/Layout$Alignment; HSPLandroid/text/StaticLayout;->getLineContainsTab(I)Z HSPLandroid/text/StaticLayout;->getLineCount()I HSPLandroid/text/StaticLayout;->getLineDescent(I)I -HSPLandroid/text/StaticLayout;->getLineDirections(I)Landroid/text/Layout$Directions; +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 @@ -14961,13 +14964,13 @@ 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 +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;Ljava/lang/String;,Landroid/text/SpannableString;,Landroid/text/SpannedString; 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(Ljava/lang/CharSequence;II)Z+]Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicImpl;Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicInternal;]Ljava/lang/CharSequence;missing_types HSPLandroid/text/TextDirectionHeuristics$TextDirectionHeuristicImpl;->isRtl([CII)Z HSPLandroid/text/TextDirectionHeuristics$TextDirectionHeuristicInternal;->defaultIsRtl()Z HSPLandroid/text/TextDirectionHeuristics$TextDirectionHeuristicLocale;->defaultIsRtl()Z @@ -14978,21 +14981,21 @@ 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 +HSPLandroid/text/TextLine;->draw(Landroid/graphics/Canvas;FIII)V+]Landroid/text/Layout$Directions;Landroid/text/Layout$Directions; HSPLandroid/text/TextLine;->drawRun(Landroid/graphics/Canvas;IIZFIIIZ)F HSPLandroid/text/TextLine;->drawStroke(Landroid/text/TextPaint;Landroid/graphics/Canvas;IFFFFF)V HSPLandroid/text/TextLine;->drawTextRun(Landroid/graphics/Canvas;Landroid/text/TextPaint;IIIIZFI)V HSPLandroid/text/TextLine;->equalAttributes(Landroid/text/TextPaint;Landroid/text/TextPaint;)Z -HSPLandroid/text/TextLine;->expandMetricsFromPaint(Landroid/graphics/Paint$FontMetricsInt;Landroid/text/TextPaint;)V -HSPLandroid/text/TextLine;->expandMetricsFromPaint(Landroid/text/TextPaint;IIIIZLandroid/graphics/Paint$FontMetricsInt;)V -HSPLandroid/text/TextLine;->extractDecorationInfo(Landroid/text/TextPaint;Landroid/text/TextLine$DecorationInfo;)V +HSPLandroid/text/TextLine;->expandMetricsFromPaint(Landroid/graphics/Paint$FontMetricsInt;Landroid/text/TextPaint;)V+]Landroid/text/TextPaint;Landroid/text/TextPaint; +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 HSPLandroid/text/TextLine;->getOffsetToLeftRightOf(IZ)I HSPLandroid/text/TextLine;->handleReplacement(Landroid/text/style/ReplacementSpan;Landroid/text/TextPaint;IIZLandroid/graphics/Canvas;FIIILandroid/graphics/Paint$FontMetricsInt;Z)F HSPLandroid/text/TextLine;->isLineEndSpace(C)Z HSPLandroid/text/TextLine;->obtain()Landroid/text/TextLine; -HSPLandroid/text/TextLine;->recycle(Landroid/text/TextLine;)Landroid/text/TextLine; -HSPLandroid/text/TextLine;->set(Landroid/text/TextPaint;Ljava/lang/CharSequence;IIILandroid/text/Layout$Directions;ZLandroid/text/Layout$TabStops;IIZ)V +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 @@ -15000,8 +15003,8 @@ HSPLandroid/text/TextPaint;-><init>(Landroid/graphics/Paint;)V HSPLandroid/text/TextPaint;->getUnderlineThickness()F HSPLandroid/text/TextPaint;->set(Landroid/text/TextPaint;)V HSPLandroid/text/TextPaint;->setUnderlineText(IF)V -HSPLandroid/text/TextUtils$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/CharSequence; -HSPLandroid/text/TextUtils$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; +HSPLandroid/text/TextUtils$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; @@ -15017,25 +15020,25 @@ HSPLandroid/text/TextUtils;->ellipsize(Ljava/lang/CharSequence;Landroid/text/Tex HSPLandroid/text/TextUtils;->ellipsize(Ljava/lang/CharSequence;Landroid/text/TextPaint;FLandroid/text/TextUtils$TruncateAt;ZLandroid/text/TextUtils$EllipsizeCallback;)Ljava/lang/CharSequence; HSPLandroid/text/TextUtils;->ellipsize(Ljava/lang/CharSequence;Landroid/text/TextPaint;FLandroid/text/TextUtils$TruncateAt;ZLandroid/text/TextUtils$EllipsizeCallback;Landroid/text/TextDirectionHeuristic;Ljava/lang/String;)Ljava/lang/CharSequence; HSPLandroid/text/TextUtils;->emptyIfNull(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z +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; +HSPLandroid/text/TextUtils;->formatSimple(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/Long;Ljava/lang/Long;]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 +HSPLandroid/text/TextUtils;->getChars(Ljava/lang/CharSequence;II[CI)V+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/Object;Ljava/lang/String;,Landroid/text/SpannableString;,Landroid/text/Layout$Ellipsizer;]Landroid/text/GetChars;Landroid/text/SpannableString;,Landroid/text/Layout$Ellipsizer; HSPLandroid/text/TextUtils;->getEllipsisString(Landroid/text/TextUtils$TruncateAt;)Ljava/lang/String; -HSPLandroid/text/TextUtils;->getLayoutDirectionFromLocale(Ljava/util/Locale;)I +HSPLandroid/text/TextUtils;->getLayoutDirectionFromLocale(Ljava/util/Locale;)I+]Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;]Ljava/util/Optional;Ljava/util/Optional;]Ljava/util/Locale;Ljava/util/Locale;]Ljava/lang/Boolean;Ljava/lang/Boolean; 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;CI)I+]Ljava/lang/Object;Landroid/text/SpannableString;]Ljava/lang/CharSequence;Landroid/text/SpannableString; +HSPLandroid/text/TextUtils;->indexOf(Ljava/lang/CharSequence;CII)I+]Ljava/lang/Object;Landroid/text/SpannedString;,Landroid/text/SpannableString;,Ljava/lang/String; 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 +HSPLandroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z+]Ljava/lang/CharSequence;missing_types HSPLandroid/text/TextUtils;->isGraphic(Ljava/lang/CharSequence;)Z -HSPLandroid/text/TextUtils;->join(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String; +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;CI)I+]Ljava/lang/Object;Landroid/text/SpannableString; 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; @@ -15046,8 +15049,8 @@ HSPLandroid/text/TextUtils;->removeEmptySpans([Ljava/lang/Object;Landroid/text/S HSPLandroid/text/TextUtils;->safeIntern(Ljava/lang/String;)Ljava/lang/String; HSPLandroid/text/TextUtils;->split(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String; HSPLandroid/text/TextUtils;->stringOrSpannedString(Ljava/lang/CharSequence;)Ljava/lang/CharSequence; -HSPLandroid/text/TextUtils;->substring(Ljava/lang/CharSequence;II)Ljava/lang/String; -HSPLandroid/text/TextUtils;->toUpperCase(Ljava/util/Locale;Ljava/lang/CharSequence;Z)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;+]Landroid/icu/text/CaseMap$Upper;Landroid/icu/text/CaseMap$Upper;]Landroid/icu/text/Edits;Landroid/icu/text/Edits; 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; @@ -15055,7 +15058,7 @@ HSPLandroid/text/TextUtils;->unpackRangeEndFromLong(J)I HSPLandroid/text/TextUtils;->unpackRangeStartFromLong(J)I HSPLandroid/text/TextUtils;->writeToParcel(Ljava/lang/CharSequence;Landroid/os/Parcel;I)V HSPLandroid/text/format/DateFormat;->format(Ljava/lang/CharSequence;J)Ljava/lang/CharSequence; -HSPLandroid/text/format/DateFormat;->format(Ljava/lang/CharSequence;Ljava/util/Calendar;)Ljava/lang/CharSequence; +HSPLandroid/text/format/DateFormat;->format(Ljava/lang/CharSequence;Ljava/util/Calendar;)Ljava/lang/CharSequence;+]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/text/DateFormatSymbols;Landroid/icu/text/DateFormatSymbols;]Ljava/util/Calendar;Ljava/util/GregorianCalendar;]Ljava/lang/CharSequence;Ljava/lang/String;]Landroid/text/SpannableStringBuilder;Landroid/text/SpannableStringBuilder; 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; @@ -15065,16 +15068,16 @@ HSPLandroid/text/format/DateFormat;->getTimeFormatString(Landroid/content/Contex 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/DateFormat;->is24HourFormat(Landroid/content/Context;I)Z+]Landroid/content/res/Resources;Landroid/content/res/Resources; +HSPLandroid/text/format/DateFormat;->is24HourLocale(Ljava/util/Locale;)Z+]Ljava/util/Locale;Ljava/util/Locale; +HSPLandroid/text/format/DateFormat;->zeroPad(II)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; 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/DateIntervalFormat;->formatDateRange(Landroid/icu/util/ULocale;Landroid/icu/util/TimeZone;JJI)Ljava/lang/String;+]Ljava/lang/StringBuffer;Ljava/lang/StringBuffer;]Landroid/icu/text/DateIntervalFormat;Landroid/icu/text/DateIntervalFormat; +HSPLandroid/text/format/DateIntervalFormat;->getFormatter(Ljava/lang/String;Landroid/icu/util/ULocale;Landroid/icu/util/TimeZone;)Landroid/icu/text/DateIntervalFormat;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/util/LruCache;Landroid/util/LruCache; +HSPLandroid/text/format/DateIntervalFormat;->isExactlyMidnight(Landroid/icu/util/Calendar;)Z+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar; +HSPLandroid/text/format/DateUtils;->formatDateRange(Landroid/content/Context;JJI)Ljava/lang/String;+]Ljava/util/Formatter;Ljava/util/Formatter; +HSPLandroid/text/format/DateUtils;->formatDateRange(Landroid/content/Context;Ljava/util/Formatter;JJILjava/lang/String;)Ljava/util/Formatter;+]Ljava/util/Formatter;Ljava/util/Formatter;]Ljava/lang/Appendable;Ljava/lang/StringBuilder; 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; @@ -15083,20 +15086,20 @@ 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;->createIcuCalendar(Landroid/icu/util/TimeZone;Landroid/icu/util/ULocale;J)Landroid/icu/util/Calendar;+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar; +HSPLandroid/text/format/DateUtilsBridge;->fallInSameMonth(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;)Z+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar; 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;->fallOnDifferentDates(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;)Z+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar; +HSPLandroid/text/format/DateUtilsBridge;->icuTimeZone(Ljava/util/TimeZone;)Landroid/icu/util/TimeZone;+]Landroid/icu/util/TimeZone;Landroid/icu/impl/OlsonTimeZone;]Ljava/util/TimeZone;Llibcore/util/ZoneInfo; 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/DateUtilsBridge;->toSkeleton(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;I)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; 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;->copyFieldsFromTime(Landroid/text/format/Time;)V+]Lcom/android/i18n/timezone/WallTime;Lcom/android/i18n/timezone/WallTime; 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 @@ -15179,7 +15182,7 @@ HSPLandroid/text/style/ClickableSpan;->updateDrawState(Landroid/text/TextPaint;) 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 +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; @@ -15200,7 +15203,7 @@ 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/content/Context;II)V+]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; 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; @@ -15245,7 +15248,7 @@ HSPLandroid/transition/Transition$2;->onAnimationEnd(Landroid/animation/Animator HSPLandroid/transition/Transition$2;->onAnimationStart(Landroid/animation/Animator;)V HSPLandroid/transition/Transition$3;->onAnimationEnd(Landroid/animation/Animator;)V HSPLandroid/transition/Transition;-><init>()V -HSPLandroid/transition/Transition;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V +HSPLandroid/transition/Transition;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V+]Landroid/transition/Transition;Landroid/transition/TransitionSet;,Landroid/transition/ChangeTransform;,Landroid/transition/ChangeBounds;]Ljava/lang/Object;megamorphic_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 @@ -15276,7 +15279,7 @@ HSPLandroid/transition/Transition;->setEpicenterCallback(Landroid/transition/Tra 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;->createTransitionFromXml(Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/transition/Transition;)Landroid/transition/Transition;+]Ljava/lang/String;Ljava/lang/String;]Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/XmlBlock$Parser;]Landroid/transition/TransitionSet;Landroid/transition/TransitionSet; HSPLandroid/transition/TransitionInflater;->from(Landroid/content/Context;)Landroid/transition/TransitionInflater; HSPLandroid/transition/TransitionInflater;->inflateTransition(I)Landroid/transition/Transition; HSPLandroid/transition/TransitionListenerAdapter;-><init>()V @@ -15339,34 +15342,34 @@ 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 +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;->containsKey(Ljava/lang/Object;)Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; 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;->equals(Ljava/lang/Object;)Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/Object;Ljava/lang/String;,Ljava/lang/Integer;,Ljava/lang/Long;]Ljava/util/Map;Landroid/util/ArrayMap; 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;->hashCode()I+]Ljava/lang/Object;Ljava/lang/String;,Ljava/lang/Integer;,Ljava/lang/Long; 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; -HSPLandroid/util/ArrayMap;->put(Ljava/lang/Object;Ljava/lang/Object;)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;missing_types HSPLandroid/util/ArrayMap;->putAll(Landroid/util/ArrayMap;)V -HSPLandroid/util/ArrayMap;->putAll(Ljava/util/Map;)V +HSPLandroid/util/ArrayMap;->putAll(Ljava/util/Map;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/Map$Entry;Landroid/util/MapCollections$MapIterator;,Ljava/util/HashMap$Node;]Ljava/util/Map;missing_types]Ljava/util/Iterator;missing_types]Ljava/util/Set;missing_types 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;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/util/ArrayMap;Landroid/util/ArrayMap; HSPLandroid/util/ArrayMap;->validate()V HSPLandroid/util/ArrayMap;->valueAt(I)Ljava/lang/Object; HSPLandroid/util/ArrayMap;->values()Ljava/util/Collection; @@ -15380,7 +15383,7 @@ HSPLandroid/util/ArraySet;-><init>(IZ)V HSPLandroid/util/ArraySet;-><init>(Landroid/util/ArraySet;)V HSPLandroid/util/ArraySet;-><init>(Ljava/util/Collection;)V HSPLandroid/util/ArraySet;-><init>([Ljava/lang/Object;)V -HSPLandroid/util/ArraySet;->add(Ljava/lang/Object;)Z +HSPLandroid/util/ArraySet;->add(Ljava/lang/Object;)Z+]Ljava/lang/Object;Landroid/app/PendingIntent; HSPLandroid/util/ArraySet;->addAll(Landroid/util/ArraySet;)V HSPLandroid/util/ArraySet;->addAll(Ljava/util/Collection;)Z HSPLandroid/util/ArraySet;->allocArrays(I)V @@ -15406,7 +15409,7 @@ 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;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/util/ArraySet;Landroid/util/ArraySet; HSPLandroid/util/ArraySet;->valueAt(I)Ljava/lang/Object; HSPLandroid/util/ArraySet;->valueAtUnchecked(I)Ljava/lang/Object; HSPLandroid/util/AtomicFile;-><init>(Ljava/io/File;)V @@ -15422,11 +15425,11 @@ 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(Ljava/lang/String;I)[B+]Ljava/lang/String;Ljava/lang/String; HSPLandroid/util/Base64;->decode([BI)[B -HSPLandroid/util/Base64;->decode([BIII)[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;->encode([BIII)[B+]Landroid/util/Base64$Encoder;Landroid/util/Base64$Encoder; HSPLandroid/util/Base64;->encodeToString([BI)Ljava/lang/String; HSPLandroid/util/Base64;->encodeToString([BIII)Ljava/lang/String; HSPLandroid/util/CloseGuard;-><init>()V @@ -15442,9 +15445,9 @@ 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; -HSPLandroid/util/EventLog$Event;->getData()Ljava/lang/Object; -HSPLandroid/util/EventLog$Event;->getHeaderSize()I +HSPLandroid/util/EventLog$Event;->decodeObject()Ljava/lang/Object;+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; +HSPLandroid/util/EventLog$Event;->getData()Ljava/lang/Object;+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; +HSPLandroid/util/EventLog$Event;->getHeaderSize()I+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; HSPLandroid/util/EventLog$Event;->getUid()I HSPLandroid/util/EventLog;->getTagCode(Ljava/lang/String;)I HSPLandroid/util/EventLog;->readTagsFile()V @@ -15483,35 +15486,35 @@ 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;->advance()Landroid/util/JsonToken;+]Landroid/util/JsonReader;Landroid/util/JsonReader; 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;->decodeLiteral()Landroid/util/JsonToken;+]Lcom/android/internal/util/StringPool;Lcom/android/internal/util/StringPool; 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;->expect(Landroid/util/JsonToken;)V+]Landroid/util/JsonReader;Landroid/util/JsonReader; +HSPLandroid/util/JsonReader;->fillBuffer(I)Z+]Ljava/io/Reader;Ljava/io/InputStreamReader; +HSPLandroid/util/JsonReader;->hasNext()Z+]Landroid/util/JsonReader;Landroid/util/JsonReader; 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;->nextName()Ljava/lang/String;+]Landroid/util/JsonReader;Landroid/util/JsonReader; HSPLandroid/util/JsonReader;->nextNonWhitespace()I -HSPLandroid/util/JsonReader;->nextString()Ljava/lang/String; -HSPLandroid/util/JsonReader;->nextString(C)Ljava/lang/String; +HSPLandroid/util/JsonReader;->nextString()Ljava/lang/String;+]Landroid/util/JsonReader;Landroid/util/JsonReader; +HSPLandroid/util/JsonReader;->nextString(C)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/internal/util/StringPool;Lcom/android/internal/util/StringPool; 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;->peek()Landroid/util/JsonToken;+]Landroid/util/JsonScope;Landroid/util/JsonScope; +HSPLandroid/util/JsonReader;->peekStack()Landroid/util/JsonScope;+]Ljava/util/List;Ljava/util/ArrayList; 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;->replaceTop(Landroid/util/JsonScope;)V+]Ljava/util/List;Ljava/util/ArrayList; HSPLandroid/util/JsonReader;->skipValue()V HSPLandroid/util/JsonToken;->values()[Landroid/util/JsonToken; HSPLandroid/util/JsonWriter;-><init>(Ljava/io/Writer;)V @@ -15529,7 +15532,7 @@ 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; HSPLandroid/util/JsonWriter;->replaceTop(Landroid/util/JsonScope;)V -HSPLandroid/util/JsonWriter;->string(Ljava/lang/String;)V +HSPLandroid/util/JsonWriter;->string(Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String;]Ljava/io/Writer;Ljava/io/StringWriter; 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; @@ -15557,7 +15560,7 @@ 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;->printlns(IILjava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I+]Ljava/lang/String;Ljava/lang/String;]Landroid/util/Log$ImmediateLogWriter;Landroid/util/Log$ImmediateLogWriter;]Lcom/android/internal/util/LineBreakBufferedWriter;Lcom/android/internal/util/LineBreakBufferedWriter;]Ljava/lang/Throwable;missing_types 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 @@ -15579,7 +15582,7 @@ HSPLandroid/util/LongSparseArray;->append(JLjava/lang/Object;)V HSPLandroid/util/LongSparseArray;->clear()V HSPLandroid/util/LongSparseArray;->delete(J)V HSPLandroid/util/LongSparseArray;->gc()V -HSPLandroid/util/LongSparseArray;->get(J)Ljava/lang/Object; +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 @@ -15602,7 +15605,7 @@ 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; +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 @@ -15616,11 +15619,11 @@ HSPLandroid/util/LruCache;->snapshot()Ljava/util/Map; HSPLandroid/util/LruCache;->trimToSize(I)V+]Ljava/util/Map$Entry;Ljava/util/LinkedHashMap$LinkedHashMapEntry;]Ljava/util/LinkedHashMap;Ljava/util/LinkedHashMap;]Landroid/util/LruCache;Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache; HSPLandroid/util/MapCollections$ArrayIterator;-><init>(Landroid/util/MapCollections;I)V HSPLandroid/util/MapCollections$ArrayIterator;->hasNext()Z -HSPLandroid/util/MapCollections$ArrayIterator;->next()Ljava/lang/Object; +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$EntrySet;->size()I+]Landroid/util/MapCollections;Landroid/util/ArrayMap$1; 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 @@ -15628,8 +15631,8 @@ 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;-><init>(Landroid/util/MapCollections;)V+]Landroid/util/MapCollections;Landroid/util/ArrayMap$1; +HSPLandroid/util/MapCollections$MapIterator;->getKey()Ljava/lang/Object;+]Landroid/util/MapCollections;Landroid/util/ArrayMap$1; HSPLandroid/util/MapCollections$MapIterator;->getValue()Ljava/lang/Object; HSPLandroid/util/MapCollections$MapIterator;->hasNext()Z HSPLandroid/util/MapCollections$MapIterator;->next()Ljava/lang/Object; @@ -15643,7 +15646,7 @@ 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/MapCollections;->toArrayHelper([Ljava/lang/Object;I)[Ljava/lang/Object;+]Ljava/lang/Object;[Ljava/lang/String;]Landroid/util/MapCollections;Landroid/util/ArrayMap$1;]Ljava/lang/Class;Ljava/lang/Class; HSPLandroid/util/MathUtils;->addOrThrow(II)I HSPLandroid/util/MathUtils;->constrain(FFF)F HSPLandroid/util/MathUtils;->constrain(III)I @@ -15657,8 +15660,8 @@ HSPLandroid/util/MemoryIntArray$1;->createFromParcel(Landroid/os/Parcel;)Ljava/l 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;->enforceNotClosed()V+]Landroid/util/MemoryIntArray;Landroid/util/MemoryIntArray; +HSPLandroid/util/MemoryIntArray;->enforceValidIndex(I)V+]Landroid/util/MemoryIntArray;Landroid/util/MemoryIntArray; HSPLandroid/util/MemoryIntArray;->finalize()V HSPLandroid/util/MemoryIntArray;->get(I)I HSPLandroid/util/MemoryIntArray;->isClosed()Z @@ -15679,7 +15682,7 @@ 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;->hashCode()I+]Ljava/lang/Object;missing_types 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 @@ -15734,20 +15737,20 @@ 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 +HSPLandroid/util/SparseArray;->append(ILjava/lang/Object;)V+]Landroid/util/SparseArray;missing_types 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;->contentEquals(Landroid/util/SparseArray;)Z+]Landroid/util/SparseArray;Landroid/util/SparseArray; HSPLandroid/util/SparseArray;->delete(I)V HSPLandroid/util/SparseArray;->gc()V -HSPLandroid/util/SparseArray;->get(I)Ljava/lang/Object; +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;->remove(I)V+]Landroid/util/SparseArray;Landroid/util/SparseArray; HSPLandroid/util/SparseArray;->removeAt(I)V HSPLandroid/util/SparseArray;->removeReturnOld(I)Ljava/lang/Object; HSPLandroid/util/SparseArray;->setValueAt(ILjava/lang/Object;)V @@ -15778,7 +15781,7 @@ HSPLandroid/util/SparseIntArray;->clear()V HSPLandroid/util/SparseIntArray;->clone()Landroid/util/SparseIntArray; HSPLandroid/util/SparseIntArray;->copyKeys()[I HSPLandroid/util/SparseIntArray;->delete(I)V -HSPLandroid/util/SparseIntArray;->get(I)I +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 @@ -15791,7 +15794,7 @@ 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(I)J+]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray; HSPLandroid/util/SparseLongArray;->get(IJ)J HSPLandroid/util/SparseLongArray;->indexOfKey(I)I HSPLandroid/util/SparseLongArray;->keyAt(I)I @@ -15925,8 +15928,8 @@ HSPLandroid/view/Choreographer$CallbackQueue;->extractDueCallbacksLocked(J)Landr HSPLandroid/view/Choreographer$CallbackQueue;->removeCallbacksLocked(Ljava/lang/Object;Ljava/lang/Object;)V HSPLandroid/view/Choreographer$CallbackRecord;-><init>()V HSPLandroid/view/Choreographer$CallbackRecord;-><init>(Landroid/view/Choreographer$CallbackRecord-IA;)V -HSPLandroid/view/Choreographer$CallbackRecord;->run(J)V -HSPLandroid/view/Choreographer$CallbackRecord;->run(Landroid/view/Choreographer$FrameData;)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 @@ -15939,8 +15942,8 @@ 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;+]Landroid/view/DisplayEventReceiver;Landroid/view/Choreographer$FrameDisplayEventReceiver;]Landroid/view/Choreographer$FrameData;Landroid/view/Choreographer$FrameData; HSPLandroid/view/Choreographer$FrameDisplayEventReceiver;-><init>(Landroid/view/Choreographer;Landroid/os/Looper;IJ)V -HSPLandroid/view/Choreographer$FrameDisplayEventReceiver;->onVsync(JJILandroid/view/DisplayEventReceiver$VsyncEventData;)V -HSPLandroid/view/Choreographer$FrameDisplayEventReceiver;->run()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 @@ -15956,8 +15959,8 @@ HSPLandroid/view/Choreographer;->-$$Nest$sfputmMainInstance(Landroid/view/Choreo 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; -HSPLandroid/view/Choreographer;->doFrame(JILandroid/view/DisplayEventReceiver$VsyncEventData;)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 @@ -15970,17 +15973,17 @@ HSPLandroid/view/Choreographer;->getSfInstance()Landroid/view/Choreographer; HSPLandroid/view/Choreographer;->getVsyncId()J HSPLandroid/view/Choreographer;->isRunningOnLooperThreadLocked()Z HSPLandroid/view/Choreographer;->obtainCallbackLocked(JLjava/lang/Object;Ljava/lang/Object;)Landroid/view/Choreographer$CallbackRecord; -HSPLandroid/view/Choreographer;->postCallback(ILjava/lang/Runnable;Ljava/lang/Object;)V +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 +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 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;->removeCallbacksInternal(ILjava/lang/Object;Ljava/lang/Object;)V+]Landroid/view/Choreographer$CallbackQueue;Landroid/view/Choreographer$CallbackQueue;]Landroid/view/Choreographer$FrameHandler;Landroid/view/Choreographer$FrameHandler; HSPLandroid/view/Choreographer;->removeFrameCallback(Landroid/view/Choreographer$FrameCallback;)V -HSPLandroid/view/Choreographer;->scheduleFrameLocked(J)V -HSPLandroid/view/Choreographer;->scheduleVsyncLocked()V +HSPLandroid/view/Choreographer;->scheduleFrameLocked(J)V+]Landroid/os/Message;Landroid/os/Message;]Landroid/view/Choreographer$FrameHandler;Landroid/view/Choreographer$FrameHandler; +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 @@ -15990,8 +15993,8 @@ HSPLandroid/view/ContextThemeWrapper;->getAssets()Landroid/content/res/AssetMana 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; +HSPLandroid/view/ContextThemeWrapper;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;+]Ljava/lang/String;Ljava/lang/String;]Landroid/view/LayoutInflater;Lcom/android/internal/policy/PhoneLayoutInflater;]Landroid/content/Context;missing_types]Landroid/view/ContextThemeWrapper;missing_types +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 @@ -16022,7 +16025,7 @@ HSPLandroid/view/Display;-><init>(Landroid/hardware/display/DisplayManagerGlobal 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;->getDisplayAdjustments()Landroid/view/DisplayAdjustments;+]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/view/DisplayAdjustments;Landroid/view/DisplayAdjustments; HSPLandroid/view/Display;->getDisplayId()I HSPLandroid/view/Display;->getDisplayInfo(Landroid/view/DisplayInfo;)Z HSPLandroid/view/Display;->getFlags()I @@ -16112,7 +16115,7 @@ HSPLandroid/view/DisplayEventReceiver$VsyncEventData;->copyFrom(Landroid/view/Di 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 +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; @@ -16128,12 +16131,12 @@ HSPLandroid/view/DisplayInfo;->getAppMetrics(Landroid/util/DisplayMetrics;Landro 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 +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;]Landroid/graphics/Rect;Landroid/graphics/Rect; 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;->readFromParcel(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/view/Display$Mode$1;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/view/DisplayInfo;->toString()Ljava/lang/String; HSPLandroid/view/DisplayInfo;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/view/DisplayShape$1;-><init>()V @@ -16198,7 +16201,7 @@ 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 +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 @@ -16269,7 +16272,7 @@ HSPLandroid/view/ImeFocusController;->onPostWindowFocus(Landroid/view/View;ZLand 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;->onViewDetachedFromWindow(Landroid/view/View;)V+]Landroid/view/ImeFocusController$InputMethodManagerDelegate;Landroid/view/inputmethod/InputMethodManager$DelegateImpl; 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 @@ -16292,7 +16295,7 @@ 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;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/view/KeyCharacterMap$1;,Landroid/hardware/input/HostUsiVersion$1;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/view/InputDevice;->addMotionRange(IIFFFFF)V HSPLandroid/view/InputDevice;->getDevice(I)Landroid/view/InputDevice; HSPLandroid/view/InputDevice;->getDeviceIds()[I @@ -16302,7 +16305,7 @@ HSPLandroid/view/InputDevice;->isVirtual()Z HSPLandroid/view/InputEvent;-><init>()V HSPLandroid/view/InputEvent;->getSequenceNumber()I HSPLandroid/view/InputEvent;->isFromSource(I)Z -HSPLandroid/view/InputEvent;->prepareForReuse()V +HSPLandroid/view/InputEvent;->prepareForReuse()V+]Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicInteger; HSPLandroid/view/InputEvent;->recycle()V HSPLandroid/view/InputEvent;->recycleIfNeededAfterDispatch()V HSPLandroid/view/InputEventAssigner;-><init>()V @@ -16410,8 +16413,8 @@ HSPLandroid/view/InsetsController;-><init>(Landroid/view/InsetsController$Host;L 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;->applyLocalVisibilityOverride()V+]Landroid/view/InsetsSourceConsumer;Landroid/view/InsetsSourceConsumer;,Landroid/view/ImeInsetsSourceConsumer;]Landroid/util/SparseArray;Landroid/util/SparseArray; +HSPLandroid/view/InsetsController;->calculateControllableTypes()I+]Landroid/view/InsetsState;Landroid/view/InsetsState;]Landroid/view/InsetsSourceConsumer;Landroid/view/InsetsSourceConsumer;,Landroid/view/ImeInsetsSourceConsumer;]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Landroid/util/SparseArray;Landroid/util/SparseArray; 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 @@ -16421,7 +16424,7 @@ 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;->getAnimationType(I)I+]Landroid/view/InsetsAnimationControlRunner;Landroid/view/InsetsAnimationThreadControlRunner;]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/view/InsetsController;->getHost()Landroid/view/InsetsController$Host; HSPLandroid/view/InsetsController;->getLastDispatchedState()Landroid/view/InsetsState; HSPLandroid/view/InsetsController;->getRequestedVisibleTypes()I @@ -16435,7 +16438,8 @@ HSPLandroid/view/InsetsController;->lambda$static$1(FLandroid/graphics/Insets;La 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;->onAnimationStateChanged(IZ)V+]Landroid/view/InsetsSourceConsumer;Landroid/view/InsetsSourceConsumer;,Landroid/view/ImeInsetsSourceConsumer;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/view/InsetsController;Landroid/view/InsetsController; +HSPLandroid/view/InsetsController;->onControlsChanged([Landroid/view/InsetsSourceControl;)V+]Landroid/view/InsetsAnimationControlRunner;Landroid/view/InsetsAnimationThreadControlRunner;]Landroid/view/InsetsSourceConsumer;Landroid/view/InsetsSourceConsumer;,Landroid/view/ImeInsetsSourceConsumer;]Landroid/view/InsetsSourceControl;Landroid/view/InsetsSourceControl;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/view/InsetsController;Landroid/view/InsetsController;]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/view/InsetsController;->onFrameChanged(Landroid/graphics/Rect;)V HSPLandroid/view/InsetsController;->onStateChanged(Landroid/view/InsetsState;)Z HSPLandroid/view/InsetsController;->onWindowFocusGained(Z)V @@ -16446,18 +16450,18 @@ 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/InsetsController;->updateState(Landroid/view/InsetsState;)V+]Landroid/view/InsetsState;Landroid/view/InsetsState;]Landroid/view/InsetsSourceConsumer;Landroid/view/InsetsSourceConsumer;,Landroid/view/ImeInsetsSourceConsumer;]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Landroid/view/InsetsController;Landroid/view/InsetsController; 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$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;+]Landroid/view/InsetsSource$1;Landroid/view/InsetsSource$1; HSPLandroid/view/InsetsSource;-><init>(II)V -HSPLandroid/view/InsetsSource;-><init>(Landroid/os/Parcel;)V +HSPLandroid/view/InsetsSource;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/graphics/Rect$1;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/view/InsetsSource;-><init>(Landroid/view/InsetsSource;)V -HSPLandroid/view/InsetsSource;->calculateInsets(Landroid/graphics/Rect;Landroid/graphics/Rect;Z)Landroid/graphics/Insets; +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;->equals(Ljava/lang/Object;)Z+]Landroid/view/InsetsSource;Landroid/view/InsetsSource; +HSPLandroid/view/InsetsSource;->equals(Ljava/lang/Object;Z)Z+]Ljava/lang/Object;Landroid/view/InsetsSource;]Landroid/graphics/Rect;Landroid/graphics/Rect; HSPLandroid/view/InsetsSource;->getFlags()I HSPLandroid/view/InsetsSource;->getFrame()Landroid/graphics/Rect; HSPLandroid/view/InsetsSource;->getId()I @@ -16469,7 +16473,7 @@ 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;->applyLocalVisibilityOverride()Z+]Landroid/view/InsetsState;Landroid/view/InsetsState;]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Landroid/view/InsetsController;Landroid/view/InsetsController; HSPLandroid/view/InsetsSourceConsumer;->applyRequestedVisibilityToControl()V HSPLandroid/view/InsetsSourceConsumer;->getControl()Landroid/view/InsetsSourceControl; HSPLandroid/view/InsetsSourceConsumer;->getId()I @@ -16479,8 +16483,8 @@ 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/InsetsSourceConsumer;->setControl(Landroid/view/InsetsSourceControl;[I[I)Z+]Landroid/view/InsetsState;Landroid/view/InsetsState;]Landroid/view/InsetsSourceConsumer;Landroid/view/InsetsSourceConsumer;,Landroid/view/ImeInsetsSourceConsumer;]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Landroid/view/InsetsSourceControl;Landroid/view/InsetsSourceControl;]Landroid/view/InsetsController;Landroid/view/InsetsController; +HSPLandroid/view/InsetsSourceConsumer;->updateSource(Landroid/view/InsetsSource;I)V+]Landroid/view/InsetsState;Landroid/view/InsetsState;]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Landroid/graphics/Rect;Landroid/graphics/Rect; 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; @@ -16518,12 +16522,11 @@ HSPLandroid/view/InsetsState;->calculateRelativeCutout(Landroid/graphics/Rect;)L 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;->calculateUncontrollableInsetsFromFrame(Landroid/graphics/Rect;)I+]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Landroid/util/SparseArray;Landroid/util/SparseArray; 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;->canControlSource(Landroid/graphics/Rect;Landroid/view/InsetsSource;)Z+]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Landroid/graphics/Rect;Landroid/graphics/Rect; HSPLandroid/view/InsetsState;->equals(Ljava/lang/Object;)Z -HSPLandroid/view/InsetsState;->equals(Ljava/lang/Object;ZZ)Z +HSPLandroid/view/InsetsState;->equals(Ljava/lang/Object;ZZ)Z+]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Ljava/lang/Object;Landroid/view/InsetsState;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/view/DisplayShape;Landroid/view/DisplayShape;]Landroid/view/DisplayCutout$ParcelableWrapper;Landroid/view/DisplayCutout$ParcelableWrapper;]Landroid/view/RoundedCorners;Landroid/view/RoundedCorners;]Landroid/view/PrivacyIndicatorBounds;Landroid/view/PrivacyIndicatorBounds; HSPLandroid/view/InsetsState;->getDisplayCutout()Landroid/view/DisplayCutout; HSPLandroid/view/InsetsState;->getDisplayCutoutSafe(Landroid/graphics/Rect;)V HSPLandroid/view/InsetsState;->getDisplayFrame()Landroid/graphics/Rect; @@ -16532,20 +16535,20 @@ HSPLandroid/view/InsetsState;->getInsetSide(Landroid/graphics/Insets;)I 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;->processSource(Landroid/view/InsetsSource;Landroid/graphics/Rect;Z[Landroid/graphics/Insets;Landroid/util/SparseIntArray;[Z)V -HSPLandroid/view/InsetsState;->processSourceAsPublicType(Landroid/view/InsetsSource;[Landroid/graphics/Insets;Landroid/util/SparseIntArray;[ZLandroid/graphics/Insets;I)V -HSPLandroid/view/InsetsState;->readFromParcel(Landroid/os/Parcel;)Landroid/util/SparseArray; +HSPLandroid/view/InsetsState;->peekSource(I)Landroid/view/InsetsSource;+]Landroid/util/SparseArray;Landroid/util/SparseArray; +HSPLandroid/view/InsetsState;->processSource(Landroid/view/InsetsSource;Landroid/graphics/Rect;Z[Landroid/graphics/Insets;Landroid/util/SparseIntArray;[Z)V+]Landroid/view/InsetsSource;Landroid/view/InsetsSource; +HSPLandroid/view/InsetsState;->processSourceAsPublicType(Landroid/view/InsetsSource;[Landroid/graphics/Insets;Landroid/util/SparseIntArray;[ZLandroid/graphics/Insets;I)V+]Landroid/view/InsetsSource;Landroid/view/InsetsSource; +HSPLandroid/view/InsetsState;->readFromParcel(Landroid/os/Parcel;)Landroid/util/SparseArray;+]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/view/DisplayCutout$ParcelableWrapper;Landroid/view/DisplayCutout$ParcelableWrapper;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/view/InsetsState;->set(Landroid/view/InsetsState;I)V -HSPLandroid/view/InsetsState;->set(Landroid/view/InsetsState;Z)V +HSPLandroid/view/InsetsState;->set(Landroid/view/InsetsState;Z)V+]Landroid/view/InsetsState;Landroid/view/InsetsState;]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/view/DisplayCutout$ParcelableWrapper;Landroid/view/DisplayCutout$ParcelableWrapper; 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;->sourceAt(I)Landroid/view/InsetsSource;+]Landroid/util/SparseArray;Landroid/util/SparseArray; +HSPLandroid/view/InsetsState;->sourceIdAt(I)I+]Landroid/util/SparseArray;Landroid/util/SparseArray; HSPLandroid/view/InsetsState;->sourceSize()I -HSPLandroid/view/InsetsState;->traverse(Landroid/view/InsetsState;Landroid/view/InsetsState;Landroid/view/InsetsState$OnTraverseCallbacks;)V +HSPLandroid/view/InsetsState;->traverse(Landroid/view/InsetsState;Landroid/view/InsetsState;Landroid/view/InsetsState$OnTraverseCallbacks;)V+]Landroid/view/InsetsState;Landroid/view/InsetsState;]Landroid/view/InsetsState$OnTraverseCallbacks;Landroid/view/InsetsController$2; 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; @@ -16593,31 +16596,34 @@ 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;-><init>(Landroid/view/LayoutInflater;Landroid/content/Context;)V+]Landroid/view/LayoutInflater;Lcom/android/internal/policy/PhoneLayoutInflater; +HSPLandroid/view/LayoutInflater;->advanceToRootNode(Lorg/xmlpull/v1/XmlPullParser;)V+]Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/XmlBlock$Parser; 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;->createView(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View;+]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/lang/Class;Ljava/lang/Class;]Ljava/lang/reflect/Constructor;Ljava/lang/reflect/Constructor;]Landroid/view/LayoutInflater;missing_types]Landroid/view/ViewStub;Landroid/view/ViewStub;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/Context;missing_types +HSPLandroid/view/LayoutInflater;->createView(Ljava/lang/String;Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View;+]Landroid/view/LayoutInflater;Lcom/android/internal/policy/PhoneLayoutInflater; +HSPLandroid/view/LayoutInflater;->createViewFromTag(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;+]Landroid/view/LayoutInflater;missing_types +HSPLandroid/view/LayoutInflater;->createViewFromTag(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;Z)Landroid/view/View;+]Ljava/lang/String;Ljava/lang/String;]Landroid/view/LayoutInflater;missing_types]Landroid/content/Context;missing_types]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Landroid/util/AttributeSet;Landroid/content/res/XmlBlock$Parser; 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;->inflate(ILandroid/view/ViewGroup;Z)Landroid/view/View;+]Landroid/view/LayoutInflater;missing_types]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/content/res/XmlResourceParser;Landroid/content/res/XmlBlock$Parser;]Landroid/content/Context;missing_types +HSPLandroid/view/LayoutInflater;->inflate(Lorg/xmlpull/v1/XmlPullParser;Landroid/view/ViewGroup;Z)Landroid/view/View;+]Ljava/lang/String;Ljava/lang/String;]Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/XmlBlock$Parser;]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types]Landroid/view/LayoutInflater;missing_types]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; +HSPLandroid/view/LayoutInflater;->initPrecompiledViews()V +HSPLandroid/view/LayoutInflater;->initPrecompiledViews(Z)V +HSPLandroid/view/LayoutInflater;->onCreateView(Landroid/content/Context;Landroid/view/View;Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View;+]Landroid/view/LayoutInflater;Lcom/android/internal/policy/PhoneLayoutInflater; +HSPLandroid/view/LayoutInflater;->onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View;+]Landroid/view/LayoutInflater;Lcom/android/internal/policy/PhoneLayoutInflater; HSPLandroid/view/LayoutInflater;->onCreateView(Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View; HSPLandroid/view/LayoutInflater;->parseInclude(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/Context;Landroid/view/View;Landroid/util/AttributeSet;)V -HSPLandroid/view/LayoutInflater;->rInflate(Lorg/xmlpull/v1/XmlPullParser;Landroid/view/View;Landroid/content/Context;Landroid/util/AttributeSet;Z)V -HSPLandroid/view/LayoutInflater;->rInflateChildren(Lorg/xmlpull/v1/XmlPullParser;Landroid/view/View;Landroid/util/AttributeSet;Z)V +HSPLandroid/view/LayoutInflater;->rInflate(Lorg/xmlpull/v1/XmlPullParser;Landroid/view/View;Landroid/content/Context;Landroid/util/AttributeSet;Z)V+]Ljava/lang/String;Ljava/lang/String;]Landroid/view/View;missing_types]Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/XmlBlock$Parser;]Landroid/view/ViewGroup;missing_types]Landroid/view/LayoutInflater;missing_types +HSPLandroid/view/LayoutInflater;->rInflateChildren(Lorg/xmlpull/v1/XmlPullParser;Landroid/view/View;Landroid/util/AttributeSet;Z)V+]Landroid/view/View;missing_types]Landroid/view/LayoutInflater;missing_types 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/LayoutInflater;->tryCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;+]Ljava/lang/String;Ljava/lang/String;]Landroid/view/LayoutInflater$Factory2;missing_types +HSPLandroid/view/LayoutInflater;->tryInflatePrecompiled(ILandroid/content/res/Resources;Landroid/view/ViewGroup;Z)Landroid/view/View; +HSPLandroid/view/LayoutInflater;->verifyClassLoader(Ljava/lang/reflect/Constructor;)Z+]Ljava/lang/Class;Ljava/lang/Class;]Ljava/lang/reflect/Constructor;Ljava/lang/reflect/Constructor;]Landroid/content/Context;missing_types HSPLandroid/view/MenuInflater;-><init>(Landroid/content/Context;)V HSPLandroid/view/MotionEvent$PointerCoords;-><init>()V HSPLandroid/view/MotionEvent$PointerProperties;-><init>()V @@ -16706,12 +16712,12 @@ HSPLandroid/view/RemoteAccessibilityController;->setRemoteAccessibilityEmbeddedC 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$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/RoundedCorner;+]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/view/RoundedCorner$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;+]Landroid/view/RoundedCorner$1;Landroid/view/RoundedCorner$1; 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;->equals(Ljava/lang/Object;)Z+]Landroid/graphics/Point;Landroid/graphics/Point; HSPLandroid/view/RoundedCorner;->getCenter()Landroid/graphics/Point; HSPLandroid/view/RoundedCorner;->getRadius()I HSPLandroid/view/RoundedCorner;->isEmpty()Z @@ -16875,7 +16881,7 @@ HSPLandroid/view/SurfaceView;->updateBackgroundVisibility(Landroid/view/SurfaceC 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/SurfaceView;->vriDrawStarted(Z)V+]Landroid/view/SurfaceView;Landroid/view/SurfaceView;]Landroid/util/ArraySet;Landroid/util/ArraySet; 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; @@ -16884,10 +16890,10 @@ HSPLandroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder;->withVis 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;->applyUpdate()V+]Landroid/graphics/TextureLayer;Landroid/graphics/TextureLayer; HSPLandroid/view/TextureView;->destroyHardwareLayer()V HSPLandroid/view/TextureView;->destroyHardwareResources()V -HSPLandroid/view/TextureView;->draw(Landroid/graphics/Canvas;)V +HSPLandroid/view/TextureView;->draw(Landroid/graphics/Canvas;)V+]Landroid/graphics/TextureLayer;Landroid/graphics/TextureLayer;]Landroid/graphics/RecordingCanvas;Landroid/graphics/RecordingCanvas;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas; HSPLandroid/view/TextureView;->getLayerType()I HSPLandroid/view/TextureView;->getTextureLayer()Landroid/graphics/TextureLayer; HSPLandroid/view/TextureView;->isOpaque()Z @@ -16917,7 +16923,7 @@ HSPLandroid/view/ThreadedRenderer;->create(Landroid/content/Context;ZLjava/lang/ HSPLandroid/view/ThreadedRenderer;->destroy()V HSPLandroid/view/ThreadedRenderer;->destroyHardwareResources(Landroid/view/View;)V HSPLandroid/view/ThreadedRenderer;->destroyResources(Landroid/view/View;)V -HSPLandroid/view/ThreadedRenderer;->draw(Landroid/view/View;Landroid/view/View$AttachInfo;Landroid/view/ThreadedRenderer$DrawCallbacks;)V +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 @@ -16938,9 +16944,9 @@ HSPLandroid/view/ThreadedRenderer;->setSurfaceControl(Landroid/view/SurfaceContr 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 +HSPLandroid/view/ThreadedRenderer;->updateRootDisplayList(Landroid/view/View;Landroid/view/ThreadedRenderer$DrawCallbacks;)V+]Landroid/view/View;Lcom/android/internal/policy/DecorView;,Landroid/widget/FrameLayout;]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer;]Landroid/view/ThreadedRenderer$DrawCallbacks;Landroid/view/ViewRootImpl;]Landroid/graphics/RecordingCanvas;Landroid/graphics/RecordingCanvas;]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; HSPLandroid/view/ThreadedRenderer;->updateSurface(Landroid/view/Surface;)V -HSPLandroid/view/ThreadedRenderer;->updateViewTreeDisplayList(Landroid/view/View;)V +HSPLandroid/view/ThreadedRenderer;->updateViewTreeDisplayList(Landroid/view/View;)V+]Landroid/view/View;Lcom/android/internal/policy/DecorView;,Landroid/widget/FrameLayout; HSPLandroid/view/ThreadedRenderer;->updateWebViewOverlayCallbacks()V HSPLandroid/view/TouchDelegate;-><init>(Landroid/graphics/Rect;Landroid/view/View;)V HSPLandroid/view/VelocityTracker;-><init>(I)V @@ -16992,7 +16998,7 @@ HSPLandroid/view/View$AccessibilityDelegate;->getAccessibilityNodeProvider(Landr 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$AttachInfo;->ensureEvents(Landroid/view/contentcapture/ContentCaptureSession;)Ljava/util/ArrayList;+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/view/contentcapture/ContentCaptureSession;Landroid/view/contentcapture/MainContentCaptureSession; 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 @@ -17016,21 +17022,21 @@ 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;-><init>(Landroid/view/ViewConfiguration;Landroid/view/View;)V+]Landroid/graphics/Paint;Landroid/graphics/Paint;]Landroid/view/ViewConfiguration;Landroid/view/ViewConfiguration; HSPLandroid/view/View$ScrollabilityCache;->run()V 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/view/ViewConfiguration;Landroid/view/ViewConfiguration;]Landroid/content/Context;missing_types]Ljava/lang/Class;Ljava/lang/Class; +HSPLandroid/view/View;-><init>(Landroid/content/Context;)V+]Landroid/view/View;megamorphic_types]Ljava/lang/Object;megamorphic_types]Landroid/view/ViewConfiguration;Landroid/view/ViewConfiguration;]Landroid/content/Context;missing_types]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;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V+]Landroid/view/View;megamorphic_types]Landroid/content/Context;missing_types]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; 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;->addOnLayoutChangeListener(Landroid/view/View$OnLayoutChangeListener;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/view/View;->animate()Landroid/view/ViewPropertyAnimator; HSPLandroid/view/View;->announceForAccessibility(Ljava/lang/CharSequence;)V HSPLandroid/view/View;->appendId(Ljava/lang/StringBuilder;)V @@ -17041,18 +17047,18 @@ HSPLandroid/view/View;->applyLegacyAnimation(Landroid/view/ViewGroup;JLandroid/v HSPLandroid/view/View;->areDrawablesResolved()Z HSPLandroid/view/View;->assignParent(Landroid/view/ViewParent;)V HSPLandroid/view/View;->awakenScrollBars()Z -HSPLandroid/view/View;->awakenScrollBars(IZ)Z +HSPLandroid/view/View;->awakenScrollBars(IZ)Z+]Landroid/os/Handler;Landroid/view/ViewRootImpl$ViewRootHandler; HSPLandroid/view/View;->bringToFront()V HSPLandroid/view/View;->buildDrawingCache(Z)V -HSPLandroid/view/View;->buildDrawingCacheImpl(Z)V +HSPLandroid/view/View;->buildDrawingCacheImpl(Z)V+]Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;]Landroid/view/ViewConfiguration;Landroid/view/ViewConfiguration;]Landroid/graphics/Canvas;Landroid/graphics/Canvas; HSPLandroid/view/View;->buildLayer()V HSPLandroid/view/View;->calculateAccessibilityDataSensitive()V -HSPLandroid/view/View;->calculateIsImportantForContentCapture()Z +HSPLandroid/view/View;->calculateIsImportantForContentCapture()Z+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types]Landroid/view/ViewParent;missing_types HSPLandroid/view/View;->canHaveDisplayList()Z HSPLandroid/view/View;->canNotifyAutofillEnterExitEvent()Z HSPLandroid/view/View;->canReceivePointerEvents()Z -HSPLandroid/view/View;->canResolveLayoutDirection()Z -HSPLandroid/view/View;->canResolveTextDirection()Z +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 @@ -17061,17 +17067,17 @@ 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;->cleanupDraw()V+]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; +HSPLandroid/view/View;->clearAccessibilityFocus()V+]Landroid/view/View;missing_types]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; 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;->clearTranslationState()V+]Landroid/view/View;missing_types HSPLandroid/view/View;->clearViewTranslationResponse()V -HSPLandroid/view/View;->collectPreferKeepClearRects()Ljava/util/List; +HSPLandroid/view/View;->collectPreferKeepClearRects()Ljava/util/List;+]Landroid/view/View;missing_types]Landroid/view/ViewConfiguration;Landroid/view/ViewConfiguration; HSPLandroid/view/View;->collectUnrestrictedPreferKeepClearRects()Ljava/util/List; HSPLandroid/view/View;->combineMeasuredStates(II)I HSPLandroid/view/View;->combineVisibility(II)I @@ -17079,21 +17085,21 @@ HSPLandroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/ HSPLandroid/view/View;->computeHorizontalScrollExtent()I HSPLandroid/view/View;->computeHorizontalScrollOffset()I HSPLandroid/view/View;->computeHorizontalScrollRange()I -HSPLandroid/view/View;->computeOpaqueFlags()V +HSPLandroid/view/View;->computeOpaqueFlags()V+]Landroid/graphics/drawable/Drawable;megamorphic_types HSPLandroid/view/View;->computeScroll()V HSPLandroid/view/View;->computeSystemWindowInsets(Landroid/view/WindowInsets;Landroid/graphics/Rect;)Landroid/view/WindowInsets; HSPLandroid/view/View;->computeVerticalScrollExtent()I HSPLandroid/view/View;->computeVerticalScrollOffset()I HSPLandroid/view/View;->computeVerticalScrollRange()I -HSPLandroid/view/View;->damageInParent()V +HSPLandroid/view/View;->damageInParent()V+]Landroid/view/ViewParent;missing_types HSPLandroid/view/View;->destroyDrawingCache()V HSPLandroid/view/View;->destroyHardwareResources()V -HSPLandroid/view/View;->dispatchApplyWindowInsets(Landroid/view/WindowInsets;)Landroid/view/WindowInsets; -HSPLandroid/view/View;->dispatchAttachedToWindow(Landroid/view/View$AttachInfo;I)V +HSPLandroid/view/View;->dispatchApplyWindowInsets(Landroid/view/WindowInsets;)Landroid/view/WindowInsets;+]Landroid/view/View;missing_types +HSPLandroid/view/View;->dispatchAttachedToWindow(Landroid/view/View$AttachInfo;I)V+]Landroid/view/View;missing_types]Landroid/view/HandlerActionQueue;Landroid/view/HandlerActionQueue;]Landroid/view/ViewTreeObserver;Landroid/view/ViewTreeObserver;]Ljava/util/concurrent/CopyOnWriteArrayList;Ljava/util/concurrent/CopyOnWriteArrayList;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/concurrent/CopyOnWriteArrayList$COWIterator;]Landroid/view/ViewOverlay;Landroid/view/ViewGroupOverlay;]Landroid/view/ViewGroup;Landroid/view/ViewOverlay$OverlayViewGroup; HSPLandroid/view/View;->dispatchCancelPendingInputEvents()V -HSPLandroid/view/View;->dispatchCollectViewAttributes(Landroid/view/View$AttachInfo;I)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 +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/concurrent/CopyOnWriteArrayList;Ljava/util/concurrent/CopyOnWriteArrayList;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/view/View$OnAttachStateChangeListener;missing_types]Ljava/util/Iterator;Ljava/util/concurrent/CopyOnWriteArrayList$COWIterator;]Landroid/view/ViewOverlay;Landroid/view/ViewGroupOverlay;]Landroid/view/ViewGroup;Landroid/view/ViewOverlay$OverlayViewGroup; HSPLandroid/view/View;->dispatchDraw(Landroid/graphics/Canvas;)V HSPLandroid/view/View;->dispatchDrawableHotspotChanged(FF)V HSPLandroid/view/View;->dispatchFinishTemporaryDetach()V @@ -17116,8 +17122,8 @@ 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+]Landroid/view/MotionEvent;Landroid/view/MotionEvent; -HSPLandroid/view/View;->dispatchVisibilityAggregated(Z)Z +HSPLandroid/view/View;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z+]Landroid/view/View;missing_types]Landroid/view/MotionEvent;Landroid/view/MotionEvent; +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 @@ -17126,10 +17132,10 @@ HSPLandroid/view/View;->dispatchWindowVisibilityChanged(I)V HSPLandroid/view/View;->draw(Landroid/graphics/Canvas;)V HSPLandroid/view/View;->draw(Landroid/graphics/Canvas;Landroid/view/ViewGroup;J)Z+]Landroid/view/View;missing_types]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;]Landroid/graphics/RecordingCanvas;Landroid/graphics/RecordingCanvas;]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas; HSPLandroid/view/View;->drawAutofilledHighlight(Landroid/graphics/Canvas;)V+]Landroid/view/View;missing_types -HSPLandroid/view/View;->drawBackground(Landroid/graphics/Canvas;)V +HSPLandroid/view/View;->drawBackground(Landroid/graphics/Canvas;)V+]Landroid/view/View;missing_types]Landroid/graphics/RecordingCanvas;Landroid/graphics/RecordingCanvas;]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;]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 +HSPLandroid/view/View;->drawableStateChanged()V+]Landroid/animation/StateListAnimator;Landroid/animation/StateListAnimator;]Landroid/view/View;missing_types]Landroid/graphics/drawable/Drawable;missing_types 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; @@ -17139,7 +17145,7 @@ 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;->findViewById(I)Landroid/view/View;+]Landroid/view/View;megamorphic_types 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; @@ -17159,7 +17165,7 @@ HSPLandroid/view/View;->getAndCacheContentCaptureSession()Landroid/view/contentc 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;->getAutofillId()Landroid/view/autofill/AutofillId;+]Landroid/view/View;missing_types HSPLandroid/view/View;->getAutofillType()I HSPLandroid/view/View;->getAutofillViewId()I HSPLandroid/view/View;->getBackground()Landroid/graphics/drawable/Drawable; @@ -17174,12 +17180,12 @@ HSPLandroid/view/View;->getContentDescription()Ljava/lang/CharSequence; HSPLandroid/view/View;->getContext()Landroid/content/Context; HSPLandroid/view/View;->getDefaultSize(II)I HSPLandroid/view/View;->getDisplay()Landroid/view/Display; -HSPLandroid/view/View;->getDrawableRenderNode(Landroid/graphics/drawable/Drawable;Landroid/graphics/RenderNode;)Landroid/graphics/RenderNode; -HSPLandroid/view/View;->getDrawableState()[I +HSPLandroid/view/View;->getDrawableRenderNode(Landroid/graphics/drawable/Drawable;Landroid/graphics/RenderNode;)Landroid/graphics/RenderNode;+]Ljava/lang/Object;megamorphic_types]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/RecordingCanvas;Landroid/graphics/RecordingCanvas;]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;]Ljava/lang/Class;Ljava/lang/Class;]Landroid/graphics/drawable/Drawable;megamorphic_types +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;->getElevation()F+]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; HSPLandroid/view/View;->getFilterTouchesWhenObscured()Z HSPLandroid/view/View;->getFinalAlpha()F HSPLandroid/view/View;->getFitsSystemWindows()Z @@ -17189,7 +17195,7 @@ 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;->getGlobalVisibleRect(Landroid/graphics/Rect;Landroid/graphics/Point;)Z+]Landroid/graphics/Point;Landroid/graphics/Point;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/view/ViewParent;Landroid/widget/FrameLayout; HSPLandroid/view/View;->getHandler()Landroid/os/Handler; HSPLandroid/view/View;->getHasOverlappingRendering()Z+]Landroid/view/View;missing_types HSPLandroid/view/View;->getHeight()I @@ -17204,7 +17210,7 @@ HSPLandroid/view/View;->getImportantForContentCapture()I HSPLandroid/view/View;->getInverseMatrix()Landroid/graphics/Matrix; HSPLandroid/view/View;->getKeyDispatcherState()Landroid/view/KeyEvent$DispatcherState; HSPLandroid/view/View;->getLayerType()I -HSPLandroid/view/View;->getLayoutDirection()I+]Landroid/view/View;missing_types]Landroid/content/Context;missing_types +HSPLandroid/view/View;->getLayoutDirection()I+]Landroid/view/View;megamorphic_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; @@ -17213,7 +17219,7 @@ HSPLandroid/view/View;->getLocationInSurface([I)V HSPLandroid/view/View;->getLocationInWindow([I)V HSPLandroid/view/View;->getLocationOnScreen()[I HSPLandroid/view/View;->getLocationOnScreen([I)V+]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; -HSPLandroid/view/View;->getMatrix()Landroid/graphics/Matrix;+]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; +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 @@ -17225,14 +17231,14 @@ 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;->getPaddingLeft()I+]Landroid/view/View;missing_types +HSPLandroid/view/View;->getPaddingRight()I+]Landroid/view/View;missing_types 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;->getProjectionReceiver()Landroid/view/View;+]Landroid/view/View;missing_types]Landroid/view/ViewParent;missing_types HSPLandroid/view/View;->getRawLayoutDirection()I HSPLandroid/view/View;->getRawTextAlignment()I HSPLandroid/view/View;->getRawTextDirection()I @@ -17251,9 +17257,9 @@ 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 -HSPLandroid/view/View;->getSuggestedMinimumHeight()I+]Landroid/graphics/drawable/Drawable;missing_types -HSPLandroid/view/View;->getSuggestedMinimumWidth()I+]Landroid/graphics/drawable/Drawable;missing_types +HSPLandroid/view/View;->getStraightVerticalScrollBarBounds(Landroid/graphics/Rect;Landroid/graphics/Rect;)V+]Landroid/view/View;missing_types +HSPLandroid/view/View;->getSuggestedMinimumHeight()I+]Landroid/graphics/drawable/Drawable;megamorphic_types +HSPLandroid/view/View;->getSuggestedMinimumWidth()I+]Landroid/graphics/drawable/Drawable;megamorphic_types HSPLandroid/view/View;->getSystemGestureExclusionRects()Ljava/util/List; HSPLandroid/view/View;->getSystemUiVisibility()I HSPLandroid/view/View;->getTag()Ljava/lang/Object; @@ -17266,7 +17272,7 @@ HSPLandroid/view/View;->getTransitionAlpha()F HSPLandroid/view/View;->getTransitionName()Ljava/lang/String; HSPLandroid/view/View;->getTranslationX()F HSPLandroid/view/View;->getTranslationY()F -HSPLandroid/view/View;->getTranslationZ()F +HSPLandroid/view/View;->getTranslationZ()F+]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; HSPLandroid/view/View;->getVerticalFadingEdgeLength()I HSPLandroid/view/View;->getVerticalScrollbarWidth()I HSPLandroid/view/View;->getViewRootImpl()Landroid/view/ViewRootImpl; @@ -17283,11 +17289,11 @@ 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;->getZ()F+]Landroid/view/View;megamorphic_types 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;->hasDefaultFocus()Z+]Landroid/view/View;missing_types HSPLandroid/view/View;->hasExplicitFocusable()Z HSPLandroid/view/View;->hasFocus()Z HSPLandroid/view/View;->hasFocusable()Z @@ -17298,7 +17304,7 @@ 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;->hasRtlSupport()Z+]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Landroid/content/Context;missing_types HSPLandroid/view/View;->hasSize()Z HSPLandroid/view/View;->hasTransientState()Z HSPLandroid/view/View;->hasTranslationTransientState()Z @@ -17311,22 +17317,22 @@ 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 +HSPLandroid/view/View;->initialAwakenScrollBars()Z+]Landroid/view/View;missing_types 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 -HSPLandroid/view/View;->invalidate(IIII)V +HSPLandroid/view/View;->initializeScrollbarsInternal(Landroid/content/res/TypedArray;)V+]Landroid/view/View;missing_types]Landroid/widget/ScrollBarDrawable;Landroid/widget/ScrollBarDrawable;]Landroid/view/ViewConfiguration;Landroid/view/ViewConfiguration;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/GradientDrawable; +HSPLandroid/view/View;->internalSetPadding(IIII)V+]Landroid/view/View;missing_types +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 -HSPLandroid/view/View;->invalidate(Z)V -HSPLandroid/view/View;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/view/View;->invalidateInternal(IIIIZZ)V -HSPLandroid/view/View;->invalidateOutline()V +HSPLandroid/view/View;->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;missing_types]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/view/ViewParent;missing_types]Landroid/graphics/drawable/Drawable;missing_types +HSPLandroid/view/View;->invalidateOutline()V+]Landroid/view/View;missing_types HSPLandroid/view/View;->invalidateParentCaches()V HSPLandroid/view/View;->invalidateParentIfNeeded()V HSPLandroid/view/View;->invalidateParentIfNeededAndWasQuickRejected()V -HSPLandroid/view/View;->invalidateViewProperty(ZZ)V +HSPLandroid/view/View;->invalidateViewProperty(ZZ)V+]Landroid/view/View;missing_types]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; HSPLandroid/view/View;->isAccessibilityFocused()Z HSPLandroid/view/View;->isAccessibilityFocusedViewOrHost()Z HSPLandroid/view/View;->isAccessibilityPane()Z @@ -17335,7 +17341,7 @@ HSPLandroid/view/View;->isActivated()Z HSPLandroid/view/View;->isAggregatedVisible()Z HSPLandroid/view/View;->isAttachedToWindow()Z HSPLandroid/view/View;->isAutoHandwritingEnabled()Z -HSPLandroid/view/View;->isAutofillable()Z +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 @@ -17353,7 +17359,7 @@ HSPLandroid/view/View;->isHardwareAccelerated()Z HSPLandroid/view/View;->isHorizontalFadingEdgeEnabled()Z HSPLandroid/view/View;->isHorizontalScrollBarEnabled()Z HSPLandroid/view/View;->isImportantForAccessibility()Z -HSPLandroid/view/View;->isImportantForAutofill()Z +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 @@ -17361,11 +17367,11 @@ 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;->isLayoutDirectionInherited()Z+]Landroid/view/View;missing_types 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;->isLayoutRtl()Z+]Landroid/view/View;missing_types HSPLandroid/view/View;->isLayoutValid()Z+]Landroid/view/View;missing_types HSPLandroid/view/View;->isLongClickable()Z HSPLandroid/view/View;->isNestedScrollingEnabled()Z @@ -17374,23 +17380,23 @@ 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;->isRtlCompatibilityMode()Z+]Landroid/view/View;missing_types]Landroid/content/Context;missing_types 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;->isTextAlignmentInherited()Z+]Landroid/view/View;missing_types HSPLandroid/view/View;->isTextAlignmentResolved()Z -HSPLandroid/view/View;->isTextDirectionInherited()Z +HSPLandroid/view/View;->isTextDirectionInherited()Z+]Landroid/view/View;missing_types 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;->isVisibleToUser(Landroid/graphics/Rect;)Z+]Landroid/view/View;missing_types +HSPLandroid/view/View;->jumpDrawablesToCurrentState()V+]Landroid/graphics/drawable/Drawable;megamorphic_types]Landroid/animation/StateListAnimator;Landroid/animation/StateListAnimator; 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 @@ -17400,32 +17406,32 @@ HSPLandroid/view/View;->measure(II)V+]Landroid/view/View;missing_types]Landroid/ 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;->notifyAppearedOrDisappearedForContentCaptureIfNeeded(Z)V+]Landroid/view/View;missing_types]Landroid/content/Context;missing_types HSPLandroid/view/View;->notifyAutofillManagerOnClick()V -HSPLandroid/view/View;->notifyEnterOrExitForAutoFillIfNeeded(Z)V +HSPLandroid/view/View;->notifyEnterOrExitForAutoFillIfNeeded(Z)V+]Landroid/view/View;missing_types]Landroid/view/autofill/AutofillManager;Landroid/view/autofill/AutofillManager; 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;->notifySubtreeAccessibilityStateChangedIfNeeded()V+]Landroid/view/accessibility/AccessibilityManager;Landroid/view/accessibility/AccessibilityManager; +HSPLandroid/view/View;->notifyViewAccessibilityStateChangedIfNeeded(I)V+]Landroid/view/accessibility/AccessibilityManager;Landroid/view/accessibility/AccessibilityManager; HSPLandroid/view/View;->offsetLeftAndRight(I)V -HSPLandroid/view/View;->offsetTopAndBottom(I)V +HSPLandroid/view/View;->offsetTopAndBottom(I)V+]Landroid/view/View;missing_types]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; 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 +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 +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 +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 +HSPLandroid/view/View;->onDrawForeground(Landroid/graphics/Canvas;)V+]Landroid/view/View;missing_types]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/drawable/Drawable;missing_types HSPLandroid/view/View;->onDrawHorizontalScrollBar(Landroid/graphics/Canvas;Landroid/graphics/drawable/Drawable;IIII)V -HSPLandroid/view/View;->onDrawScrollBars(Landroid/graphics/Canvas;)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 HSPLandroid/view/View;->onFilterTouchEventForSecurity(Landroid/view/MotionEvent;)Z @@ -17441,7 +17447,7 @@ HSPLandroid/view/View;->onMeasure(II)V HSPLandroid/view/View;->onProvideAutofillStructure(Landroid/view/ViewStructure;I)V HSPLandroid/view/View;->onProvideAutofillVirtualStructure(Landroid/view/ViewStructure;I)V HSPLandroid/view/View;->onProvideContentCaptureStructure(Landroid/view/ViewStructure;I)V -HSPLandroid/view/View;->onProvideStructure(Landroid/view/ViewStructure;II)V +HSPLandroid/view/View;->onProvideStructure(Landroid/view/ViewStructure;II)V+]Landroid/view/View;missing_types]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/view/ViewStructure;Landroid/view/contentcapture/ViewNode$ViewStructureImpl;,Landroid/app/assist/AssistStructure$ViewNodeBuilder;]Ljava/lang/CharSequence;Ljava/lang/String; HSPLandroid/view/View;->onResolveDrawables(I)V HSPLandroid/view/View;->onRestoreInstanceState(Landroid/os/Parcelable;)V HSPLandroid/view/View;->onRtlPropertiesChanged(I)V @@ -17452,7 +17458,7 @@ HSPLandroid/view/View;->onSetAlpha(I)Z HSPLandroid/view/View;->onSizeChanged(IIII)V HSPLandroid/view/View;->onStartTemporaryDetach()V HSPLandroid/view/View;->onTouchEvent(Landroid/view/MotionEvent;)Z -HSPLandroid/view/View;->onVisibilityAggregated(Z)V +HSPLandroid/view/View;->onVisibilityAggregated(Z)V+]Landroid/view/View;missing_types]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;]Landroid/graphics/drawable/Drawable;megamorphic_types]Landroid/view/autofill/AutofillManager;Landroid/view/autofill/AutofillManager;]Landroid/os/Handler;Landroid/view/View$VisibilityChangeForAutofillHandler;]Landroid/os/Message;Landroid/os/Message; HSPLandroid/view/View;->onVisibilityChanged(Landroid/view/View;I)V HSPLandroid/view/View;->onWindowFocusChanged(Z)V HSPLandroid/view/View;->onWindowSystemUiVisibilityChanged(I)V @@ -17473,20 +17479,20 @@ HSPLandroid/view/View;->post(Ljava/lang/Runnable;)Z HSPLandroid/view/View;->postDelayed(Ljava/lang/Runnable;J)Z HSPLandroid/view/View;->postInvalidate()V HSPLandroid/view/View;->postInvalidateDelayed(J)V -HSPLandroid/view/View;->postInvalidateOnAnimation()V +HSPLandroid/view/View;->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;->postSendViewScrolledAccessibilityEventCallback(II)V+]Landroid/view/accessibility/AccessibilityManager;Landroid/view/accessibility/AccessibilityManager; HSPLandroid/view/View;->postUpdate(Ljava/lang/Runnable;)V -HSPLandroid/view/View;->rebuildOutline()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;->refreshDrawableState()V+]Landroid/view/View;missing_types]Landroid/view/ViewParent;missing_types HSPLandroid/view/View;->registerPendingFrameMetricsObservers()V -HSPLandroid/view/View;->removeCallbacks(Ljava/lang/Runnable;)Z +HSPLandroid/view/View;->removeCallbacks(Ljava/lang/Runnable;)Z+]Landroid/os/Handler;Landroid/view/ViewRootImpl$ViewRootHandler;]Landroid/view/HandlerActionQueue;Landroid/view/HandlerActionQueue;]Landroid/view/Choreographer;Landroid/view/Choreographer; 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;->removeOnLayoutChangeListener(Landroid/view/View$OnLayoutChangeListener;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/view/View;->removePerformClickCallback()V HSPLandroid/view/View;->removeTapCallback()V HSPLandroid/view/View;->removeUnsetPressCallback()V @@ -17500,26 +17506,26 @@ HSPLandroid/view/View;->requestLayout()V+]Landroid/view/View;missing_types]Landr 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;->resetDisplayList()V+]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; HSPLandroid/view/View;->resetPressedState()V -HSPLandroid/view/View;->resetResolvedDrawables()V +HSPLandroid/view/View;->resetResolvedDrawables()V+]Landroid/view/View;missing_types HSPLandroid/view/View;->resetResolvedDrawablesInternal()V HSPLandroid/view/View;->resetResolvedLayoutDirection()V -HSPLandroid/view/View;->resetResolvedPadding()V +HSPLandroid/view/View;->resetResolvedPadding()V+]Landroid/view/View;missing_types HSPLandroid/view/View;->resetResolvedPaddingInternal()V HSPLandroid/view/View;->resetResolvedTextAlignment()V HSPLandroid/view/View;->resetResolvedTextDirection()V -HSPLandroid/view/View;->resetRtlProperties()V +HSPLandroid/view/View;->resetRtlProperties()V+]Landroid/view/View;missing_types HSPLandroid/view/View;->resetSubtreeAccessibilityStateChanged()V -HSPLandroid/view/View;->resolveDrawables()V -HSPLandroid/view/View;->resolveLayoutDirection()Z +HSPLandroid/view/View;->resolveDrawables()V+]Landroid/view/View;missing_types]Landroid/graphics/drawable/Drawable;megamorphic_types +HSPLandroid/view/View;->resolveLayoutDirection()Z+]Landroid/view/View;missing_types]Landroid/view/ViewParent;missing_types HSPLandroid/view/View;->resolveLayoutParams()V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup$LayoutParams;missing_types -HSPLandroid/view/View;->resolvePadding()V -HSPLandroid/view/View;->resolveRtlPropertiesIfNeeded()Z +HSPLandroid/view/View;->resolvePadding()V+]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal$SuppliedThreadLocal;]Landroid/graphics/drawable/Drawable;missing_types]Landroid/view/View;missing_types +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;->resolveTextAlignment()Z+]Landroid/view/View;missing_types +HSPLandroid/view/View;->resolveTextDirection()Z+]Landroid/view/View;missing_types]Landroid/view/ViewParent;missing_types 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 @@ -17531,7 +17537,7 @@ HSPLandroid/view/View;->scheduleDrawable(Landroid/graphics/drawable/Drawable;Lja 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;->sendAccessibilityEventInternal(I)V+]Landroid/view/accessibility/AccessibilityManager;Landroid/view/accessibility/AccessibilityManager; HSPLandroid/view/View;->setAccessibilityDelegate(Landroid/view/View$AccessibilityDelegate;)V HSPLandroid/view/View;->setAccessibilityHeading(Z)V HSPLandroid/view/View;->setAccessibilityLiveRegion(I)V @@ -17546,17 +17552,17 @@ 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 +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 -HSPLandroid/view/View;->setBackgroundRenderNodeProperties(Landroid/graphics/RenderNode;)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;megamorphic_types +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;->setContentDescription(Ljava/lang/CharSequence;)V+]Ljava/lang/CharSequence;Ljava/lang/String;,Ljava/lang/StringBuilder;]Landroid/view/View;missing_types]Ljava/lang/Object;Ljava/lang/StringBuilder;,Ljava/lang/String; 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; @@ -17564,7 +17570,7 @@ 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 +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 @@ -17577,7 +17583,7 @@ 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;->setImportantForAccessibility(I)V+]Landroid/view/View;missing_types HSPLandroid/view/View;->setImportantForAutofill(I)V HSPLandroid/view/View;->setImportantForContentCapture(I)V HSPLandroid/view/View;->setIsRootNamespace(Z)V @@ -17587,7 +17593,7 @@ HSPLandroid/view/View;->setKeyedTag(ILjava/lang/Object;)V HSPLandroid/view/View;->setLayerPaint(Landroid/graphics/Paint;)V HSPLandroid/view/View;->setLayerType(ILandroid/graphics/Paint;)V HSPLandroid/view/View;->setLayoutDirection(I)V -HSPLandroid/view/View;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V +HSPLandroid/view/View;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types HSPLandroid/view/View;->setLeft(I)V HSPLandroid/view/View;->setLeftTopRightBottom(IIII)V HSPLandroid/view/View;->setLongClickable(Z)V @@ -17612,7 +17618,7 @@ 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;->setPadding(IIII)V+]Landroid/view/View;missing_types HSPLandroid/view/View;->setPaddingRelative(IIII)V HSPLandroid/view/View;->setPivotX(F)V HSPLandroid/view/View;->setPivotY(F)V @@ -17641,7 +17647,7 @@ 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;->setTooltipText(Ljava/lang/CharSequence;)V+]Landroid/view/ViewConfiguration;Landroid/view/ViewConfiguration; HSPLandroid/view/View;->setTop(I)V HSPLandroid/view/View;->setTouchDelegate(Landroid/view/TouchDelegate;)V HSPLandroid/view/View;->setTransitionAlpha(F)V @@ -17651,23 +17657,24 @@ HSPLandroid/view/View;->setTranslationX(F)V HSPLandroid/view/View;->setTranslationY(F)V HSPLandroid/view/View;->setTranslationZ(F)V HSPLandroid/view/View;->setVerticalScrollBarEnabled(Z)V -HSPLandroid/view/View;->setVisibility(I)V +HSPLandroid/view/View;->setVisibility(I)V+]Landroid/view/View;missing_types 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 +HSPLandroid/view/View;->sizeChange(IIII)V+]Landroid/view/View;missing_types]Landroid/view/ViewOverlay;Landroid/view/ViewGroupOverlay;]Landroid/view/ViewGroup;missing_types +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;->transformFromViewToWindowSpace([I)V+]Landroid/view/View;megamorphic_types]Landroid/graphics/Matrix;Landroid/graphics/Matrix; +HSPLandroid/view/View;->transformMatrixToGlobal(Landroid/graphics/Matrix;)V+]Landroid/view/View;missing_types]Landroid/graphics/Matrix;Landroid/graphics/Matrix;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; 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;missing_types]Landroid/graphics/RecordingCanvas;Landroid/graphics/RecordingCanvas;]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; +HSPLandroid/view/View;->updateDisplayListIfDirty()Landroid/graphics/RenderNode;+]Landroid/view/ViewOverlay;Landroid/view/ViewGroupOverlay;]Landroid/view/View;missing_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 @@ -17683,7 +17690,7 @@ 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;->get(Landroid/content/Context;)Landroid/view/ViewConfiguration;+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/content/Context;missing_types HSPLandroid/view/ViewConfiguration;->getDoubleTapTimeout()I HSPLandroid/view/ViewConfiguration;->getLongPressTimeout()I HSPLandroid/view/ViewConfiguration;->getPressedStateDuration()I @@ -17730,7 +17737,7 @@ 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$LayoutParams;->setBaseAttributes(Landroid/content/res/TypedArray;II)V+]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; 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/Context;missing_types]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; HSPLandroid/view/ViewGroup$MarginLayoutParams;-><init>(Landroid/view/ViewGroup$LayoutParams;)V @@ -17756,14 +17763,14 @@ 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;I)V+]Landroid/view/View;missing_types 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;->addView(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V+]Landroid/view/ViewGroup;missing_types +HSPLandroid/view/ViewGroup;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V+]Landroid/view/ViewGroup;missing_types 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;->addViewInner(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;Z)V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types]Landroid/animation/LayoutTransition;Landroid/animation/LayoutTransition; +HSPLandroid/view/ViewGroup;->attachViewToParent(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V+]Landroid/view/View;missing_types HSPLandroid/view/ViewGroup;->bringChildToFront(Landroid/view/View;)V HSPLandroid/view/ViewGroup;->buildOrderedChildList()Ljava/util/ArrayList; HSPLandroid/view/ViewGroup;->buildTouchDispatchChildList()Ljava/util/ArrayList; @@ -17780,20 +17787,20 @@ 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;->destroyHardwareResources()V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types 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;->dispatchAttachedToWindow(Landroid/view/View$AttachInfo;I)V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types HSPLandroid/view/ViewGroup;->dispatchCancelPendingInputEvents()V -HSPLandroid/view/ViewGroup;->dispatchCollectViewAttributes(Landroid/view/View$AttachInfo;I)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;->dispatchDetachedFromWindow()V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types 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 +HSPLandroid/view/ViewGroup;->dispatchGetDisplayList()V+]Landroid/view/ViewOverlay;Landroid/view/ViewGroupOverlay;]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 @@ -17807,17 +17814,17 @@ 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/View;missing_types]Landroid/view/ViewGroup;missing_types]Landroid/view/MotionEvent;Landroid/view/MotionEvent;]Landroid/view/ViewGroup$TouchTarget;Landroid/view/ViewGroup$TouchTarget; +HSPLandroid/view/ViewGroup;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z+]Landroid/view/View;megamorphic_types]Landroid/view/ViewGroup;megamorphic_types]Landroid/view/MotionEvent;Landroid/view/MotionEvent;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/view/ViewGroup$TouchTarget;Landroid/view/ViewGroup$TouchTarget; 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;->dispatchViewAdded(Landroid/view/View;)V+]Landroid/view/ViewGroup;missing_types HSPLandroid/view/ViewGroup;->dispatchViewRemoved(Landroid/view/View;)V -HSPLandroid/view/ViewGroup;->dispatchVisibilityAggregated(Z)Z -HSPLandroid/view/ViewGroup;->dispatchVisibilityChanged(Landroid/view/View;I)V -HSPLandroid/view/ViewGroup;->dispatchWindowFocusChanged(Z)V +HSPLandroid/view/ViewGroup;->dispatchVisibilityAggregated(Z)Z+]Landroid/view/View;missing_types +HSPLandroid/view/ViewGroup;->dispatchVisibilityChanged(Landroid/view/View;I)V+]Landroid/view/View;missing_types +HSPLandroid/view/ViewGroup;->dispatchWindowFocusChanged(Z)V+]Landroid/view/View;missing_types HSPLandroid/view/ViewGroup;->dispatchWindowInsetsAnimationEnd(Landroid/view/WindowInsetsAnimation;)V HSPLandroid/view/ViewGroup;->dispatchWindowSystemUiVisiblityChanged(I)V -HSPLandroid/view/ViewGroup;->dispatchWindowVisibilityChanged(I)V +HSPLandroid/view/ViewGroup;->dispatchWindowVisibilityChanged(I)V+]Landroid/view/View;missing_types 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 @@ -17827,23 +17834,23 @@ 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;->findViewTraversal(I)Landroid/view/View;+]Landroid/view/View;missing_types 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;->gatherTransparentRegion(Landroid/graphics/Region;)Z+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types]Ljava/util/ArrayList;Ljava/util/ArrayList; 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; +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 +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;]Landroid/graphics/Matrix;Landroid/graphics/Matrix; HSPLandroid/view/ViewGroup;->getChildrenForAutofill(I)Landroid/view/ViewGroup$ChildListForAutoFillOrContentCapture; HSPLandroid/view/ViewGroup;->getChildrenForContentCapture()Landroid/view/ViewGroup$ChildListForAutoFillOrContentCapture; HSPLandroid/view/ViewGroup;->getClipChildren()Z @@ -17860,7 +17867,7 @@ HSPLandroid/view/ViewGroup;->getTouchTarget(Landroid/view/View;)Landroid/view/Vi 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;->hasChildWithZ()Z+]Landroid/view/View;missing_types HSPLandroid/view/ViewGroup;->hasDefaultFocus()Z HSPLandroid/view/ViewGroup;->hasFocus()Z HSPLandroid/view/ViewGroup;->hasFocusable(ZZ)Z @@ -17869,25 +17876,25 @@ 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;->initFromAttributes(Landroid/content/Context;Landroid/util/AttributeSet;II)V+]Landroid/view/ViewGroup;missing_types]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Landroid/content/Context;missing_types +HSPLandroid/view/ViewGroup;->initViewGroup()V+]Landroid/view/ViewGroup;missing_types]Landroid/content/Context;missing_types HSPLandroid/view/ViewGroup;->internalSetPadding(IIII)V -HSPLandroid/view/ViewGroup;->invalidateChild(Landroid/view/View;Landroid/graphics/Rect;)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;->jumpDrawablesToCurrentState()V+]Landroid/view/View;missing_types +HSPLandroid/view/ViewGroup;->layout(IIII)V+]Landroid/animation/LayoutTransition;Landroid/animation/LayoutTransition; 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;->notifySubtreeAccessibilityStateChangedIfNeeded()V+]Landroid/view/accessibility/AccessibilityManager;Landroid/view/accessibility/AccessibilityManager; 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 @@ -17915,7 +17922,7 @@ 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(ILandroid/view/View;)V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types 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 @@ -17924,20 +17931,20 @@ 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;->resetResolvedDrawables()V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types +HSPLandroid/view/ViewGroup;->resetResolvedLayoutDirection()V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types +HSPLandroid/view/ViewGroup;->resetResolvedPadding()V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types +HSPLandroid/view/ViewGroup;->resetResolvedTextAlignment()V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types +HSPLandroid/view/ViewGroup;->resetResolvedTextDirection()V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types +HSPLandroid/view/ViewGroup;->resetSubtreeAccessibilityStateChanged()V+]Landroid/view/View;missing_types HSPLandroid/view/ViewGroup;->resetTouchState()V -HSPLandroid/view/ViewGroup;->resolveDrawables()V -HSPLandroid/view/ViewGroup;->resolveLayoutDirection()Z +HSPLandroid/view/ViewGroup;->resolveDrawables()V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types +HSPLandroid/view/ViewGroup;->resolveLayoutDirection()Z+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types HSPLandroid/view/ViewGroup;->resolveLayoutParams()V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types -HSPLandroid/view/ViewGroup;->resolvePadding()V +HSPLandroid/view/ViewGroup;->resolvePadding()V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types 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;->resolveTextAlignment()Z+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types +HSPLandroid/view/ViewGroup;->resolveTextDirection()Z+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types HSPLandroid/view/ViewGroup;->restoreDefaultFocus()Z HSPLandroid/view/ViewGroup;->setAddStatesFromChildren(Z)V HSPLandroid/view/ViewGroup;->setAlwaysDrawnWithCacheEnabled(Z)V @@ -17955,13 +17962,13 @@ 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;->touchAccessibilityNodeProviderIfNeeded(Landroid/view/View;)V+]Landroid/content/Context;missing_types 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 +HSPLandroid/view/ViewOutlineProvider$1;->getOutline(Landroid/view/View;Landroid/graphics/Outline;)V+]Landroid/view/View;missing_types]Landroid/graphics/Outline;Landroid/graphics/Outline;]Landroid/graphics/drawable/Drawable;megamorphic_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 @@ -17987,7 +17994,7 @@ HSPLandroid/view/ViewPropertyAnimator$AnimatorEventListener;-><init>(Landroid/vi HSPLandroid/view/ViewPropertyAnimator$AnimatorEventListener;->onAnimationCancel(Landroid/animation/Animator;)V HSPLandroid/view/ViewPropertyAnimator$AnimatorEventListener;->onAnimationEnd(Landroid/animation/Animator;)V HSPLandroid/view/ViewPropertyAnimator$AnimatorEventListener;->onAnimationStart(Landroid/animation/Animator;)V -HSPLandroid/view/ViewPropertyAnimator$AnimatorEventListener;->onAnimationUpdate(Landroid/animation/ValueAnimator;)V +HSPLandroid/view/ViewPropertyAnimator$AnimatorEventListener;->onAnimationUpdate(Landroid/animation/ValueAnimator;)V+]Ljava/util/HashMap;Ljava/util/HashMap;]Landroid/view/View;Landroid/widget/LinearLayout;,Landroid/widget/FrameLayout;]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 @@ -17995,7 +18002,7 @@ 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;->cancel()V+]Ljava/util/HashMap;Ljava/util/HashMap;]Landroid/view/View;missing_types]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/view/ViewPropertyAnimator;->getValue(I)F HSPLandroid/view/ViewPropertyAnimator;->scaleX(F)Landroid/view/ViewPropertyAnimator; HSPLandroid/view/ViewPropertyAnimator;->scaleY(F)Landroid/view/ViewPropertyAnimator; @@ -18005,7 +18012,7 @@ HSPLandroid/view/ViewPropertyAnimator;->setListener(Landroid/animation/Animator$ 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;->startAnimation()V+]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/ValueAnimator;Landroid/animation/ValueAnimator; 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; @@ -18054,19 +18061,19 @@ HSPLandroid/view/ViewRootImpl$InputMetricsListener;-><init>(Landroid/view/ViewRo HSPLandroid/view/ViewRootImpl$InputMetricsListener;->onFrameMetricsAvailable(I)V 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;->deliver(Landroid/view/ViewRootImpl$QueuedInputEvent;)V+]Landroid/view/ViewRootImpl$InputStage;Landroid/view/ViewRootImpl$NativePostImeInputStage;,Landroid/view/ViewRootImpl$ViewPostImeInputStage;,Landroid/view/ViewRootImpl$EarlyPostImeInputStage;,Landroid/view/ViewRootImpl$SyntheticInputStage; 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$InputStage;->shouldDropInputEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)Z+]Landroid/view/InputEvent;Landroid/view/MotionEvent; +HSPLandroid/view/ViewRootImpl$InputStage;->traceEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;J)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/view/InputEvent;Landroid/view/MotionEvent; HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;-><init>(Landroid/view/ViewRootImpl;)V -HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->addView(Landroid/view/View;)V -HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->postIfNeededLocked()V -HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->removeView(Landroid/view/View;)V -HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->run()V +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+]Ljava/util/ArrayList;Ljava/util/ArrayList; +HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->run()V+]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 @@ -18090,7 +18097,7 @@ HSPLandroid/view/ViewRootImpl$SyntheticTrackballHandler;-><init>(Landroid/view/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 +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 @@ -18120,7 +18127,8 @@ HSPLandroid/view/ViewRootImpl$WindowInputEventReceiver;-><init>(Landroid/view/Vi 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$WindowInputEventReceiver;->onInputEvent(Landroid/view/InputEvent;)V+]Landroid/view/InputEventCompatProcessor;Landroid/view/InputEventCompatProcessor;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; +HSPLandroid/view/ViewRootImpl;->$r8$lambda$cb26dxdYlLa0pFTTRhgboKYoMu0(Landroid/view/ViewRootImpl;)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 @@ -18129,23 +18137,23 @@ HSPLandroid/view/ViewRootImpl;->-$$Nest$mprofileRendering(Landroid/view/ViewRoot 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 +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 HSPLandroid/view/ViewRootImpl;->canResolveTextDirection()Z -HSPLandroid/view/ViewRootImpl;->cancelInvalidate(Landroid/view/View;)V +HSPLandroid/view/ViewRootImpl;->cancelInvalidate(Landroid/view/View;)V+]Landroid/view/ViewRootImpl$ViewRootHandler;Landroid/view/ViewRootImpl$ViewRootHandler;]Landroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;Landroid/view/ViewRootImpl$InvalidateOnAnimationRunnable; 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 +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 +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+]Landroid/view/ViewRootImpl$InputStage;Landroid/view/ViewRootImpl$EarlyPostImeInputStage;]Landroid/view/ViewRootImpl$QueuedInputEvent;Landroid/view/ViewRootImpl$QueuedInputEvent;]Landroid/view/InputEvent;Landroid/view/MotionEvent; HSPLandroid/view/ViewRootImpl;->destroyHardwareRenderer()V HSPLandroid/view/ViewRootImpl;->destroyHardwareResources()V @@ -18160,7 +18168,7 @@ 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 +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;->dispatchResized(Landroid/window/ClientWindowFrames;ZLandroid/util/MergedConfiguration;Landroid/view/InsetsState;ZZIIZ)V HSPLandroid/view/ViewRootImpl;->doConsumeBatchedInput(J)Z @@ -18173,7 +18181,7 @@ HSPLandroid/view/ViewRootImpl;->drawSoftware(Landroid/view/Surface;Landroid/view 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+]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;]Landroid/view/MotionEvent;Landroid/view/MotionEvent; +HSPLandroid/view/ViewRootImpl;->enqueueInputEvent(Landroid/view/InputEvent;Landroid/view/InputEventReceiver;IZ)V+]Ljava/lang/CharSequence;Ljava/lang/String;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;]Landroid/view/MotionEvent;Landroid/view/MotionEvent; HSPLandroid/view/ViewRootImpl;->ensureTouchMode(Z)Z HSPLandroid/view/ViewRootImpl;->ensureTouchModeLocally(Z)Z HSPLandroid/view/ViewRootImpl;->enterTouchMode()Z @@ -18190,9 +18198,9 @@ 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;->getDisplayId()I+]Landroid/view/Display;Landroid/view/Display; HSPLandroid/view/ViewRootImpl;->getHandwritingInitiator()Landroid/view/HandwritingInitiator; -HSPLandroid/view/ViewRootImpl;->getHostVisibility()I +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; @@ -18201,12 +18209,12 @@ HSPLandroid/view/ViewRootImpl;->getOnBackInvokedDispatcher()Landroid/window/Wind HSPLandroid/view/ViewRootImpl;->getOrCreateSurfaceSyncGroup()Landroid/window/SurfaceSyncGroup; HSPLandroid/view/ViewRootImpl;->getParent()Landroid/view/ViewParent; HSPLandroid/view/ViewRootImpl;->getRootMeasureSpec(III)I -HSPLandroid/view/ViewRootImpl;->getRunQueue()Landroid/view/HandlerActionQueue; +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; +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 @@ -18219,7 +18227,7 @@ HSPLandroid/view/ViewRootImpl;->handleContentCaptureFlush()V HSPLandroid/view/ViewRootImpl;->handleDispatchSystemUiVisibilityChanged()V HSPLandroid/view/ViewRootImpl;->handleResized(ILcom/android/internal/os/SomeArgs;)V HSPLandroid/view/ViewRootImpl;->handleWindowFocusChanged()V -HSPLandroid/view/ViewRootImpl;->invalidate()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 @@ -18233,7 +18241,6 @@ 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; @@ -18244,14 +18251,14 @@ 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 HSPLandroid/view/ViewRootImpl;->mergeWithNextTransaction(Landroid/view/SurfaceControl$Transaction;J)V -HSPLandroid/view/ViewRootImpl;->notifyContentCaptureEvents()V -HSPLandroid/view/ViewRootImpl;->notifyDrawStarted(Z)V +HSPLandroid/view/ViewRootImpl;->notifyContentCaptureEvents()V+]Landroid/view/View;missing_types]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/view/contentcapture/ContentCaptureManager;Landroid/view/contentcapture/ContentCaptureManager;]Landroid/view/contentcapture/ContentCaptureSession;Landroid/view/contentcapture/MainContentCaptureSession;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/view/contentcapture/MainContentCaptureSession;Landroid/view/contentcapture/MainContentCaptureSession; +HSPLandroid/view/ViewRootImpl;->notifyDrawStarted(Z)V+]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/view/ViewRootImpl;->notifyInsetsChanged()V -HSPLandroid/view/ViewRootImpl;->notifyRendererOfFramePending()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 +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 @@ -18263,7 +18270,7 @@ HSPLandroid/view/ViewRootImpl;->performDraw(Landroid/window/SurfaceSyncGroup;)Z+ HSPLandroid/view/ViewRootImpl;->performHapticFeedback(IZ)Z HSPLandroid/view/ViewRootImpl;->performLayout(Landroid/view/WindowManager$LayoutParams;II)V HSPLandroid/view/ViewRootImpl;->performMeasure(II)V -HSPLandroid/view/ViewRootImpl;->performTraversals()V +HSPLandroid/view/ViewRootImpl;->performTraversals()V+]Landroid/view/ViewTreeObserver;Landroid/view/ViewTreeObserver;]Landroid/view/View;missing_types]Landroid/graphics/Point;Landroid/graphics/Point;]Landroid/content/res/CompatibilityInfo;Landroid/content/res/CompatibilityInfo$1;]Landroid/view/HandlerActionQueue;Landroid/view/HandlerActionQueue;]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer;]Landroid/content/Context;missing_types]Landroid/view/SurfaceControl;Landroid/view/SurfaceControl;]Lcom/android/internal/view/RootViewSurfaceTaker;Lcom/android/internal/policy/DecorView;]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;]Landroid/graphics/Region;Landroid/graphics/Region;]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;]Landroid/window/SurfaceSyncGroup;Landroid/window/SurfaceSyncGroup;]Landroid/content/res/Configuration;Landroid/content/res/Configuration;]Landroid/view/DisplayAdjustments;Landroid/view/DisplayAdjustments;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/window/WindowOnBackInvokedDispatcher;Landroid/window/WindowOnBackInvokedDispatcher;]Landroid/view/Display;Landroid/view/Display;]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction; HSPLandroid/view/ViewRootImpl;->playSoundEffect(I)V HSPLandroid/view/ViewRootImpl;->pokeDrawLockIfNeeded()V HSPLandroid/view/ViewRootImpl;->prepareSurfaces()V @@ -18288,7 +18295,7 @@ HSPLandroid/view/ViewRootImpl;->requestChildRectangleOnScreen(Landroid/view/View HSPLandroid/view/ViewRootImpl;->requestDisallowInterceptTouchEvent(Z)V HSPLandroid/view/ViewRootImpl;->requestFitSystemWindows()V HSPLandroid/view/ViewRootImpl;->requestLayout()V -HSPLandroid/view/ViewRootImpl;->requestLayoutDuringLayout(Landroid/view/View;)Z +HSPLandroid/view/ViewRootImpl;->requestLayoutDuringLayout(Landroid/view/View;)Z+]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/view/ViewRootImpl;->requestTransparentRegion(Landroid/view/View;)V HSPLandroid/view/ViewRootImpl;->scheduleConsumeBatchedInput()V+]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer;]Landroid/view/Choreographer;Landroid/view/Choreographer; 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; @@ -18299,7 +18306,7 @@ 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 -HSPLandroid/view/ViewRootImpl;->setLayoutParams(Landroid/view/WindowManager$LayoutParams;Z)V +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 @@ -18353,7 +18360,7 @@ 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;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V+]Landroid/content/Context;missing_types]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Landroid/view/ViewStub;Landroid/view/ViewStub; HSPLandroid/view/ViewStub;->inflate()Landroid/view/View; HSPLandroid/view/ViewStub;->setLayoutInflater(Landroid/view/LayoutInflater;)V HSPLandroid/view/ViewStub;->setLayoutResource(I)V @@ -18363,11 +18370,11 @@ 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;->add(Ljava/lang/Object;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList; +HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray;->addAll(Landroid/view/ViewTreeObserver$CopyOnWriteArray;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList; 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;->remove(Ljava/lang/Object;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList; 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 @@ -18378,9 +18385,9 @@ HSPLandroid/view/ViewTreeObserver$InternalInsetsInfo;->set(Landroid/view/ViewTre 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;->addOnDrawListener(Landroid/view/ViewTreeObserver$OnDrawListener;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/view/ViewTreeObserver;->addOnGlobalLayoutListener(Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V -HSPLandroid/view/ViewTreeObserver;->addOnPreDrawListener(Landroid/view/ViewTreeObserver$OnPreDrawListener;)V +HSPLandroid/view/ViewTreeObserver;->addOnPreDrawListener(Landroid/view/ViewTreeObserver$OnPreDrawListener;)V+]Landroid/view/ViewTreeObserver$CopyOnWriteArray;Landroid/view/ViewTreeObserver$CopyOnWriteArray; HSPLandroid/view/ViewTreeObserver;->addOnScrollChangedListener(Landroid/view/ViewTreeObserver$OnScrollChangedListener;)V HSPLandroid/view/ViewTreeObserver;->captureFrameCommitCallbacks()Ljava/util/ArrayList; HSPLandroid/view/ViewTreeObserver;->checkIsAlive()V @@ -18399,12 +18406,12 @@ 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;->merge(Landroid/view/ViewTreeObserver;)V+]Landroid/view/ViewTreeObserver$CopyOnWriteArray;Landroid/view/ViewTreeObserver$CopyOnWriteArray; 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;->removeOnDrawListener(Landroid/view/ViewTreeObserver$OnDrawListener;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/view/ViewTreeObserver;->removeOnGlobalLayoutListener(Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V -HSPLandroid/view/ViewTreeObserver;->removeOnPreDrawListener(Landroid/view/ViewTreeObserver$OnPreDrawListener;)V +HSPLandroid/view/ViewTreeObserver;->removeOnPreDrawListener(Landroid/view/ViewTreeObserver$OnPreDrawListener;)V+]Landroid/view/ViewTreeObserver$CopyOnWriteArray;Landroid/view/ViewTreeObserver$CopyOnWriteArray; HSPLandroid/view/ViewTreeObserver;->removeOnScrollChangedListener(Landroid/view/ViewTreeObserver$OnScrollChangedListener;)V HSPLandroid/view/Window;-><init>(Landroid/content/Context;)V HSPLandroid/view/Window;->addFlags(I)V @@ -18493,12 +18500,12 @@ 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;->getSystemWindowInsets()Landroid/graphics/Insets;+]Landroid/view/WindowInsets;Landroid/view/WindowInsets; +HSPLandroid/view/WindowInsets;->getSystemWindowInsetsAsRect()Landroid/graphics/Rect;+]Landroid/view/WindowInsets;Landroid/view/WindowInsets;]Landroid/graphics/Rect;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;->insetInsets([Landroid/graphics/Insets;IIII)[Landroid/graphics/Insets;+][Landroid/graphics/Insets;[Landroid/graphics/Insets; HSPLandroid/view/WindowInsets;->insetUnchecked(IIII)Landroid/view/WindowInsets; HSPLandroid/view/WindowInsets;->isConsumed()Z HSPLandroid/view/WindowInsets;->isRound()Z @@ -18518,7 +18525,7 @@ HSPLandroid/view/WindowManager$LayoutParams$1;->createFromParcel(Landroid/os/Par 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 +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 @@ -18533,7 +18540,7 @@ 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 +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 @@ -18594,7 +18601,7 @@ HSPLandroid/view/accessibility/AccessibilityManager;->getRecommendedTimeoutMilli HSPLandroid/view/accessibility/AccessibilityManager;->getServiceLocked()Landroid/view/accessibility/IAccessibilityManager; HSPLandroid/view/accessibility/AccessibilityManager;->hasAnyDirectConnection()Z HSPLandroid/view/accessibility/AccessibilityManager;->initialFocusAppearanceLocked(Landroid/content/res/Resources;)V -HSPLandroid/view/accessibility/AccessibilityManager;->isEnabled()Z +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 @@ -18610,8 +18617,8 @@ HSPLandroid/view/accessibility/AccessibilityManager;->updateFocusAppearanceLocke 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/AccessibilityNodeIdManager;->registerViewWithId(Landroid/view/View;I)V+]Landroid/view/accessibility/WeakSparseArray;Landroid/view/accessibility/WeakSparseArray; +HSPLandroid/view/accessibility/AccessibilityNodeIdManager;->unregisterViewWithId(I)V+]Landroid/view/accessibility/WeakSparseArray;Landroid/view/accessibility/WeakSparseArray; 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 @@ -18651,9 +18658,9 @@ HSPLandroid/view/accessibility/IAccessibilityManagerClient$Stub;->getTransaction 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/accessibility/WeakSparseArray;->append(ILjava/lang/Object;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray; +HSPLandroid/view/accessibility/WeakSparseArray;->remove(I)V+]Landroid/util/SparseArray;Landroid/util/SparseArray; +HSPLandroid/view/accessibility/WeakSparseArray;->removeUnreachableValues()V+]Ljava/lang/ref/ReferenceQueue;Ljava/lang/ref/ReferenceQueue; HSPLandroid/view/animation/AccelerateDecelerateInterpolator;-><init>()V HSPLandroid/view/animation/AccelerateDecelerateInterpolator;->createNativeInterpolator()J HSPLandroid/view/animation/AccelerateDecelerateInterpolator;->getInterpolation(F)F @@ -18681,12 +18688,12 @@ 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;->getInvalidateRegion(IIIILandroid/graphics/RectF;Landroid/view/animation/Transformation;)V+]Landroid/graphics/RectF;Landroid/graphics/RectF;]Landroid/graphics/Matrix;Landroid/graphics/Matrix;]Landroid/view/animation/Transformation;Landroid/view/animation/Transformation; 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;)Z+]Landroid/view/animation/Animation;missing_types]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard; 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;->getTransformationAt(FLandroid/view/animation/Transformation;)V+]Landroid/view/animation/Interpolator;missing_types HSPLandroid/view/animation/Animation;->hasAlpha()Z HSPLandroid/view/animation/Animation;->hasEnded()Z HSPLandroid/view/animation/Animation;->hasStarted()Z @@ -18721,7 +18728,7 @@ HSPLandroid/view/animation/AnimationSet;-><init>(Landroid/content/Context;Landro 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;->getTransformation(JLandroid/view/animation/Transformation;)Z+]Landroid/view/animation/AnimationSet;missing_types]Landroid/view/animation/Transformation;Landroid/view/animation/Transformation;]Landroid/view/animation/Animation;Landroid/view/animation/AnimationSet;,Landroid/view/animation/TranslateAnimation;]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/view/animation/AnimationSet;->hasAlpha()Z HSPLandroid/view/animation/AnimationSet;->init()V HSPLandroid/view/animation/AnimationSet;->initialize(IIII)V @@ -18743,12 +18750,12 @@ 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;->createInterpolatorFromXml(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Lorg/xmlpull/v1/XmlPullParser;)Landroid/view/animation/Interpolator;+]Ljava/lang/String;Ljava/lang/String;]Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/XmlBlock$Parser; +HSPLandroid/view/animation/AnimationUtils;->currentAnimationTimeMillis()J+]Ljava/lang/ThreadLocal;Landroid/view/animation/AnimationUtils$1; 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/Context;I)Landroid/view/animation/Interpolator;+]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/content/res/XmlResourceParser;Landroid/content/res/XmlBlock$Parser; HSPLandroid/view/animation/AnimationUtils;->loadInterpolator(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;I)Landroid/view/animation/Interpolator; -HSPLandroid/view/animation/AnimationUtils;->unlockAnimationClock()V +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 @@ -18763,12 +18770,12 @@ 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;-><init>(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;)V+]Landroid/view/animation/PathInterpolator;Landroid/view/animation/PathInterpolator;]Landroid/content/res/Resources$Theme;Landroid/content/res/Resources$Theme;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; HSPLandroid/view/animation/PathInterpolator;->createNativeInterpolator()J HSPLandroid/view/animation/PathInterpolator;->getInterpolation(F)F -HSPLandroid/view/animation/PathInterpolator;->initCubic(FFFF)V -HSPLandroid/view/animation/PathInterpolator;->initPath(Landroid/graphics/Path;)V -HSPLandroid/view/animation/PathInterpolator;->parseInterpolatorFromTypeArray(Landroid/content/res/TypedArray;)V +HSPLandroid/view/animation/PathInterpolator;->initCubic(FFFF)V+]Landroid/graphics/Path;Landroid/graphics/Path; +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+]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; 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 @@ -18776,16 +18783,16 @@ 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;->compose(Landroid/view/animation/Transformation;)V+]Landroid/graphics/Matrix;Landroid/graphics/Matrix;]Landroid/view/animation/Transformation;Landroid/view/animation/Transformation; 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;->set(Landroid/view/animation/Transformation;)V+]Landroid/graphics/Matrix;Landroid/graphics/Matrix;]Landroid/view/animation/Transformation;Landroid/view/animation/Transformation;]Landroid/graphics/Rect;Landroid/graphics/Rect; 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;->applyTransformation(FLandroid/view/animation/Transformation;)V+]Landroid/graphics/Matrix;Landroid/graphics/Matrix;]Landroid/view/animation/Transformation;Landroid/view/animation/Transformation; HSPLandroid/view/animation/TranslateAnimation;->initialize(IIII)V HSPLandroid/view/autofill/AutofillClientController;-><clinit>()V HSPLandroid/view/autofill/AutofillClientController;-><init>(Landroid/app/Activity;)V @@ -18831,7 +18838,8 @@ 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/AutofillId;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillId;]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/view/autofill/AutofillManager$$ExternalSyntheticLambda0;-><init>(Landroid/view/autofill/IAutoFillManager;Landroid/view/autofill/IAutoFillManagerClient;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; @@ -18858,7 +18866,7 @@ HSPLandroid/view/autofill/AutofillManager;->notifyViewEnteredForAugmentedAutofil 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;->notifyViewVisibilityChangedInternal(Landroid/view/View;IZZ)V+]Landroid/view/View;missing_types HSPLandroid/view/autofill/AutofillManager;->onActivityFinishing()V HSPLandroid/view/autofill/AutofillManager;->onInvisibleForAutofill(Z)V HSPLandroid/view/autofill/AutofillManager;->onSaveInstanceState(Landroid/os/Bundle;)V @@ -18891,7 +18899,7 @@ HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->getAutofillServiceCompon 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$Proxy;->updateSession(ILandroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;III)V+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel;]Landroid/view/autofill/IAutoFillManager$Stub$Proxy;Landroid/view/autofill/IAutoFillManager$Stub$Proxy; 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 @@ -18911,14 +18919,14 @@ HSPLandroid/view/contentcapture/ContentCaptureEvent;->setInsets(Landroid/graphic 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/ContentCaptureEvent;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; 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;->getMainContentCaptureSession()Landroid/view/contentcapture/MainContentCaptureSession; -HSPLandroid/view/contentcapture/ContentCaptureManager;->isContentCaptureEnabled()Z +HSPLandroid/view/contentcapture/ContentCaptureManager;->isContentCaptureEnabled()Z+]Landroid/view/contentcapture/MainContentCaptureSession;Landroid/view/contentcapture/MainContentCaptureSession; 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 @@ -18965,7 +18973,7 @@ HSPLandroid/view/contentcapture/MainContentCaptureSession$SessionStateReceiver;- 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;->flush(I)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/os/Handler;Landroid/os/Handler;]Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/atomic/AtomicBoolean;]Landroid/view/contentcapture/IContentCaptureDirectManager;Landroid/view/contentcapture/IContentCaptureDirectManager$Stub$Proxy;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/util/LocalLog;Landroid/util/LocalLog; HSPLandroid/view/contentcapture/MainContentCaptureSession;->flushIfNeeded(I)V HSPLandroid/view/contentcapture/MainContentCaptureSession;->getActivityName()Ljava/lang/String; HSPLandroid/view/contentcapture/MainContentCaptureSession;->getDebugState()Ljava/lang/String; @@ -18974,24 +18982,24 @@ HSPLandroid/view/contentcapture/MainContentCaptureSession;->hasStarted()Z HSPLandroid/view/contentcapture/MainContentCaptureSession;->internalNotifyViewAppeared(Landroid/view/contentcapture/ViewNode$ViewStructureImpl;)V HSPLandroid/view/contentcapture/MainContentCaptureSession;->internalNotifyViewTextChanged(Landroid/view/autofill/AutofillId;Ljava/lang/CharSequence;)V HSPLandroid/view/contentcapture/MainContentCaptureSession;->internalNotifyViewTreeEvent(Z)V -HSPLandroid/view/contentcapture/MainContentCaptureSession;->isContentCaptureEnabled()Z -HSPLandroid/view/contentcapture/MainContentCaptureSession;->isDisabled()Z -HSPLandroid/view/contentcapture/MainContentCaptureSession;->notifyViewAppeared(ILandroid/view/contentcapture/ViewNode$ViewStructureImpl;)V +HSPLandroid/view/contentcapture/MainContentCaptureSession;->isContentCaptureEnabled()Z+]Landroid/view/contentcapture/ContentCaptureManager;Landroid/view/contentcapture/ContentCaptureManager; +HSPLandroid/view/contentcapture/MainContentCaptureSession;->isDisabled()Z+]Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/atomic/AtomicBoolean; +HSPLandroid/view/contentcapture/MainContentCaptureSession;->notifyViewAppeared(ILandroid/view/contentcapture/ViewNode$ViewStructureImpl;)V+]Landroid/os/Handler;Landroid/os/Handler; HSPLandroid/view/contentcapture/MainContentCaptureSession;->notifyViewDisappeared(ILandroid/view/autofill/AutofillId;)V HSPLandroid/view/contentcapture/MainContentCaptureSession;->notifyViewInsetsChanged(ILandroid/graphics/Insets;)V -HSPLandroid/view/contentcapture/MainContentCaptureSession;->notifyViewTextChanged(ILandroid/view/autofill/AutofillId;Ljava/lang/CharSequence;)V +HSPLandroid/view/contentcapture/MainContentCaptureSession;->notifyViewTextChanged(ILandroid/view/autofill/AutofillId;Ljava/lang/CharSequence;)V+]Landroid/os/Handler;Landroid/os/Handler;]Ljava/lang/CharSequence;missing_types HSPLandroid/view/contentcapture/MainContentCaptureSession;->notifyViewTreeEvent(IZ)V 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;->scheduleFlush(IZ)V+]Landroid/os/Handler;Landroid/os/Handler;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/atomic/AtomicBoolean; 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;->sendEvent(Landroid/view/contentcapture/ContentCaptureEvent;Z)V+]Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/atomic/AtomicBoolean;]Landroid/view/contentcapture/ContentCaptureEvent;Landroid/view/contentcapture/ContentCaptureEvent;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/view/contentcapture/MainContentCaptureSession;Landroid/view/contentcapture/MainContentCaptureSession; 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$ViewNodeText;->writeToParcel(Landroid/os/Parcel;Z)V+]Ljava/lang/CharSequence;Ljava/lang/String;,Landroid/text/SpannableStringBuilder;]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;-><init>(Landroid/view/View;)V+]Landroid/view/View;missing_types 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 @@ -19022,7 +19030,7 @@ 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;->writeSelfToParcel(Landroid/os/Parcel;I)V+]Landroid/view/contentcapture/ViewNode$ViewNodeText;Landroid/view/contentcapture/ViewNode$ViewNodeText;]Landroid/os/Parcel;Landroid/os/Parcel; 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 @@ -19137,7 +19145,7 @@ HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;-><init>(Landroid/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;->onViewDetachedFromWindow(Landroid/view/View;Landroid/view/ViewRootImpl;)V+]Landroid/view/View;missing_types]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; 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 @@ -19164,7 +19172,7 @@ HSPLandroid/view/inputmethod/InputMethodManager;-><init>(Lcom/android/internal/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;->checkFocusInternalLocked(ZLandroid/view/ViewRootImpl;)Z+]Landroid/view/inputmethod/InputMethodManager;Landroid/view/inputmethod/InputMethodManager; HSPLandroid/view/inputmethod/InputMethodManager;->clearConnectionLocked()V HSPLandroid/view/inputmethod/InputMethodManager;->closeCurrentInput()V HSPLandroid/view/inputmethod/InputMethodManager;->createInputConnection(Landroid/view/View;)Landroid/util/Pair; @@ -19177,12 +19185,12 @@ 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;->forContext(Landroid/content/Context;)Landroid/view/inputmethod/InputMethodManager;+]Landroid/content/res/Resources;Landroid/content/res/Resources; +HSPLandroid/view/inputmethod/InputMethodManager;->forContextInternal(ILandroid/os/Looper;)Landroid/view/inputmethod/InputMethodManager;+]Landroid/util/SparseArray;Landroid/util/SparseArray; 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;->getFallbackInputMethodManagerIfNecessary(Landroid/view/View;)Landroid/view/inputmethod/InputMethodManager;+]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; 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 @@ -19191,7 +19199,7 @@ HSPLandroid/view/inputmethod/InputMethodManager;->hideSoftInputFromWindow(Landro 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;->isActive(Landroid/view/View;)Z+]Landroid/view/inputmethod/InputMethodManager;Landroid/view/inputmethod/InputMethodManager; HSPLandroid/view/inputmethod/InputMethodManager;->isCursorAnchorInfoEnabled()Z HSPLandroid/view/inputmethod/InputMethodManager;->isFullscreenMode()Z HSPLandroid/view/inputmethod/InputMethodManager;->isImeSessionAvailableLocked()Z @@ -19364,7 +19372,7 @@ HSPLandroid/webkit/IWebViewUpdateService$Stub$Proxy;->getCurrentWebViewPackage() 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;->getMimeTypeFromExtension(Ljava/lang/String;)Ljava/lang/String;+]Llibcore/content/type/MimeMap;Llibcore/content/type/MimeMap; HSPLandroid/webkit/MimeTypeMap;->getSingleton()Landroid/webkit/MimeTypeMap; HSPLandroid/webkit/URLUtil;->isFileUrl(Ljava/lang/String;)Z HSPLandroid/webkit/URLUtil;->isHttpUrl(Ljava/lang/String;)Z @@ -19484,12 +19492,12 @@ 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;->computeVerticalScrollExtent()I+]Landroid/widget/AbsListView;Lcom/android/internal/app/AlertController$RecycleListView; +HSPLandroid/widget/AbsListView;->computeVerticalScrollOffset()I+]Landroid/widget/AbsListView;Lcom/android/internal/app/AlertController$RecycleListView; 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;->draw(Landroid/graphics/Canvas;)V+]Landroid/widget/EdgeEffect;Landroid/widget/EdgeEffect;]Landroid/widget/AbsListView;Landroid/widget/ListView;,Lcom/android/internal/app/AlertController$RecycleListView;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas; HSPLandroid/widget/AbsListView;->drawableStateChanged()V HSPLandroid/widget/AbsListView;->generateDefaultLayoutParams()Landroid/view/ViewGroup$LayoutParams; HSPLandroid/widget/AbsListView;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/view/ViewGroup$LayoutParams; @@ -19620,7 +19628,7 @@ HSPLandroid/widget/AutoCompleteTextView$DropDownItemClickListener;-><init>(Landr 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;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;IILandroid/content/res/Resources$Theme;)V+]Landroid/widget/ListPopupWindow;Landroid/widget/ListPopupWindow;]Landroid/content/Context;Landroid/view/ContextThemeWrapper;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; HSPLandroid/widget/AutoCompleteTextView;->setCompletionHint(Ljava/lang/CharSequence;)V HSPLandroid/widget/BaseAdapter;-><init>()V HSPLandroid/widget/BaseAdapter;->areAllItemsEnabled()Z @@ -19647,7 +19655,7 @@ 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;->getCompoundPaddingLeft()I+]Landroid/widget/CompoundButton;Landroid/widget/Switch; HSPLandroid/widget/CompoundButton;->getCompoundPaddingRight()I HSPLandroid/widget/CompoundButton;->getHorizontalOffsetForDrawables()I HSPLandroid/widget/CompoundButton;->isChecked()Z @@ -19666,7 +19674,7 @@ 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 +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 @@ -19676,7 +19684,7 @@ HSPLandroid/widget/EdgeEffect;->onAbsorb(I)V HSPLandroid/widget/EdgeEffect;->onPull(FF)V HSPLandroid/widget/EdgeEffect;->onPullDistance(FF)F HSPLandroid/widget/EdgeEffect;->onRelease()V -HSPLandroid/widget/EdgeEffect;->setSize(II)V +HSPLandroid/widget/EdgeEffect;->setSize(II)V+]Landroid/graphics/Rect;Landroid/graphics/Rect; HSPLandroid/widget/EdgeEffect;->update()V HSPLandroid/widget/EdgeEffect;->updateSpring()V HSPLandroid/widget/EditText;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V @@ -19699,7 +19707,7 @@ HSPLandroid/widget/Editor$AccessibilitySmartActions;-><init>(Landroid/widget/Tex 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 +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 @@ -19742,10 +19750,10 @@ HSPLandroid/widget/Editor$InsertionPointCursorController;->isCursorBeingModified 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;->addSubscriber(Landroid/widget/Editor$TextViewPositionListener;Z)V+]Landroid/view/ViewTreeObserver;Landroid/view/ViewTreeObserver; HSPLandroid/widget/Editor$PositionListener;->onPreDraw()Z+]Landroid/widget/Editor$TextViewPositionListener;Landroid/widget/Editor$CursorAnchorInfoNotifier; HSPLandroid/widget/Editor$PositionListener;->onScrollChanged()V -HSPLandroid/widget/Editor$PositionListener;->removeSubscriber(Landroid/widget/Editor$TextViewPositionListener;)V +HSPLandroid/widget/Editor$PositionListener;->removeSubscriber(Landroid/widget/Editor$TextViewPositionListener;)V+]Landroid/view/ViewTreeObserver;Landroid/view/ViewTreeObserver; HSPLandroid/widget/Editor$PositionListener;->updatePosition()V HSPLandroid/widget/Editor$ProcessTextIntentActionsHandler;-><init>(Landroid/widget/Editor;)V HSPLandroid/widget/Editor$SelectionModifierCursorController;->getMinTouchOffset()I @@ -19774,8 +19782,8 @@ HSPLandroid/widget/Editor$UndoInputFilter;->restoreInstanceState(Landroid/os/Par 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;-><init>(Landroid/widget/TextView;)V+]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/content/UndoManager;Landroid/content/UndoManager;]Landroid/content/Context;missing_types +HSPLandroid/widget/Editor;->addSpanWatchers(Landroid/text/Spannable;)V+]Landroid/text/Spannable;Landroid/text/SpannableString; HSPLandroid/widget/Editor;->adjustInputType(ZZZZ)V HSPLandroid/widget/Editor;->beginBatchEdit()V HSPLandroid/widget/Editor;->clampHorizontalPosition(Landroid/graphics/drawable/Drawable;F)I @@ -19787,12 +19795,12 @@ HSPLandroid/widget/Editor;->drawHardwareAcceleratedInner(Landroid/graphics/Canva HSPLandroid/widget/Editor;->endBatchEdit()V HSPLandroid/widget/Editor;->ensureEndedBatchEdit()V HSPLandroid/widget/Editor;->ensureNoSelectionIfNonSelectable()V -HSPLandroid/widget/Editor;->extractedTextModeWillBeStarted()Z +HSPLandroid/widget/Editor;->extractedTextModeWillBeStarted()Z+]Landroid/view/inputmethod/InputMethodManager;Landroid/view/inputmethod/InputMethodManager; 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;->getInputMethodManager()Landroid/view/inputmethod/InputMethodManager;+]Landroid/content/Context;missing_types HSPLandroid/widget/Editor;->getInsertionController()Landroid/widget/Editor$InsertionPointCursorController; HSPLandroid/widget/Editor;->getLastTapPosition()I HSPLandroid/widget/Editor;->getPositionListener()Landroid/widget/Editor$PositionListener; @@ -19812,9 +19820,9 @@ 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;->onAttachedToWindow()V+]Landroid/widget/Editor$PositionListener;Landroid/widget/Editor$PositionListener;]Landroid/view/ViewTreeObserver;Landroid/view/ViewTreeObserver;]Ljava/lang/CharSequence;Landroid/text/SpannableString; +HSPLandroid/widget/Editor;->onDetachedFromWindow()V+]Landroid/widget/Editor$PositionListener;Landroid/widget/Editor$PositionListener;]Landroid/view/ViewTreeObserver;Landroid/view/ViewTreeObserver;]Landroid/widget/TextViewOnReceiveContentListener;Landroid/widget/TextViewOnReceiveContentListener;]Landroid/widget/Editor;Landroid/widget/Editor; +HSPLandroid/widget/Editor;->onDraw(Landroid/graphics/Canvas;Landroid/text/Layout;Ljava/util/List;Ljava/util/List;Landroid/graphics/Path;Landroid/graphics/Paint;I)V+]Landroid/view/inputmethod/InputMethodManager;Landroid/view/inputmethod/InputMethodManager;]Landroid/widget/SelectionActionModeHelper;Landroid/widget/SelectionActionModeHelper;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas; HSPLandroid/widget/Editor;->onFocusChanged(ZI)V HSPLandroid/widget/Editor;->onLocaleChanged()V HSPLandroid/widget/Editor;->onScreenStateChanged(I)V @@ -19822,14 +19830,14 @@ HSPLandroid/widget/Editor;->onScrollChanged()V HSPLandroid/widget/Editor;->onTouchEvent(Landroid/view/MotionEvent;)V HSPLandroid/widget/Editor;->onTouchUpEvent(Landroid/view/MotionEvent;)V HSPLandroid/widget/Editor;->onWindowFocusChanged(Z)V -HSPLandroid/widget/Editor;->prepareCursorControllers()V -HSPLandroid/widget/Editor;->refreshTextActionMode()V +HSPLandroid/widget/Editor;->prepareCursorControllers()V+]Landroid/view/View;missing_types]Landroid/widget/Editor;Landroid/widget/Editor; +HSPLandroid/widget/Editor;->refreshTextActionMode()V+]Landroid/widget/Editor;Landroid/widget/Editor; HSPLandroid/widget/Editor;->reportExtractedText()Z HSPLandroid/widget/Editor;->restoreInstanceState(Landroid/os/ParcelableParcel;)V -HSPLandroid/widget/Editor;->resumeBlink()V +HSPLandroid/widget/Editor;->resumeBlink()V+]Landroid/widget/Editor;Landroid/widget/Editor; HSPLandroid/widget/Editor;->saveInstanceState()Landroid/os/ParcelableParcel; HSPLandroid/widget/Editor;->scheduleRestartInputForSetText()V -HSPLandroid/widget/Editor;->sendOnTextChanged(III)V +HSPLandroid/widget/Editor;->sendOnTextChanged(III)V+]Landroid/widget/Editor;Landroid/widget/Editor;]Landroid/widget/SelectionActionModeHelper;Landroid/widget/SelectionActionModeHelper; HSPLandroid/widget/Editor;->sendUpdateSelection()V HSPLandroid/widget/Editor;->setFrame()V HSPLandroid/widget/Editor;->setTransformationMethod(Landroid/text/method/TransformationMethod;)V @@ -19854,12 +19862,12 @@ HSPLandroid/widget/ForwardingListener;->onViewAttachedToWindow(Landroid/view/Vie 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/content/Context;Landroid/util/AttributeSet;)V+]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; 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;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V+]Landroid/widget/FrameLayout;missing_types]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; 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; @@ -19950,7 +19958,7 @@ HSPLandroid/widget/HorizontalScrollView;->getAccessibilityClassName()Ljava/lang/ 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;->measureChildWithMargins(Landroid/view/View;IIII)V+]Landroid/view/View;Landroid/widget/LinearLayout; HSPLandroid/widget/HorizontalScrollView;->onInterceptTouchEvent(Landroid/view/MotionEvent;)Z HSPLandroid/widget/HorizontalScrollView;->onLayout(ZIIII)V HSPLandroid/widget/HorizontalScrollView;->onMeasure(II)V @@ -19970,13 +19978,13 @@ HSPLandroid/widget/ImageView$ScaleType;->values()[Landroid/widget/ImageView$Scal 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 +HSPLandroid/widget/ImageView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V+]Landroid/widget/ImageView;missing_types]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Landroid/content/Context;missing_types HSPLandroid/widget/ImageView;->applyAlpha()V -HSPLandroid/widget/ImageView;->applyColorFilter()V -HSPLandroid/widget/ImageView;->applyImageTint()V +HSPLandroid/widget/ImageView;->applyColorFilter()V+]Landroid/graphics/drawable/Drawable;missing_types +HSPLandroid/widget/ImageView;->applyImageTint()V+]Landroid/widget/ImageView;missing_types]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/VectorDrawable;,Landroid/graphics/drawable/BitmapDrawable; HSPLandroid/widget/ImageView;->applyXfermode()V HSPLandroid/widget/ImageView;->clearColorFilter()V -HSPLandroid/widget/ImageView;->configureBounds()V +HSPLandroid/widget/ImageView;->configureBounds()V+]Landroid/graphics/RectF;Landroid/graphics/RectF;]Landroid/graphics/Matrix;Landroid/graphics/Matrix;]Landroid/graphics/drawable/Drawable;missing_types]Landroid/widget/ImageView;missing_types HSPLandroid/widget/ImageView;->drawableHotspotChanged(FF)V HSPLandroid/widget/ImageView;->drawableStateChanged()V HSPLandroid/widget/ImageView;->getAccessibilityClassName()Ljava/lang/CharSequence; @@ -19985,18 +19993,18 @@ 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;->initImageView()V+]Landroid/widget/ImageView;missing_types +HSPLandroid/widget/ImageView;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V+]Landroid/widget/ImageView;missing_types]Landroid/graphics/drawable/Drawable;megamorphic_types HSPLandroid/widget/ImageView;->isFilledByImage()Z -HSPLandroid/widget/ImageView;->isOpaque()Z -HSPLandroid/widget/ImageView;->jumpDrawablesToCurrentState()V +HSPLandroid/widget/ImageView;->isOpaque()Z+]Landroid/graphics/drawable/Drawable;missing_types +HSPLandroid/widget/ImageView;->jumpDrawablesToCurrentState()V+]Landroid/graphics/drawable/Drawable;megamorphic_types 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;->onDraw(Landroid/graphics/Canvas;)V+]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas;,Landroid/graphics/Canvas;]Landroid/graphics/drawable/Drawable;missing_types +HSPLandroid/widget/ImageView;->onMeasure(II)V+]Landroid/widget/ImageView;missing_types HSPLandroid/widget/ImageView;->onRtlPropertiesChanged(I)V -HSPLandroid/widget/ImageView;->onVisibilityAggregated(Z)V +HSPLandroid/widget/ImageView;->onVisibilityAggregated(Z)V+]Landroid/graphics/drawable/Drawable;missing_types HSPLandroid/widget/ImageView;->resizeFromDrawable()V HSPLandroid/widget/ImageView;->resolveAdjustedSize(III)I HSPLandroid/widget/ImageView;->resolveUri()V @@ -20010,7 +20018,7 @@ 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;->setImageDrawable(Landroid/graphics/drawable/Drawable;)V+]Landroid/widget/ImageView;missing_types HSPLandroid/widget/ImageView;->setImageMatrix(Landroid/graphics/Matrix;)V HSPLandroid/widget/ImageView;->setImageResource(I)V HSPLandroid/widget/ImageView;->setImageTintBlendMode(Landroid/graphics/BlendMode;)V @@ -20020,24 +20028,24 @@ 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;->updateDrawable(Landroid/graphics/drawable/Drawable;)V+]Landroid/widget/ImageView;missing_types]Landroid/graphics/drawable/Drawable;megamorphic_types 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/content/Context;Landroid/util/AttributeSet;)V+]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Landroid/content/Context;missing_types 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 +HSPLandroid/widget/LinearLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V+]Landroid/content/Context;missing_types]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Landroid/widget/LinearLayout;missing_types 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/util/AttributeSet;)Landroid/view/ViewGroup$LayoutParams;+]Landroid/widget/LinearLayout;Landroid/widget/LinearLayout; +HSPLandroid/widget/LinearLayout;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/widget/LinearLayout$LayoutParams;+]Landroid/widget/LinearLayout;Landroid/widget/LinearLayout; 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; @@ -20051,20 +20059,20 @@ 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;->layoutHorizontal(IIII)V+]Landroid/view/View;missing_types]Landroid/widget/LinearLayout;missing_types 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 -HSPLandroid/widget/LinearLayout;->measureHorizontal(II)V +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;missing_types HSPLandroid/widget/LinearLayout;->measureVertical(II)V+]Landroid/view/View;missing_types]Landroid/widget/LinearLayout;missing_types HSPLandroid/widget/LinearLayout;->onDraw(Landroid/graphics/Canvas;)V -HSPLandroid/widget/LinearLayout;->onLayout(ZIIII)V -HSPLandroid/widget/LinearLayout;->onMeasure(II)V -HSPLandroid/widget/LinearLayout;->onRtlPropertiesChanged(I)V +HSPLandroid/widget/LinearLayout;->onLayout(ZIIII)V+]Landroid/widget/LinearLayout;Landroid/widget/LinearLayout; +HSPLandroid/widget/LinearLayout;->onMeasure(II)V+]Landroid/widget/LinearLayout;Landroid/widget/LinearLayout; +HSPLandroid/widget/LinearLayout;->onRtlPropertiesChanged(I)V+]Landroid/widget/LinearLayout;missing_types HSPLandroid/widget/LinearLayout;->setBaselineAligned(Z)V -HSPLandroid/widget/LinearLayout;->setChildFrame(Landroid/view/View;IIII)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;->setOrientation(I)V+]Landroid/widget/LinearLayout;Landroid/widget/LinearLayout; HSPLandroid/widget/LinearLayout;->shouldDelayChildPressedState()Z HSPLandroid/widget/ListPopupWindow;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V HSPLandroid/widget/ListPopupWindow;->isShowing()Z @@ -20131,7 +20139,7 @@ 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;->abortAnimation()V+]Landroid/widget/OverScroller$SplineOverScroller;Landroid/widget/OverScroller$SplineOverScroller; HSPLandroid/widget/OverScroller;->computeScrollOffset()Z HSPLandroid/widget/OverScroller;->fling(IIIIIIII)V HSPLandroid/widget/OverScroller;->fling(IIIIIIIIII)V @@ -20151,7 +20159,7 @@ 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/content/Context;Landroid/util/AttributeSet;II)V+]Landroid/widget/PopupWindow;Landroid/widget/PopupWindow;]Landroid/content/Context;Landroid/view/ContextThemeWrapper;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; 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 @@ -20222,7 +20230,7 @@ HSPLandroid/widget/ProgressBar;->getMin()I HSPLandroid/widget/ProgressBar;->getProgress()I HSPLandroid/widget/ProgressBar;->getProgressDrawable()Landroid/graphics/drawable/Drawable; HSPLandroid/widget/ProgressBar;->initProgressBar()V -HSPLandroid/widget/ProgressBar;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V +HSPLandroid/widget/ProgressBar;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V+]Landroid/widget/ProgressBar;missing_types]Landroid/graphics/drawable/Drawable;missing_types HSPLandroid/widget/ProgressBar;->isIndeterminate()Z HSPLandroid/widget/ProgressBar;->jumpDrawablesToCurrentState()V HSPLandroid/widget/ProgressBar;->needsTileify(Landroid/graphics/drawable/Drawable;)Z @@ -20262,8 +20270,8 @@ 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; -HSPLandroid/widget/RelativeLayout$DependencyGraph;->getSortedViews([Landroid/view/View;[I)V +HSPLandroid/widget/RelativeLayout$DependencyGraph;->findRoots([I)Ljava/util/ArrayDeque;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/view/View;missing_types]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+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/view/View;missing_types]Ljava/util/ArrayDeque;Ljava/util/ArrayDeque;]Landroid/util/SparseArray;Landroid/util/SparseArray; 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 @@ -20271,22 +20279,22 @@ HSPLandroid/widget/RelativeLayout$LayoutParams;->-$$Nest$fgetmTop(Landroid/widge HSPLandroid/widget/RelativeLayout$LayoutParams;->-$$Nest$fputmBottom(Landroid/widget/RelativeLayout$LayoutParams;I)V HSPLandroid/widget/RelativeLayout$LayoutParams;->-$$Nest$fputmTop(Landroid/widget/RelativeLayout$LayoutParams;I)V HSPLandroid/widget/RelativeLayout$LayoutParams;-><init>(II)V -HSPLandroid/widget/RelativeLayout$LayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)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;->getRules(I)[I+]Landroid/widget/RelativeLayout$LayoutParams;Landroid/widget/RelativeLayout$LayoutParams; 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$LayoutParams;->shouldResolveLayoutDirection(I)Z+]Landroid/widget/RelativeLayout$LayoutParams;Landroid/widget/RelativeLayout$LayoutParams; 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 +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 @@ -20298,21 +20306,21 @@ HSPLandroid/widget/RelativeLayout;->generateLayoutParams(Landroid/view/ViewGroup 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;->getRelatedView([II)Landroid/view/View;+]Landroid/view/View;missing_types]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/widget/RelativeLayout$LayoutParams;Landroid/widget/RelativeLayout$LayoutParams; 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 -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;->measureChild(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;II)V+]Landroid/view/View;missing_types +HSPLandroid/widget/RelativeLayout;->measureChildHorizontal(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;II)V+]Landroid/view/View;missing_types +HSPLandroid/widget/RelativeLayout;->onLayout(ZIIII)V+]Landroid/widget/RelativeLayout;missing_types]Landroid/view/View;missing_types +HSPLandroid/widget/RelativeLayout;->onMeasure(II)V+]Landroid/widget/RelativeLayout;missing_types]Landroid/view/View;missing_types]Landroid/widget/RelativeLayout$LayoutParams;Landroid/widget/RelativeLayout$LayoutParams; +HSPLandroid/widget/RelativeLayout;->positionAtEdge(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;I)V+]Landroid/widget/RelativeLayout;missing_types]Landroid/view/View;missing_types +HSPLandroid/widget/RelativeLayout;->positionChildHorizontal(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;IZ)Z+]Landroid/widget/RelativeLayout;missing_types]Landroid/view/View;Landroid/widget/Switch;]Landroid/widget/RelativeLayout$LayoutParams;Landroid/widget/RelativeLayout$LayoutParams; +HSPLandroid/widget/RelativeLayout;->positionChildVertical(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;IZ)Z+]Landroid/view/View;missing_types]Landroid/widget/RelativeLayout$LayoutParams;Landroid/widget/RelativeLayout$LayoutParams; HSPLandroid/widget/RelativeLayout;->queryCompatibilityModes(Landroid/content/Context;)V HSPLandroid/widget/RelativeLayout;->requestLayout()V HSPLandroid/widget/RelativeLayout;->shouldDelayChildPressedState()Z -HSPLandroid/widget/RelativeLayout;->sortChildren()V +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 @@ -20388,16 +20396,16 @@ 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 -HSPLandroid/widget/ScrollBarDrawable;->drawThumb(Landroid/graphics/Canvas;Landroid/graphics/Rect;IIZ)V +HSPLandroid/widget/ScrollBarDrawable;->draw(Landroid/graphics/Canvas;)V+]Landroid/widget/ScrollBarDrawable;Landroid/widget/ScrollBarDrawable;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas; +HSPLandroid/widget/ScrollBarDrawable;->drawThumb(Landroid/graphics/Canvas;Landroid/graphics/Rect;IIZ)V+]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/GradientDrawable; HSPLandroid/widget/ScrollBarDrawable;->getSize(Z)I -HSPLandroid/widget/ScrollBarDrawable;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/ScrollBarDrawable;->isStateful()Z +HSPLandroid/widget/ScrollBarDrawable;->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; HSPLandroid/widget/ScrollBarDrawable;->onBoundsChange(Landroid/graphics/Rect;)V -HSPLandroid/widget/ScrollBarDrawable;->onStateChange([I)Z -HSPLandroid/widget/ScrollBarDrawable;->propagateCurrentState(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/ScrollBarDrawable;->setAlpha(I)V +HSPLandroid/widget/ScrollBarDrawable;->onStateChange([I)Z+]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/GradientDrawable; +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 @@ -20446,11 +20454,11 @@ HSPLandroid/widget/SeekBar;->setOnSeekBarChangeListener(Landroid/widget/SeekBar$ 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$TextClassificationHelper;->init(Ljava/util/function/Supplier;Ljava/lang/CharSequence;IILandroid/os/LocaleList;)V+]Ljava/lang/CharSequence;Landroid/text/SpannableString; +HSPLandroid/widget/SelectionActionModeHelper;-><init>(Landroid/widget/Editor;)V+]Landroid/view/textclassifier/TextClassificationConstants;Landroid/view/textclassifier/TextClassificationConstants;]Landroid/widget/Editor;Landroid/widget/Editor; 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;->onTextChanged(II)V+]Landroid/widget/SelectionActionModeHelper$SelectionTracker;Landroid/widget/SelectionActionModeHelper$SelectionTracker; 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 @@ -20483,7 +20491,7 @@ HSPLandroid/widget/Switch;-><init>(Landroid/content/Context;Landroid/util/Attrib 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;->jumpDrawablesToCurrentState()V+]Landroid/animation/ObjectAnimator;Landroid/animation/ObjectAnimator;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/AnimatedStateListDrawable;,Landroid/graphics/drawable/LayerDrawable; HSPLandroid/widget/Switch;->onCreateDrawableState(I)[I HSPLandroid/widget/Switch;->setChecked(Z)V HSPLandroid/widget/Switch;->setSwitchTextAppearance(Landroid/content/Context;I)V @@ -20516,29 +20524,29 @@ 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;->applyTextAppearance(Landroid/widget/TextView$TextAppearanceAttributes;)V+]Landroid/widget/TextView;missing_types 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;->bringPointIntoView(IZ)Z+]Landroid/text/Layout$Alignment;Landroid/text/Layout$Alignment;]Landroid/text/Layout;Landroid/text/DynamicLayout; HSPLandroid/widget/TextView;->bringTextIntoView()Z HSPLandroid/widget/TextView;->canMarquee()Z HSPLandroid/widget/TextView;->cancelLongPress()V -HSPLandroid/widget/TextView;->checkForRelayout()V +HSPLandroid/widget/TextView;->checkForRelayout()V+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout; HSPLandroid/widget/TextView;->checkForResize()V HSPLandroid/widget/TextView;->cleanupAutoSizePresetSizes([I)[I -HSPLandroid/widget/TextView;->compressText(F)Z +HSPLandroid/widget/TextView;->compressText(F)Z+]Landroid/text/Layout;Landroid/text/BoringLayout;]Landroid/text/TextPaint;Landroid/text/TextPaint; HSPLandroid/widget/TextView;->computeHorizontalScrollRange()I HSPLandroid/widget/TextView;->computeScroll()V -HSPLandroid/widget/TextView;->computeVerticalScrollExtent()I +HSPLandroid/widget/TextView;->computeVerticalScrollExtent()I+]Landroid/widget/TextView;missing_types HSPLandroid/widget/TextView;->computeVerticalScrollRange()I 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;->drawableStateChanged()V+]Landroid/content/res/ColorStateList;Landroid/content/res/ColorStateList;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/VectorDrawable;,Landroid/graphics/drawable/BitmapDrawable; HSPLandroid/widget/TextView;->endBatchEdit()V HSPLandroid/widget/TextView;->findLargestTextSizeWhichFits(Landroid/graphics/RectF;)I HSPLandroid/widget/TextView;->fixFocusableAndClickableSettings()V @@ -20563,12 +20571,12 @@ HSPLandroid/widget/TextView;->getCurrentTextColor()I HSPLandroid/widget/TextView;->getDefaultEditable()Z HSPLandroid/widget/TextView;->getDefaultMovementMethod()Landroid/text/method/MovementMethod; HSPLandroid/widget/TextView;->getDesiredHeight()I -HSPLandroid/widget/TextView;->getDesiredHeight(Landroid/text/Layout;Z)I +HSPLandroid/widget/TextView;->getDesiredHeight(Landroid/text/Layout;Z)I+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;,Landroid/text/StaticLayout;]Landroid/widget/TextView;missing_types 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 -HSPLandroid/widget/TextView;->getExtendedPaddingTop()I +HSPLandroid/widget/TextView;->getExtendedPaddingBottom()I+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;,Landroid/text/StaticLayout;]Landroid/widget/TextView;missing_types +HSPLandroid/widget/TextView;->getExtendedPaddingTop()I+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;,Landroid/text/StaticLayout;]Landroid/widget/TextView;missing_types HSPLandroid/widget/TextView;->getFilters()[Landroid/text/InputFilter; HSPLandroid/widget/TextView;->getFocusedRect(Landroid/graphics/Rect;)V HSPLandroid/widget/TextView;->getFreezesText()Z @@ -20598,18 +20606,18 @@ 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;->getSelectionEnd()I+]Landroid/widget/TextView;missing_types HSPLandroid/widget/TextView;->getSelectionEndTransformed()I -HSPLandroid/widget/TextView;->getSelectionStart()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;->getTextDirectionHeuristic()Landroid/text/TextDirectionHeuristic;+]Landroid/widget/TextView;missing_types +HSPLandroid/widget/TextView;->getTextLocale()Ljava/util/Locale;+]Landroid/text/TextPaint;Landroid/text/TextPaint; +HSPLandroid/widget/TextView;->getTextLocales()Landroid/os/LocaleList;+]Landroid/text/TextPaint;Landroid/text/TextPaint; HSPLandroid/widget/TextView;->getTextSelectHandle()Landroid/graphics/drawable/Drawable; HSPLandroid/widget/TextView;->getTextSelectHandleLeft()Landroid/graphics/drawable/Drawable; HSPLandroid/widget/TextView;->getTextSelectHandleRight()Landroid/graphics/drawable/Drawable; @@ -20621,22 +20629,23 @@ 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;->getUpdatedHighlightPath()Landroid/graphics/Path;+]Landroid/graphics/Path;Landroid/graphics/Path;]Landroid/graphics/Paint;Landroid/graphics/Paint;]Landroid/text/Layout;Landroid/text/DynamicLayout;]Landroid/widget/Editor;Landroid/widget/Editor; +HSPLandroid/widget/TextView;->getVerticalOffset(Z)I+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;,Landroid/text/StaticLayout;]Ljava/lang/CharSequence;missing_types 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;->hasSelection()Z+]Landroid/widget/TextView;missing_types HSPLandroid/widget/TextView;->hideErrorIfUnchanged()V HSPLandroid/widget/TextView;->invalidateCursor()V -HSPLandroid/widget/TextView;->invalidateCursorPath()V -HSPLandroid/widget/TextView;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V +HSPLandroid/widget/TextView;->invalidateCursorPath()V+]Landroid/graphics/Path;Landroid/graphics/Path;]Landroid/text/TextPaint;Landroid/text/TextPaint; +HSPLandroid/widget/TextView;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V+]Landroid/widget/TextView;missing_types]Landroid/graphics/drawable/Drawable;megamorphic_types HSPLandroid/widget/TextView;->invalidateRegion(IIZ)V HSPLandroid/widget/TextView;->isAnyPasswordInputType()Z +HSPLandroid/widget/TextView;->isAutoHandwritingEnabled()Z+]Landroid/widget/TextView;missing_types HSPLandroid/widget/TextView;->isAutoSizeEnabled()Z -HSPLandroid/widget/TextView;->isAutofillable()Z +HSPLandroid/widget/TextView;->isAutofillable()Z+]Landroid/widget/TextView;missing_types HSPLandroid/widget/TextView;->isFallbackLineSpacingForStaticLayout()Z HSPLandroid/widget/TextView;->isFromPrimePointer(Landroid/view/MotionEvent;Z)Z HSPLandroid/widget/TextView;->isInBatchEditMode()Z @@ -20645,29 +20654,29 @@ 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 +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+]Landroid/widget/TextView;missing_types HSPLandroid/widget/TextView;->isTextEditable()Z HSPLandroid/widget/TextView;->isTextSelectable()Z HSPLandroid/widget/TextView;->isVisibleToAccessibility()Z -HSPLandroid/widget/TextView;->jumpDrawablesToCurrentState()V +HSPLandroid/widget/TextView;->jumpDrawablesToCurrentState()V+]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/VectorDrawable;,Landroid/graphics/drawable/BitmapDrawable; HSPLandroid/widget/TextView;->length()I -HSPLandroid/widget/TextView;->makeNewLayout(IILandroid/text/BoringLayout$Metrics;Landroid/text/BoringLayout$Metrics;IZ)V -HSPLandroid/widget/TextView;->makeSingleLayout(ILandroid/text/BoringLayout$Metrics;ILandroid/text/Layout$Alignment;ZLandroid/text/TextUtils$TruncateAt;Z)Landroid/text/Layout; -HSPLandroid/widget/TextView;->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;->makeNewLayout(IILandroid/text/BoringLayout$Metrics;Landroid/text/BoringLayout$Metrics;IZ)V+]Landroid/widget/Editor;Landroid/widget/Editor;]Landroid/widget/TextView;missing_types]Landroid/text/BoringLayout;Landroid/text/BoringLayout;]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;]Ljava/lang/CharSequence;Ljava/lang/String;]Landroid/text/StaticLayout$Builder;Landroid/text/StaticLayout$Builder; +HSPLandroid/widget/TextView;->makeSingleLayout(ILandroid/text/BoringLayout$Metrics;ILandroid/text/Layout$Alignment;ZLandroid/text/TextUtils$TruncateAt;Z)Landroid/text/Layout;+]Landroid/text/BoringLayout;Landroid/text/BoringLayout;]Ljava/lang/CharSequence;Ljava/lang/String;,Landroid/text/SpannedString;]Landroid/text/StaticLayout$Builder;Landroid/text/StaticLayout$Builder;]Landroid/text/DynamicLayout$Builder;Landroid/text/DynamicLayout$Builder;]Landroid/widget/TextView;missing_types +HSPLandroid/widget/TextView;->maybeUpdateHighlightPaths()V+]Ljava/util/List;Ljava/util/ArrayList; +HSPLandroid/widget/TextView;->notifyContentCaptureTextChanged()V+]Landroid/view/contentcapture/ContentCaptureManager;Landroid/view/contentcapture/ContentCaptureManager;]Landroid/view/contentcapture/ContentCaptureSession;Landroid/view/contentcapture/MainContentCaptureSession; +HSPLandroid/widget/TextView;->notifyListeningManagersAfterTextChanged()V+]Landroid/widget/TextView;missing_types]Landroid/view/autofill/AutofillManager;Landroid/view/autofill/AutofillManager;]Landroid/content/Context;missing_types +HSPLandroid/widget/TextView;->nullLayouts()V+]Landroid/widget/Editor;Landroid/widget/Editor; +HSPLandroid/widget/TextView;->onAttachedToWindow()V+]Landroid/widget/Editor;Landroid/widget/Editor; 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;->onCreateDrawableState(I)[I+]Landroid/widget/TextView;missing_types 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 +HSPLandroid/widget/TextView;->onDetachedFromWindowInternal()V+]Landroid/widget/Editor;Landroid/widget/Editor; +HSPLandroid/widget/TextView;->onDraw(Landroid/graphics/Canvas;)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/graphics/drawable/Drawable;Landroid/graphics/drawable/BitmapDrawable;,Landroid/graphics/drawable/VectorDrawable;]Landroid/widget/Editor;Landroid/widget/Editor;]Ljava/lang/CharSequence;Landroid/text/SpannableStringBuilder;]Landroid/widget/TextView;missing_types HSPLandroid/widget/TextView;->onEditorAction(I)V HSPLandroid/widget/TextView;->onEndBatchEdit()V HSPLandroid/widget/TextView;->onFocusChanged(ZILandroid/graphics/Rect;)V @@ -20678,12 +20687,12 @@ 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 +HSPLandroid/widget/TextView;->onMeasure(II)V+]Landroid/text/Layout;Landroid/text/BoringLayout;,Landroid/text/StaticLayout;,Landroid/text/DynamicLayout;]Landroid/widget/TextView;missing_types]Ljava/lang/CharSequence;Ljava/lang/String;,Landroid/text/SpannedString;,Landroid/text/SpannableString; HSPLandroid/widget/TextView;->onPreDraw()Z -HSPLandroid/widget/TextView;->onProvideStructure(Landroid/view/ViewStructure;II)V +HSPLandroid/widget/TextView;->onProvideStructure(Landroid/view/ViewStructure;II)V+]Landroid/view/View;missing_types]Landroid/widget/TextViewOnReceiveContentListener;Landroid/widget/TextViewOnReceiveContentListener;]Landroid/text/InputFilter$LengthFilter;Landroid/text/InputFilter$LengthFilter;]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;,Landroid/text/StaticLayout;]Landroid/widget/Editor;Landroid/widget/Editor;]Landroid/widget/TextView;missing_types]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/text/TextPaint;Landroid/text/TextPaint;]Landroid/view/ViewStructure;Landroid/app/assist/AssistStructure$ViewNodeBuilder;,Landroid/view/contentcapture/ViewNode$ViewStructureImpl;]Ljava/lang/CharSequence;Ljava/lang/String;,Landroid/text/SpannedString;,Landroid/text/SpannableString; HSPLandroid/widget/TextView;->onResolveDrawables(I)V HSPLandroid/widget/TextView;->onRestoreInstanceState(Landroid/os/Parcelable;)V -HSPLandroid/widget/TextView;->onRtlPropertiesChanged(I)V +HSPLandroid/widget/TextView;->onRtlPropertiesChanged(I)V+]Landroid/widget/TextView;missing_types HSPLandroid/widget/TextView;->onSaveInstanceState()Landroid/os/Parcelable; HSPLandroid/widget/TextView;->onScreenStateChanged(I)V HSPLandroid/widget/TextView;->onScrollChanged(IIII)V @@ -20695,12 +20704,12 @@ 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; -HSPLandroid/widget/TextView;->registerForPreDraw()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+]Landroid/view/ViewTreeObserver;Landroid/view/ViewTreeObserver; HSPLandroid/widget/TextView;->removeAdjacentSuggestionSpans(I)V -HSPLandroid/widget/TextView;->removeIntersectingNonAdjacentSpans(IILjava/lang/Class;)V +HSPLandroid/widget/TextView;->removeIntersectingNonAdjacentSpans(IILjava/lang/Class;)V+]Landroid/text/Editable;missing_types]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr; HSPLandroid/widget/TextView;->removeMisspelledSpans(Landroid/text/Spannable;)V -HSPLandroid/widget/TextView;->removeSuggestionSpans(Ljava/lang/CharSequence;)Ljava/lang/CharSequence; +HSPLandroid/widget/TextView;->removeSuggestionSpans(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;+]Ljava/lang/CharSequence;Landroid/text/SpannableString;]Landroid/text/Spannable;Landroid/text/SpannableString; HSPLandroid/widget/TextView;->removeTextChangedListener(Landroid/text/TextWatcher;)V HSPLandroid/widget/TextView;->resetErrorChangedFlag()V HSPLandroid/widget/TextView;->resetResolvedDrawables()V @@ -20708,14 +20717,14 @@ HSPLandroid/widget/TextView;->resolveStyleAndSetTypeface(Landroid/graphics/Typef 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;->sendBeforeTextChanged(Ljava/lang/CharSequence;III)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/text/TextWatcher;missing_types +HSPLandroid/widget/TextView;->sendOnTextChanged(Ljava/lang/CharSequence;III)V+]Landroid/widget/Editor;Landroid/widget/Editor;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/text/TextWatcher;missing_types 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;->setCompoundDrawablePadding(I)V+]Landroid/widget/TextView;missing_types 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;->setCompoundDrawables(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V+]Landroid/widget/TextView;missing_types]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/VectorDrawable;,Landroid/graphics/drawable/BitmapDrawable; 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 @@ -20723,16 +20732,16 @@ 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/Editable;[Landroid/text/InputFilter;)V+]Landroid/text/Editable;missing_types 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;->setFrame(IIII)Z+]Landroid/widget/Editor;Landroid/widget/Editor; 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;->setHintInternal(Ljava/lang/CharSequence;)V+]Landroid/widget/Editor;Landroid/widget/Editor;]Ljava/lang/CharSequence;missing_types HSPLandroid/widget/TextView;->setHintTextColor(I)V HSPLandroid/widget/TextView;->setHintTextColor(Landroid/content/res/ColorStateList;)V HSPLandroid/widget/TextView;->setHorizontallyScrolling(Z)V @@ -20745,7 +20754,7 @@ 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;->setLetterSpacing(F)V+]Landroid/text/TextPaint;Landroid/text/TextPaint; HSPLandroid/widget/TextView;->setLineHeight(I)V HSPLandroid/widget/TextView;->setLineSpacing(FF)V HSPLandroid/widget/TextView;->setLines(I)V @@ -20756,13 +20765,13 @@ 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;->setMovementMethod(Landroid/text/method/MovementMethod;)V+]Landroid/widget/Editor;Landroid/widget/Editor; 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;->setRawTextSize(FZ)V+]Landroid/text/TextPaint;Landroid/text/TextPaint; 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 @@ -20771,13 +20780,13 @@ 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 +HSPLandroid/widget/TextView;->setText(Ljava/lang/CharSequence;Landroid/widget/TextView$BufferType;ZI)V+]Landroid/text/method/TransformationMethod;missing_types]Landroid/widget/TextView;missing_types]Landroid/text/TextPaint;Landroid/text/TextPaint;]Ljava/lang/CharSequence;missing_types]Landroid/view/accessibility/AccessibilityManager;Landroid/view/accessibility/AccessibilityManager;]Landroid/text/Spanned;missing_types]Landroid/text/method/MovementMethod;missing_types]Landroid/widget/Editor;Landroid/widget/Editor;]Landroid/text/Spannable$Factory;Landroid/text/Spannable$Factory;]Landroid/text/Spannable;missing_types]Landroid/text/Editable$Factory;missing_types]Landroid/text/InputFilter;missing_types]Ljava/util/ArrayList;Ljava/util/ArrayList; 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;->setTextIsSelectable(Z)V+]Landroid/widget/Editor;Landroid/widget/Editor; HSPLandroid/widget/TextView;->setTextSize(F)V HSPLandroid/widget/TextView;->setTextSize(IF)V HSPLandroid/widget/TextView;->setTextSizeInternal(IFZ)V @@ -20789,18 +20798,18 @@ HSPLandroid/widget/TextView;->setTypefaceFromAttrs(Landroid/graphics/Typeface;Lj 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;->spanChange(Landroid/text/Spanned;Ljava/lang/Object;IIII)V+]Landroid/widget/Editor;Landroid/widget/Editor;]Landroid/text/Spanned;missing_types 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;->textCanBeSelected()Z+]Landroid/text/method/MovementMethod;Landroid/text/method/ArrowKeyMovementMethod; +HSPLandroid/widget/TextView;->unregisterForPreDraw()V+]Landroid/view/ViewTreeObserver;Landroid/view/ViewTreeObserver; HSPLandroid/widget/TextView;->updateAfterEdit()V HSPLandroid/widget/TextView;->updateCursorVisibleInternal()V -HSPLandroid/widget/TextView;->updateTextColors()V +HSPLandroid/widget/TextView;->updateTextColors()V+]Landroid/content/res/ColorStateList;Landroid/content/res/ColorStateList;]Landroid/widget/Editor;Landroid/widget/Editor;]Landroid/widget/TextView;missing_types]Ljava/lang/CharSequence;missing_types HSPLandroid/widget/TextView;->useDynamicLayout()Z HSPLandroid/widget/TextView;->validateAndSetAutoSizeTextTypeUniformConfiguration(FFF)V HSPLandroid/widget/TextView;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z @@ -20906,7 +20915,7 @@ HSPLandroid/window/ProxyOnBackInvokedDispatcher;->transferCallbacksToDispatcher( 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;-><init>([Landroid/content/res/Configuration;)V+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray; 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 @@ -20924,7 +20933,7 @@ HSPLandroid/window/SurfaceSyncGroup;-><init>(Ljava/lang/String;Ljava/util/functi 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;->addTimeout()V+]Landroid/os/HandlerThread;Landroid/os/HandlerThread;]Landroid/os/Handler;Landroid/os/Handler; HSPLandroid/window/SurfaceSyncGroup;->checkIfSyncIsComplete()V HSPLandroid/window/SurfaceSyncGroup;->createTransactionReadyCallback(Z)Landroid/window/ITransactionReadyCallback; HSPLandroid/window/SurfaceSyncGroup;->getSurfaceSyncGroup(Landroid/window/ISurfaceSyncGroup;)Landroid/window/SurfaceSyncGroup; @@ -21005,20 +21014,20 @@ HSPLandroid/window/WindowTokenClient;->onConfigurationChanged(Landroid/content/r 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;->chooseFormattingPatternForNumber(Ljava/util/List;Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;+]Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/regex/Matcher;Ljava/util/regex/Matcher;]Ljava/util/regex/Pattern;Ljava/util/regex/Pattern;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Lcom/android/i18n/phonenumbers/internal/RegexCache;Lcom/android/i18n/phonenumbers/internal/RegexCache; 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;->extractCountryCode(Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;)I+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/util/Map;Ljava/util/HashMap; +HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->extractPossibleNumber(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;+]Ljava/lang/CharSequence;Ljava/lang/String;]Ljava/util/regex/Matcher;Ljava/util/regex/Matcher;]Ljava/util/regex/Pattern;Ljava/util/regex/Pattern; 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;->format(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;Ljava/lang/StringBuilder;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;]Lcom/android/i18n/phonenumbers/PhoneNumberUtil;Lcom/android/i18n/phonenumbers/PhoneNumberUtil; +HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->formatInOriginalFormat(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;]Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;]Lcom/android/i18n/phonenumbers/PhoneNumberUtil;Lcom/android/i18n/phonenumbers/PhoneNumberUtil; 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;->formatNsnUsingPattern(Ljava/lang/String;Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;Ljava/lang/CharSequence;)Ljava/lang/String;+]Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;]Ljava/util/regex/Pattern;Ljava/util/regex/Pattern;]Ljava/util/regex/Matcher;Ljava/util/regex/Matcher;]Lcom/android/i18n/phonenumbers/internal/RegexCache;Lcom/android/i18n/phonenumbers/internal/RegexCache; 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;->getMetadataForRegion(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/i18n/phonenumbers/metadata/source/MetadataSource;Lcom/android/i18n/phonenumbers/metadata/source/MetadataSourceImpl; 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;->getNationalSignificantNumber(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber; 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; HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getRegionCodeForCountryCode(I)Ljava/lang/String; @@ -21031,26 +21040,26 @@ HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->isValidNumberForRegion(Lcom/ 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;->maybeExtractCountryCode(Ljava/lang/CharSequence;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Ljava/lang/StringBuilder;ZLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)I+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;]Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;]Ljava/lang/CharSequence;Ljava/lang/StringBuilder;]Lcom/android/i18n/phonenumbers/PhoneNumberUtil;Lcom/android/i18n/phonenumbers/PhoneNumberUtil; 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;->maybeStripInternationalPrefixAndNormalize(Ljava/lang/StringBuilder;Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/util/regex/Pattern;Ljava/util/regex/Pattern;]Ljava/util/regex/Matcher;Ljava/util/regex/Matcher; +HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->maybeStripNationalPrefixAndCarrierCode(Ljava/lang/StringBuilder;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Ljava/lang/StringBuilder;)Z+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;]Ljava/util/regex/Matcher;Ljava/util/regex/Matcher;]Ljava/util/regex/Pattern;Ljava/util/regex/Pattern;]Lcom/android/i18n/phonenumbers/internal/RegexCache;Lcom/android/i18n/phonenumbers/internal/RegexCache; +HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->normalize(Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/util/regex/Matcher;Ljava/util/regex/Matcher;]Ljava/util/regex/Pattern;Ljava/util/regex/Pattern; 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;->normalizeDigits(Ljava/lang/CharSequence;Z)Ljava/lang/StringBuilder;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/CharSequence;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;->normalizeHelper(Ljava/lang/CharSequence;Ljava/util/Map;Z)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/CharSequence;Ljava/lang/String;]Ljava/util/Map;Ljava/util/Collections$UnmodifiableMap; 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;->parseHelper(Ljava/lang/CharSequence;Ljava/lang/String;ZZLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)V+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;]Ljava/lang/CharSequence;Ljava/lang/String;]Lcom/android/i18n/phonenumbers/PhoneNumberUtil;Lcom/android/i18n/phonenumbers/PhoneNumberUtil; 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/PhoneNumberUtil;->testNumberLength(Ljava/lang/CharSequence;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;)Lcom/android/i18n/phonenumbers/PhoneNumberUtil$ValidationResult;+]Ljava/lang/Integer;Ljava/lang/Integer;]Ljava/util/List;Ljava/util/ArrayList$SubList;,Ljava/util/ArrayList;]Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;]Ljava/lang/CharSequence;Ljava/lang/StringBuilder;]Lcom/android/i18n/phonenumbers/PhoneNumberUtil;Lcom/android/i18n/phonenumbers/PhoneNumberUtil; 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; @@ -21167,18 +21176,18 @@ HSPLcom/android/i18n/timezone/ZoneInfoData;-><init>(Lcom/android/i18n/timezone/Z 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;->findOffsetIndexForTimeInMilliseconds(J)I+]Lcom/android/i18n/timezone/ZoneInfoData;Lcom/android/i18n/timezone/ZoneInfoData; +HSPLcom/android/i18n/timezone/ZoneInfoData;->findOffsetIndexForTimeInSeconds(J)I+]Lcom/android/i18n/timezone/ZoneInfoData;Lcom/android/i18n/timezone/ZoneInfoData; 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 +HSPLcom/android/i18n/timezone/ZoneInfoData;->getOffset(J)I+]Lcom/android/i18n/timezone/ZoneInfoData;Lcom/android/i18n/timezone/ZoneInfoData; +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;->getTransitions()[J+][J[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;->read64BitData(Ljava/lang/String;Lcom/android/i18n/timezone/internal/BufferIterator;)Lcom/android/i18n/timezone/ZoneInfoData;+]Lcom/android/i18n/timezone/internal/BufferIterator;Lcom/android/i18n/timezone/internal/NioBufferIterator; 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 @@ -21209,38 +21218,38 @@ 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; -HSPLcom/android/icu/charset/CharsetDecoderICU;->getArray(Ljava/nio/ByteBuffer;)I -HSPLcom/android/icu/charset/CharsetDecoderICU;->getArray(Ljava/nio/CharBuffer;)I -HSPLcom/android/icu/charset/CharsetDecoderICU;->implFlush(Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult; +HSPLcom/android/icu/charset/CharsetDecoderICU;->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;->setPosition(Ljava/nio/ByteBuffer;)V+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; +HSPLcom/android/icu/charset/CharsetDecoderICU;->setPosition(Ljava/nio/CharBuffer;)V+]Ljava/nio/CharBuffer;Ljava/nio/HeapCharBuffer; 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 -HSPLcom/android/icu/charset/CharsetEncoderICU;->getArray(Ljava/nio/CharBuffer;)I +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;+]Lcom/android/icu/charset/CharsetEncoderICU;Lcom/android/icu/charset/CharsetEncoderICU; 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 -HSPLcom/android/icu/charset/CharsetEncoderICU;->setPosition(Ljava/nio/CharBuffer;)V +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+]Ljava/nio/CharBuffer;Ljava/nio/HeapCharBuffer; 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;->registerConverter(Ljava/lang/Object;J)V+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry; +HSPLcom/android/icu/charset/NativeConverter;->setCallbackDecode(JLjava/nio/charset/CharsetDecoder;)V+]Ljava/nio/charset/CharsetDecoder;Lcom/android/icu/charset/CharsetDecoderICU; 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; @@ -21271,7 +21280,7 @@ HSPLcom/android/icu/util/ExtendedTimeZone;->utcStartTime(JLandroid/icu/util/Time HSPLcom/android/icu/util/LocaleNative;->getDisplayCountry(Ljava/util/Locale;Ljava/util/Locale;)Ljava/lang/String; HSPLcom/android/icu/util/LocaleNative;->getDisplayLanguage(Ljava/util/Locale;Ljava/util/Locale;)Ljava/lang/String; HSPLcom/android/icu/util/LocaleNative;->setDefault(Ljava/lang/String;)V -HSPLcom/android/icu/util/regex/MatcherNative;-><init>(Lcom/android/icu/util/regex/PatternNative;)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 @@ -21283,7 +21292,7 @@ HSPLcom/android/icu/util/regex/MatcherNative;->requireEnd()Z HSPLcom/android/icu/util/regex/MatcherNative;->setInput(Ljava/lang/String;II)V HSPLcom/android/icu/util/regex/MatcherNative;->useAnchoringBounds(Z)V HSPLcom/android/icu/util/regex/MatcherNative;->useTransparentBounds(Z)V -HSPLcom/android/icu/util/regex/PatternNative;-><init>(Ljava/lang/String;I)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 @@ -21351,13 +21360,13 @@ HSPLcom/android/internal/appwidget/IAppWidgetService$Stub;->asInterface(Landroid HSPLcom/android/internal/colorextraction/ColorExtractor$GradientColors;->getMainColor()I HSPLcom/android/internal/colorextraction/ColorExtractor$GradientColors;->supportsDarkText()Z HSPLcom/android/internal/compat/ChangeReporter$ChangeReport;-><init>(JI)V -HSPLcom/android/internal/compat/ChangeReporter$ChangeReport;->equals(Ljava/lang/Object;)Z +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 -HSPLcom/android/internal/compat/ChangeReporter;->markAsReported(ILcom/android/internal/compat/ChangeReporter$ChangeReport;)V -HSPLcom/android/internal/compat/ChangeReporter;->reportChange(IJI)V +HSPLcom/android/internal/compat/ChangeReporter;->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; @@ -21419,7 +21428,7 @@ HSPLcom/android/internal/infra/AndroidFuture$1;->complete(Lcom/android/internal/ 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;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -21500,8 +21509,8 @@ HSPLcom/android/internal/listeners/ListenerExecutor$$ExternalSyntheticLambda0;-> 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;->executeSafely(Ljava/util/concurrent/Executor;Ljava/util/function/Supplier;Lcom/android/internal/listeners/ListenerExecutor$ListenerOperation;)V+]Lcom/android/internal/listeners/ListenerExecutor;Landroid/location/LocationManager$LocationListenerTransport; +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+]Ljava/util/concurrent/Executor;missing_types]Lcom/android/internal/listeners/ListenerExecutor$ListenerOperation;Landroid/location/LocationManager$LocationListenerTransport$1;,Landroid/location/LocationManager$LocationListenerTransport$$ExternalSyntheticLambda4;]Ljava/util/function/Supplier;Landroid/location/LocationManager$LocationListenerTransport$$ExternalSyntheticLambda2;,Landroid/location/LocationManager$LocationListenerTransport$$ExternalSyntheticLambda3; 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; @@ -21641,7 +21650,7 @@ 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/SafeZipPathValidatorCallback;->onZipEntryAccess(Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String; 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; @@ -21800,7 +21809,7 @@ HSPLcom/android/internal/policy/DecorView;->updateBackgroundBlurRadius()V HSPLcom/android/internal/policy/DecorView;->updateBackgroundDrawable()V HSPLcom/android/internal/policy/DecorView;->updateColorViewInt(Lcom/android/internal/policy/DecorView$ColorViewState;IIIZZIZZI)V HSPLcom/android/internal/policy/DecorView;->updateColorViewTranslations()V -HSPLcom/android/internal/policy/DecorView;->updateColorViews(Landroid/view/WindowInsets;Z)Landroid/view/WindowInsets; +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/WindowInsets;Landroid/view/WindowInsets;]Landroid/view/ViewGroup;Landroid/widget/LinearLayout;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;]Landroid/view/WindowInsetsController;Landroid/view/InsetsController;,Landroid/view/PendingInsetsController; HSPLcom/android/internal/policy/DecorView;->updateDecorCaptionStatus(Landroid/content/res/Configuration;)V HSPLcom/android/internal/policy/DecorView;->updateElevation()V HSPLcom/android/internal/policy/DecorView;->updateLogTag(Landroid/view/WindowManager$LayoutParams;)V @@ -21823,7 +21832,8 @@ HSPLcom/android/internal/policy/PhoneFallbackEventHandler;->setView(Landroid/vie 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/PhoneLayoutInflater;->onCreateView(Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View;+]Lcom/android/internal/policy/PhoneLayoutInflater;Lcom/android/internal/policy/PhoneLayoutInflater; +HSPLcom/android/internal/policy/PhoneWindow$$ExternalSyntheticLambda0;->onContentApplyWindowInsets(Landroid/view/View;Landroid/view/WindowInsets;)Landroid/util/Pair; 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 @@ -21929,7 +21939,7 @@ HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;->asBinder()Landroid 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/IPhoneStateListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z+]Lcom/android/internal/telephony/IPhoneStateListener$Stub;Landroid/telephony/TelephonyCallback$IPhoneStateListenerStub;]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -21951,7 +21961,7 @@ HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getAvailableSubscriptionInf HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getDefaultDataSubId()I HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getDefaultSmsSubId()I HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getDefaultSubId()I -HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getDefaultVoiceSubId()I +HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getDefaultVoiceSubId()I+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Lcom/android/internal/telephony/ISub$Stub$Proxy;Lcom/android/internal/telephony/ISub$Stub$Proxy;]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -21974,7 +21984,7 @@ HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getSubscriptionCarrie 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$Proxy;->isEmergencyNumber(Ljava/lang/String;Z)Z+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Lcom/android/internal/telephony/ITelephony$Stub$Proxy;Lcom/android/internal/telephony/ITelephony$Stub$Proxy;]Landroid/os/Parcel;Landroid/os/Parcel; 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 @@ -22014,7 +22024,7 @@ HSPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->isSpellCh 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;J)V+]Ljava/lang/String;Ljava/lang/String; 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 @@ -22036,7 +22046,7 @@ HSPLcom/android/internal/util/ArrayUtils;->convertToIntArray(Ljava/util/List;)[I HSPLcom/android/internal/util/ArrayUtils;->deepToString(Ljava/lang/Object;)Ljava/lang/String; HSPLcom/android/internal/util/ArrayUtils;->defeatNullable([Ljava/io/File;)[Ljava/io/File; HSPLcom/android/internal/util/ArrayUtils;->defeatNullable([Ljava/lang/String;)[Ljava/lang/String; -HSPLcom/android/internal/util/ArrayUtils;->emptyArray(Ljava/lang/Class;)[Ljava/lang/Object;+]Ljava/lang/Object;missing_types]Ljava/lang/Class;Ljava/lang/Class; +HSPLcom/android/internal/util/ArrayUtils;->emptyArray(Ljava/lang/Class;)[Ljava/lang/Object;+]Ljava/lang/Object;megamorphic_types]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; @@ -22044,14 +22054,14 @@ HSPLcom/android/internal/util/ArrayUtils;->indexOf([Ljava/lang/Object;Ljava/lang HSPLcom/android/internal/util/ArrayUtils;->isEmpty(Ljava/util/Collection;)Z HSPLcom/android/internal/util/ArrayUtils;->isEmpty([I)Z HSPLcom/android/internal/util/ArrayUtils;->isEmpty([Ljava/lang/Object;)Z -HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedArray(Ljava/lang/Class;I)[Ljava/lang/Object; +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;->newUnpaddedByteArray(I)[B+]Ldalvik/system/VMRuntime;Ldalvik/system/VMRuntime; HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedCharArray(I)[C -HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedFloatArray(I)[F -HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedIntArray(I)[I -HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedLongArray(I)[J -HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedObjectArray(I)[Ljava/lang/Object; +HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedFloatArray(I)[F+]Ldalvik/system/VMRuntime;Ldalvik/system/VMRuntime; +HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedIntArray(I)[I+]Ldalvik/system/VMRuntime;Ldalvik/system/VMRuntime; +HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedLongArray(I)[J+]Ldalvik/system/VMRuntime;Ldalvik/system/VMRuntime; +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 @@ -22079,12 +22089,12 @@ 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(Ljava/lang/String;II)V+]Ljava/lang/String;Ljava/lang/String; 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;->flushLocked()V+]Ljava/io/Writer;Ljava/io/StringWriter; HSPLcom/android/internal/util/FastPrintWriter;->initDefaultEncoder()V HSPLcom/android/internal/util/FastPrintWriter;->print(C)V HSPLcom/android/internal/util/FastPrintWriter;->print(I)V @@ -22092,25 +22102,25 @@ 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 +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 -HSPLcom/android/internal/util/FastXmlSerializer;->append(Ljava/lang/String;II)V -HSPLcom/android/internal/util/FastXmlSerializer;->appendIndent(I)V +HSPLcom/android/internal/util/FastXmlSerializer;->append(C)V+]Lcom/android/internal/util/FastXmlSerializer;Lcom/android/internal/util/FastXmlSerializer; +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 +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/FastXmlSerializer;->text(Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;+]Ljava/lang/String;Ljava/lang/String; 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 @@ -22120,12 +22130,12 @@ HSPLcom/android/internal/util/FrameworkStatsLog;->write(ILjava/lang/String;I)V HSPLcom/android/internal/util/FrameworkStatsLog;->write(ILjava/lang/String;IIF)V HSPLcom/android/internal/util/GrowingArrayUtils;->append([III)[I HSPLcom/android/internal/util/GrowingArrayUtils;->append([JIJ)[J -HSPLcom/android/internal/util/GrowingArrayUtils;->append([Ljava/lang/Object;ILjava/lang/Object;)[Ljava/lang/Object; +HSPLcom/android/internal/util/GrowingArrayUtils;->append([Ljava/lang/Object;ILjava/lang/Object;)[Ljava/lang/Object;+]Ljava/lang/Object;[Ljava/lang/Object;]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; +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; @@ -22151,8 +22161,8 @@ HSPLcom/android/internal/util/LineBreakBufferedWriter;-><init>(Ljava/io/Writer;I 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 +HSPLcom/android/internal/util/LineBreakBufferedWriter;->println()V+]Lcom/android/internal/util/LineBreakBufferedWriter;Lcom/android/internal/util/LineBreakBufferedWriter; +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 @@ -22184,7 +22194,7 @@ 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;->checkCollectionElementsNotNull(Ljava/util/Collection;Ljava/lang/String;)Ljava/util/Collection;+]Ljava/util/Collection;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr; 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; @@ -22231,26 +22241,26 @@ 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;->getAttributeCount()I+]Lorg/xmlpull/v1/XmlPullParser;Lcom/android/org/kxml2/io/KXmlParser; 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;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;+]Lorg/xmlpull/v1/XmlPullParser;Lcom/android/org/kxml2/io/KXmlParser; HSPLcom/android/internal/util/XmlPullParserWrapper;->getEventType()I -HSPLcom/android/internal/util/XmlPullParserWrapper;->getName()Ljava/lang/String; +HSPLcom/android/internal/util/XmlPullParserWrapper;->getName()Ljava/lang/String;+]Lorg/xmlpull/v1/XmlPullParser;Lcom/android/org/kxml2/io/KXmlParser; HSPLcom/android/internal/util/XmlPullParserWrapper;->getText()Ljava/lang/String; -HSPLcom/android/internal/util/XmlPullParserWrapper;->next()I +HSPLcom/android/internal/util/XmlPullParserWrapper;->next()I+]Lorg/xmlpull/v1/XmlPullParser;Lcom/android/org/kxml2/io/KXmlParser; 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;->attribute(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;+]Lorg/xmlpull/v1/XmlSerializer;Lcom/android/internal/util/FastXmlSerializer; 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;->endTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;+]Lorg/xmlpull/v1/XmlSerializer;Lcom/android/internal/util/FastXmlSerializer; 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/XmlSerializerWrapper;->startTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;+]Lorg/xmlpull/v1/XmlSerializer;Lcom/android/internal/util/FastXmlSerializer; +HSPLcom/android/internal/util/XmlSerializerWrapper;->text(Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;+]Lorg/xmlpull/v1/XmlSerializer;Lcom/android/internal/util/FastXmlSerializer; 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;->getAttributeBoolean(I)Z+]Ljava/lang/String;Ljava/lang/String;]Lcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser;Lcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser; 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 @@ -22270,25 +22280,25 @@ HSPLcom/android/internal/util/XmlUtils;->readLongAttribute(Lorg/xmlpull/v1/XmlPu HSPLcom/android/internal/util/XmlUtils;->readLongAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;J)J HSPLcom/android/internal/util/XmlUtils;->readMapXml(Ljava/io/InputStream;)Ljava/util/HashMap; HSPLcom/android/internal/util/XmlUtils;->readStringAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/internal/util/XmlUtils;->readThisMapXml(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;[Ljava/lang/String;Lcom/android/internal/util/XmlUtils$ReadMapCallback;)Ljava/util/HashMap; -HSPLcom/android/internal/util/XmlUtils;->readThisPrimitiveValueXml(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;)Ljava/lang/Object; +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/lang/String;Ljava/lang/String;]Ljava/util/HashMap;Ljava/util/HashMap;]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/String;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; +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/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/String;Ljava/lang/String;]Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser; 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;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V+]Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/XmlBlock$Parser; +HSPLcom/android/internal/util/XmlUtils;->writeMapXml(Ljava/util/Map;Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/internal/util/XmlUtils$WriteMapCallback;)V+]Ljava/util/Map$Entry;Ljava/util/HashMap$Node;]Ljava/util/Map;Ljava/util/HashMap;]Ljava/util/Iterator;Ljava/util/HashMap$EntryIterator;]Ljava/util/Set;Ljava/util/HashMap$EntrySet; 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 -HSPLcom/android/internal/util/function/pooled/OmniFunction;->run()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+]Lcom/android/internal/util/function/pooled/OmniFunction;Lcom/android/internal/util/function/pooled/PooledLambdaImpl; 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/BiConsumer;Ljava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;+]Landroid/os/Message;Landroid/os/Message;]Lcom/android/internal/util/function/pooled/PooledRunnable;Lcom/android/internal/util/function/pooled/PooledLambdaImpl; 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; @@ -22296,21 +22306,21 @@ HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl$LambdaType;->deco 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;->acquire(Lcom/android/internal/util/function/pooled/PooledLambdaImpl$Pool;)Lcom/android/internal/util/function/pooled/PooledLambdaImpl;+]Lcom/android/internal/util/function/pooled/PooledLambdaImpl$Pool;Lcom/android/internal/util/function/pooled/PooledLambdaImpl$Pool;]Lcom/android/internal/util/function/pooled/PooledLambdaImpl;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;+]Lcom/android/internal/util/function/pooled/PooledLambdaImpl;Lcom/android/internal/util/function/pooled/PooledLambdaImpl; 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;->doInvoke()Ljava/lang/Object;+]Ljava/util/function/BiConsumer;Landroid/app/UiAutomation$IAccessibilityServiceClientImpl$1$$ExternalSyntheticLambda0;]Lcom/android/internal/util/function/pooled/PooledLambdaImpl;Lcom/android/internal/util/function/pooled/PooledLambdaImpl; +HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->doRecycle()V+]Lcom/android/internal/util/function/pooled/PooledLambdaImpl$Pool;Lcom/android/internal/util/function/pooled/PooledLambdaImpl$Pool; 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;->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;+]Lcom/android/internal/util/function/pooled/PooledLambdaImpl;Lcom/android/internal/util/function/pooled/PooledLambdaImpl; 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;->recycleOnUse()Lcom/android/internal/util/function/pooled/PooledRunnable;+]Lcom/android/internal/util/function/pooled/PooledLambdaImpl;Lcom/android/internal/util/function/pooled/PooledLambdaImpl; 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 @@ -22398,9 +22408,9 @@ 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 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+]Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser; -HSPLcom/android/modules/utils/TypedXmlPullParser;->getAttributeIndexOrThrow(Ljava/lang/String;Ljava/lang/String;)I -HSPLcom/android/modules/utils/TypedXmlPullParser;->getAttributeInt(Ljava/lang/String;Ljava/lang/String;)I +HSPLcom/android/modules/utils/TypedXmlPullParser;->getAttributeIndex(Ljava/lang/String;Ljava/lang/String;)I+]Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser;]Ljava/lang/String;Ljava/lang/String; +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 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 diff --git a/cmds/screencap/screencap.cpp b/cmds/screencap/screencap.cpp index ee9c464219d9..2d235331a672 100644 --- a/cmds/screencap/screencap.cpp +++ b/cmds/screencap/screencap.cpp @@ -142,13 +142,22 @@ int main(int argc, char** argv) case 'p': png = true; break; - case 'd': - displayIdOpt = DisplayId::fromValue(atoll(optarg)); + case 'd': { + errno = 0; + char* end = nullptr; + const uint64_t id = strtoull(optarg, &end, 10); + if (!end || *end != '\0' || errno == ERANGE) { + fprintf(stderr, "Invalid display ID: Out of range [0, 2^64).\n"); + return 1; + } + + displayIdOpt = DisplayId::fromValue(id); if (!displayIdOpt) { - fprintf(stderr, "Invalid display ID: %s\n", optarg); + fprintf(stderr, "Invalid display ID: Incorrect encoding.\n"); return 1; } break; + } case '?': case 'h': if (ids.size() == 1) { diff --git a/config/boot-image-profile.txt b/config/boot-image-profile.txt index 4442b063ec62..466b4aad2e91 100644 --- a/config/boot-image-profile.txt +++ b/config/boot-image-profile.txt @@ -74,7 +74,7 @@ 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;-><init>(Landroid/content/Context;Landroid/accounts/IAccountManager;)V+]Landroid/content/Context;Landroid/app/ContextImpl; 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; @@ -84,7 +84,7 @@ 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;->getAccountsByTypeAsUser(Ljava/lang/String;Landroid/os/UserHandle;)[Landroid/accounts/Account;+]Landroid/accounts/IAccountManager;Landroid/accounts/IAccountManager$Stub$Proxy;]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/os/UserHandle;Landroid/os/UserHandle; 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; @@ -102,7 +102,7 @@ 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;->getAccountsAsUser(Ljava/lang/String;ILjava/lang/String;)[Landroid/accounts/Account;+]Landroid/accounts/IAccountManager$Stub$Proxy;Landroid/accounts/IAccountManager$Stub$Proxy;]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel; 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 @@ -123,15 +123,15 @@ HSPLandroid/accounts/IAccountManagerResponse$Stub;->onTransact(ILandroid/os/Parc 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 +HSPLandroid/animation/AnimationHandler$1;->doFrame(J)V+]Landroid/animation/AnimationHandler$AnimationFrameCallbackProvider;Landroid/animation/AnimationHandler$MyFrameCallbackProvider;,Lcom/android/internal/graphics/SfVsyncFrameCallbackProvider;]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/animation/AnimationHandler$MyFrameCallbackProvider;-><init>(Landroid/animation/AnimationHandler;)V -HSPLandroid/animation/AnimationHandler$MyFrameCallbackProvider;->getFrameTime()J +HSPLandroid/animation/AnimationHandler$MyFrameCallbackProvider;->getFrameTime()J+]Landroid/view/Choreographer;Landroid/view/Choreographer; HSPLandroid/animation/AnimationHandler$MyFrameCallbackProvider;->postFrameCallback(Landroid/view/Choreographer$FrameCallback;)V HSPLandroid/animation/AnimationHandler;-><init>()V HSPLandroid/animation/AnimationHandler;->addAnimationFrameCallback(Landroid/animation/AnimationHandler$AnimationFrameCallback;J)V HSPLandroid/animation/AnimationHandler;->autoCancelBasedOn(Landroid/animation/ObjectAnimator;)V HSPLandroid/animation/AnimationHandler;->cleanUpList()V -HSPLandroid/animation/AnimationHandler;->doAnimationFrame(J)V +HSPLandroid/animation/AnimationHandler;->doAnimationFrame(J)V+]Landroid/animation/AnimationHandler$AnimationFrameCallback;Landroid/animation/ValueAnimator;,Landroid/animation/ObjectAnimator;,Lcom/android/internal/dynamicanimation/animation/SpringAnimation;,Landroid/animation/AnimatorSet;]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; @@ -144,7 +144,7 @@ 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+]Landroid/animation/Animator$AnimatorListener;missing_types +HSPLandroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda0;->call(Ljava/lang/Object;Ljava/lang/Object;Z)V+]Landroid/animation/Animator$AnimatorListener;megamorphic_types HSPLandroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda1;-><init>()V HSPLandroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda1;->call(Ljava/lang/Object;Ljava/lang/Object;Z)V+]Landroid/animation/Animator$AnimatorListener;missing_types HSPLandroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda2;-><init>()V @@ -160,7 +160,7 @@ HSPLandroid/animation/Animator$AnimatorConstantState;->getChangingConfigurations 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$AnimatorListener;->onAnimationStart(Landroid/animation/Animator;Z)V+]Landroid/animation/Animator$AnimatorListener;megamorphic_types HSPLandroid/animation/Animator;-><init>()V HSPLandroid/animation/Animator;->addListener(Landroid/animation/Animator$AnimatorListener;)V HSPLandroid/animation/Animator;->addPauseListener(Landroid/animation/Animator$AnimatorPauseListener;)V @@ -228,7 +228,7 @@ HSPLandroid/animation/AnimatorSet;->cancel()V HSPLandroid/animation/AnimatorSet;->clone()Landroid/animation/Animator; HSPLandroid/animation/AnimatorSet;->clone()Landroid/animation/AnimatorSet; HSPLandroid/animation/AnimatorSet;->createDependencyGraph()V -HSPLandroid/animation/AnimatorSet;->doAnimationFrame(J)Z +HSPLandroid/animation/AnimatorSet;->doAnimationFrame(J)Z+]Landroid/animation/AnimatorSet$SeekState;Landroid/animation/AnimatorSet$SeekState;]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/animation/AnimatorSet;->end()V HSPLandroid/animation/AnimatorSet;->endAnimation()V HSPLandroid/animation/AnimatorSet;->ensureChildStartAndEndTimes()[J @@ -271,12 +271,12 @@ HSPLandroid/animation/AnimatorSet;->startWithoutPulsing(Z)V HSPLandroid/animation/AnimatorSet;->updateAnimatorsDuration()V HSPLandroid/animation/AnimatorSet;->updatePlayTime(Landroid/animation/AnimatorSet$Node;Ljava/util/ArrayList;)V HSPLandroid/animation/ArgbEvaluator;-><init>()V -HSPLandroid/animation/ArgbEvaluator;->evaluate(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; +HSPLandroid/animation/ArgbEvaluator;->evaluate(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/lang/Integer;Ljava/lang/Integer; 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 +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; @@ -310,11 +310,11 @@ HSPLandroid/animation/Keyframe;->ofObject(FLjava/lang/Object;)Landroid/animation HSPLandroid/animation/Keyframe;->setInterpolator(Landroid/animation/TimeInterpolator;)V HSPLandroid/animation/Keyframe;->setValueWasSetOnStart(Z)V HSPLandroid/animation/Keyframe;->valueWasSetOnStart()Z -HSPLandroid/animation/KeyframeSet;-><init>([Landroid/animation/Keyframe;)V +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; +HSPLandroid/animation/KeyframeSet;->getValue(F)Ljava/lang/Object;+]Landroid/animation/TypeEvaluator;Landroid/animation/ArgbEvaluator;]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; @@ -354,7 +354,7 @@ 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 +HSPLandroid/animation/ObjectAnimator;->animateValue(F)V+]Landroid/animation/ObjectAnimator;Landroid/animation/ObjectAnimator;]Landroid/animation/PropertyValuesHolder;Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder; HSPLandroid/animation/ObjectAnimator;->clone()Landroid/animation/Animator; HSPLandroid/animation/ObjectAnimator;->clone()Landroid/animation/ObjectAnimator; HSPLandroid/animation/ObjectAnimator;->getNameForTrace()Ljava/lang/String; @@ -396,7 +396,7 @@ HSPLandroid/animation/PathKeyframes;->interpolateInRange(FII)Landroid/graphics/P 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 +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; @@ -469,18 +469,18 @@ HSPLandroid/animation/TimeAnimator;->setTimeListener(Landroid/animation/TimeAnim 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 -HSPLandroid/animation/ValueAnimator;->animateValue(F)V +HSPLandroid/animation/ValueAnimator;->animateBasedOnTime(J)Z+]Landroid/animation/ValueAnimator;Landroid/animation/ValueAnimator;,Landroid/animation/ObjectAnimator; +HSPLandroid/animation/ValueAnimator;->animateValue(F)V+]Landroid/animation/TimeInterpolator;megamorphic_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; -HSPLandroid/animation/ValueAnimator;->doAnimationFrame(J)Z +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;->endAnimation()V+]Landroid/animation/ValueAnimator;Landroid/animation/ObjectAnimator;,Landroid/animation/ValueAnimator; HSPLandroid/animation/ValueAnimator;->getAnimatedFraction()F -HSPLandroid/animation/ValueAnimator;->getAnimatedValue()Ljava/lang/Object; +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 @@ -528,7 +528,7 @@ HSPLandroid/animation/ValueAnimator;->setValues([Landroid/animation/PropertyValu 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;->start(Z)V+]Landroid/animation/ValueAnimator;Landroid/animation/ObjectAnimator;,Landroid/animation/ValueAnimator; HSPLandroid/animation/ValueAnimator;->startAnimation()V HSPLandroid/animation/ValueAnimator;->startWithoutPulsing(Z)V HSPLandroid/app/Activity$1;-><init>(Landroid/app/Activity;)V @@ -579,7 +579,7 @@ 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;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;+]Ljava/lang/String;Ljava/lang/String; HSPLandroid/app/Activity;->getTaskId()I HSPLandroid/app/Activity;->getTitle()Ljava/lang/CharSequence; HSPLandroid/app/Activity;->getTitleColor()I @@ -801,7 +801,9 @@ HSPLandroid/app/ActivityTaskManager;->getService()Landroid/app/IActivityTaskMana 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$$ExternalSyntheticLambda3;-><init>()V +HSPLandroid/app/ActivityThread$2;-><init>(Landroid/app/ActivityThread;)V +HSPLandroid/app/ActivityThread$2;->setContentCaptureOptions(Landroid/content/ContentCaptureOptions;)V HSPLandroid/app/ActivityThread$3;-><init>(Landroid/app/ActivityThread;)V HSPLandroid/app/ActivityThread$ActivityClientRecord$1;-><init>(Landroid/app/ActivityThread$ActivityClientRecord;)V HSPLandroid/app/ActivityThread$ActivityClientRecord$1;->onConfigurationChanged(Landroid/content/res/Configuration;I)V @@ -813,7 +815,7 @@ 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;->access(Ljava/lang/String;I)Z+]Ljava/lang/String;Ljava/lang/String; 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 @@ -839,7 +841,7 @@ HSPLandroid/app/ActivityThread$ApplicationThread;->dumpService(Landroid/os/Parce 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;->scheduleBindService(Landroid/os/IBinder;Landroid/content/Intent;ZIJ)V+]Landroid/app/ActivityThread;Landroid/app/ActivityThread; 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 @@ -860,11 +862,11 @@ 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$BindServiceData;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; 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$CreateServiceData;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HSPLandroid/app/ActivityThread$DumpResourcesData;-><init>()V HSPLandroid/app/ActivityThread$GcIdler;-><init>(Landroid/app/ActivityThread;)V HSPLandroid/app/ActivityThread$GcIdler;->queueIdle()Z @@ -876,14 +878,14 @@ 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$ProviderKey;->hashCode()I+]Ljava/lang/String;Ljava/lang/String; 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$ServiceArgsData;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; 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 @@ -904,8 +906,8 @@ HSPLandroid/app/ActivityThread;->-$$Nest$mhandleUnbindService(Landroid/app/Activ 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;->acquireExistingProvider(Landroid/content/Context;Ljava/lang/String;IZ)Landroid/content/IContentProvider;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/content/IContentProvider;Landroid/content/ContentProviderProxy;,Landroid/content/ContentProvider$Transport;]Landroid/os/IBinder;Landroid/content/ContentProvider$Transport;,Landroid/os/BinderProxy; +HSPLandroid/app/ActivityThread;->acquireProvider(Landroid/content/Context;Ljava/lang/String;IZ)Landroid/content/IContentProvider;+]Landroid/app/ActivityThread;Landroid/app/ActivityThread;]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/app/IActivityManager;Landroid/app/IActivityManager$Stub$Proxy; 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 @@ -917,7 +919,7 @@ 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;->currentAttributionSource()Landroid/content/AttributionSource;+]Landroid/app/ActivityThread;Landroid/app/ActivityThread; HSPLandroid/app/ActivityThread;->currentOpPackageName()Ljava/lang/String; HSPLandroid/app/ActivityThread;->currentPackageName()Ljava/lang/String; HSPLandroid/app/ActivityThread;->currentProcessName()Ljava/lang/String; @@ -959,7 +961,7 @@ HSPLandroid/app/ActivityThread;->handleActivityConfigurationChanged(Landroid/app HSPLandroid/app/ActivityThread;->handleActivityConfigurationChanged(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/content/res/Configuration;IZ)V 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;->handleBindService(Landroid/app/ActivityThread$BindServiceData;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/app/IActivityManager;Landroid/app/IActivityManager$Stub$Proxy;]Landroid/content/Intent;Landroid/content/Intent; 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 @@ -976,13 +978,13 @@ HSPLandroid/app/ActivityThread;->handleLaunchActivity(Landroid/app/ActivityThrea HSPLandroid/app/ActivityThread;->handleLowMemory()V HSPLandroid/app/ActivityThread;->handleNewIntent(Landroid/app/ActivityThread$ActivityClientRecord;Ljava/util/List;)V HSPLandroid/app/ActivityThread;->handlePauseActivity(Landroid/app/ActivityThread$ActivityClientRecord;ZZIZLandroid/app/servertransaction/PendingTransactionActions;Ljava/lang/String;)V -HSPLandroid/app/ActivityThread;->handleReceiver(Landroid/app/ActivityThread$ReceiverData;)V +HSPLandroid/app/ActivityThread;->handleReceiver(Landroid/app/ActivityThread$ReceiverData;)V+]Landroid/app/LoadedApk;Landroid/app/LoadedApk;]Landroid/app/ActivityThread;Landroid/app/ActivityThread;]Landroid/app/ContextImpl;Landroid/app/ContextImpl;]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Landroid/app/ActivityThread$ReceiverData;Landroid/app/ActivityThread$ReceiverData;]Landroid/content/Intent;Landroid/content/Intent; HSPLandroid/app/ActivityThread;->handleRelaunchActivity(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V HSPLandroid/app/ActivityThread;->handleRelaunchActivityInner(Landroid/app/ActivityThread$ActivityClientRecord;ILjava/util/List;Ljava/util/List;Landroid/app/servertransaction/PendingTransactionActions;ZLandroid/content/res/Configuration;Ljava/lang/String;)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;->handleServiceArgs(Landroid/app/ActivityThread$ServiceArgsData;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/app/IActivityManager;Landroid/app/IActivityManager$Stub$Proxy;]Landroid/content/Intent;Landroid/content/Intent; HSPLandroid/app/ActivityThread;->handleSetContentCaptureOptionsCallback(Ljava/lang/String;)V HSPLandroid/app/ActivityThread;->handleSetCoreSettings(Landroid/os/Bundle;)V HSPLandroid/app/ActivityThread;->handleStartActivity(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;Landroid/app/ActivityOptions;)V @@ -993,7 +995,7 @@ 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;->incProviderRefLocked(Landroid/app/ActivityThread$ProviderRefCount;Z)V+]Landroid/app/ActivityThread$H;Landroid/app/ActivityThread$H;]Landroid/app/IActivityManager;Landroid/app/IActivityManager$Stub$Proxy; HSPLandroid/app/ActivityThread;->initZipPathValidatorCallback()V HSPLandroid/app/ActivityThread;->initializeMainlineModules()V HSPLandroid/app/ActivityThread;->installContentProviders(Landroid/content/Context;Ljava/util/List;)V @@ -1022,7 +1024,7 @@ HSPLandroid/app/ActivityThread;->prepareRelaunchActivity(Landroid/os/IBinder;Lja 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;->releaseProvider(Landroid/content/IContentProvider;Z)Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/content/IContentProvider;Landroid/content/ContentProviderProxy;,Landroid/content/ContentProvider$Transport;]Landroid/app/ActivityThread$H;Landroid/app/ActivityThread$H;]Landroid/app/IActivityManager;Landroid/app/IActivityManager$Stub$Proxy; 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 @@ -1078,7 +1080,7 @@ HSPLandroid/app/AlertDialog;->resolveDialogTheme(Landroid/content/Context;I)I HSPLandroid/app/AppCompatCallbacks;-><init>([J)V HSPLandroid/app/AppCompatCallbacks;->install([J)V HSPLandroid/app/AppCompatCallbacks;->isChangeEnabled(J)Z -HSPLandroid/app/AppCompatCallbacks;->reportChange(JI)V +HSPLandroid/app/AppCompatCallbacks;->reportChange(JI)V+]Lcom/android/internal/compat/ChangeReporter;Lcom/android/internal/compat/ChangeReporter; 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; @@ -1127,7 +1129,7 @@ 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;->isCollectingStackTraces()Z+]Lcom/android/internal/app/MessageSamplingConfig;Lcom/android/internal/app/MessageSamplingConfig; HSPLandroid/app/AppOpsManager;->isListeningForOpNoted()Z HSPLandroid/app/AppOpsManager;->lambda$new$0(Landroid/provider/DeviceConfig$Properties;)V HSPLandroid/app/AppOpsManager;->leftCircularDistance(III)I @@ -1143,7 +1145,7 @@ HSPLandroid/app/AppOpsManager;->opToDefaultMode(I)I HSPLandroid/app/AppOpsManager;->opToPermission(I)Ljava/lang/String; HSPLandroid/app/AppOpsManager;->opToPublicName(I)Ljava/lang/String; HSPLandroid/app/AppOpsManager;->opToSwitch(I)I -HSPLandroid/app/AppOpsManager;->pauseNotedAppOpsCollection()Landroid/app/AppOpsManager$PausedNotedAppOpsCollection; +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 @@ -1159,7 +1161,7 @@ HSPLandroid/app/AppOpsManager;->startWatchingMode(ILjava/lang/String;Landroid/ap 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;->toReceiverId(Ljava/lang/Object;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/Class;Ljava/lang/Class; 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 @@ -1305,7 +1307,7 @@ HSPLandroid/app/ApplicationPackageManager;->getProviderInfo(Landroid/content/Com HSPLandroid/app/ApplicationPackageManager;->getReceiverInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ActivityInfo; HSPLandroid/app/ApplicationPackageManager;->getReceiverInfo(Landroid/content/ComponentName;Landroid/content/pm/PackageManager$ComponentInfoFlags;)Landroid/content/pm/ActivityInfo; HSPLandroid/app/ApplicationPackageManager;->getResourcesForApplication(Landroid/content/pm/ApplicationInfo;)Landroid/content/res/Resources; -HSPLandroid/app/ApplicationPackageManager;->getResourcesForApplication(Landroid/content/pm/ApplicationInfo;Landroid/content/res/Configuration;)Landroid/content/res/Resources; +HSPLandroid/app/ApplicationPackageManager;->getResourcesForApplication(Landroid/content/pm/ApplicationInfo;Landroid/content/res/Configuration;)Landroid/content/res/Resources;+]Ljava/lang/String;Ljava/lang/String;]Landroid/app/ActivityThread;Landroid/app/ActivityThread; 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; @@ -1337,10 +1339,10 @@ HSPLandroid/app/ApplicationPackageManager;->queryBroadcastReceivers(Landroid/con 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;I)Ljava/util/List;+]Landroid/app/ApplicationPackageManager;Landroid/app/ApplicationPackageManager; 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; +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; @@ -1426,16 +1428,16 @@ HSPLandroid/app/ContextImpl$ApplicationContentResolver;->acquireProvider(Landroi 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;->resolveUserIdFromAuthority(Ljava/lang/String;)I+]Landroid/app/ContextImpl$ApplicationContentResolver;Landroid/app/ContextImpl$ApplicationContentResolver; 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;)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;)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;->canLoadUnsafeResources()Z+]Ljava/lang/String;Ljava/lang/String;]Landroid/app/ContextImpl;Landroid/app/ContextImpl; +HSPLandroid/app/ContextImpl;->checkCallingOrSelfPermission(Ljava/lang/String;)I+]Landroid/app/ContextImpl;Landroid/app/ContextImpl; HSPLandroid/app/ContextImpl;->checkCallingPermission(Ljava/lang/String;)I HSPLandroid/app/ContextImpl;->checkMode(I)V HSPLandroid/app/ContextImpl;->checkPermission(Ljava/lang/String;II)I @@ -1452,7 +1454,7 @@ HSPLandroid/app/ContextImpl;->createConfigurationContext(Landroid/content/res/Co 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;->createDeviceProtectedStorageContext()Landroid/content/Context;+]Landroid/content/AttributionSource;Landroid/content/AttributionSource; 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; @@ -1474,19 +1476,19 @@ 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;->ensureExternalDirsExistOrFilter([Ljava/io/File;Z)[Ljava/io/File;+]Ljava/io/File;Ljava/io/File;]Landroid/app/ContextImpl;Landroid/app/ContextImpl; 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;->getApplicationContext()Landroid/content/Context;+]Landroid/app/LoadedApk;Landroid/app/LoadedApk; 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;->getAttributionTag()Ljava/lang/String;+]Landroid/content/AttributionSource;Landroid/content/AttributionSource; HSPLandroid/app/ContextImpl;->getAutofillClient()Landroid/view/autofill/AutofillManager$AutofillClient; HSPLandroid/app/ContextImpl;->getAutofillOptions()Landroid/content/AutofillOptions; HSPLandroid/app/ContextImpl;->getBasePackageName()Ljava/lang/String; @@ -1496,38 +1498,38 @@ 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;->getDataDir()Ljava/io/File;+]Landroid/app/LoadedApk;Landroid/app/LoadedApk;]Ljava/io/File;Ljava/io/File;]Landroid/app/ContextImpl;Landroid/app/ContextImpl; 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;->getDisplayId()I+]Landroid/app/ContextImpl;Landroid/app/ContextImpl;]Landroid/view/Display;Landroid/view/Display; +HSPLandroid/app/ContextImpl;->getDisplayNoVerify()Landroid/view/Display;+]Landroid/app/ResourcesManager;Landroid/app/ResourcesManager; 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;->getExternalFilesDirs(Ljava/lang/String;)[Ljava/io/File;+]Landroid/app/ContextImpl;Landroid/app/ContextImpl; 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;->getFilesDir()Ljava/io/File;+]Landroid/app/ContextImpl;Landroid/app/ContextImpl; 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;->getOpPackageName()Ljava/lang/String;+]Landroid/content/AttributionSource;Landroid/content/AttributionSource; 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;->getPackageName()Ljava/lang/String;+]Landroid/app/LoadedApk;Landroid/app/LoadedApk; 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; -HSPLandroid/app/ContextImpl;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences; +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; HSPLandroid/app/ContextImpl;->getSharedPreferencesPath(Ljava/lang/String;)Ljava/io/File; HSPLandroid/app/ContextImpl;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; @@ -1535,7 +1537,7 @@ HSPLandroid/app/ContextImpl;->getSystemServiceName(Ljava/lang/Class;)Ljava/lang/ 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;->getUserId()I+]Landroid/os/UserHandle;Landroid/os/UserHandle; HSPLandroid/app/ContextImpl;->getWindowContextToken()Landroid/os/IBinder; HSPLandroid/app/ContextImpl;->grantUriPermission(Ljava/lang/String;Landroid/net/Uri;I)V HSPLandroid/app/ContextImpl;->initializeTheme()V @@ -1559,7 +1561,7 @@ HSPLandroid/app/ContextImpl;->registerReceiver(Landroid/content/BroadcastReceive 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;->registerReceiverInternal(Landroid/content/BroadcastReceiver;ILandroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;Landroid/content/Context;I)Landroid/content/Intent;+]Landroid/app/LoadedApk;Landroid/app/LoadedApk;]Landroid/app/ActivityThread;Landroid/app/ActivityThread;]Landroid/app/ContextImpl;Landroid/app/ContextImpl;]Landroid/app/IActivityManager;Landroid/app/IActivityManager$Stub$Proxy;]Landroid/content/Intent;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 @@ -1748,7 +1750,7 @@ HSPLandroid/app/FragmentManagerImpl;->addAddedFragments(Landroid/util/ArraySet;) 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;->burpActive()V+]Landroid/util/SparseArray;Landroid/util/SparseArray; HSPLandroid/app/FragmentManagerImpl;->checkStateLoss()V HSPLandroid/app/FragmentManagerImpl;->cleanupExec()V HSPLandroid/app/FragmentManagerImpl;->dispatchActivityCreated()V @@ -1787,7 +1789,7 @@ HSPLandroid/app/FragmentManagerImpl;->executePostponedTransaction(Ljava/util/Arr 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;->generateOpsForPendingActions(Ljava/util/ArrayList;Ljava/util/ArrayList;)Z+]Landroid/os/Handler;Landroid/os/Handler;]Landroid/app/FragmentHostCallback;Landroid/app/Activity$HostCallbacks;]Landroid/app/FragmentManagerImpl$OpGenerator;Landroid/app/BackStackRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/app/FragmentManagerImpl;->getLayoutInflaterFactory()Landroid/view/LayoutInflater$Factory2; HSPLandroid/app/FragmentManagerImpl;->getPrimaryNavigationFragment()Landroid/app/Fragment; HSPLandroid/app/FragmentManagerImpl;->getTargetSdk()I @@ -1797,7 +1799,7 @@ 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(IZ)V+]Landroid/app/FragmentManagerImpl;Landroid/app/FragmentManagerImpl;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/ArrayList;Ljava/util/ArrayList; 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; @@ -1856,9 +1858,9 @@ 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;->broadcastIntentWithFeature(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ILandroid/os/Bundle;ZZI)I+]Landroid/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;->cancelIntentSender(Landroid/content/IIntentSender;)V -HSPLandroid/app/IActivityManager$Stub$Proxy;->checkPermission(Ljava/lang/String;II)I +HSPLandroid/app/IActivityManager$Stub$Proxy;->checkPermission(Ljava/lang/String;II)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 @@ -1867,7 +1869,7 @@ HSPLandroid/app/IActivityManager$Stub$Proxy;->getCurrentUser()Landroid/content/p 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;->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;+]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;->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; @@ -1880,10 +1882,10 @@ HSPLandroid/app/IActivityManager$Stub$Proxy;->isBackgroundRestricted(Ljava/lang/ 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;->publishService(Landroid/os/IBinder;Landroid/content/Intent;Landroid/os/IBinder;)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;->refContentProvider(Landroid/os/IBinder;II)Z+]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;->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;+]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;->registerStrictModeCallback(Landroid/os/IBinder;)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;->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 @@ -1895,7 +1897,7 @@ HSPLandroid/app/IActivityManager$Stub$Proxy;->stopService(Landroid/app/IApplicat 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;->unregisterReceiver(Landroid/content/IIntentReceiver;)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;->unstableProviderDied(Landroid/os/IBinder;)V HSPLandroid/app/IActivityManager$Stub$Proxy;->waitForNetworkStateUpdate(J)V HSPLandroid/app/IActivityManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IActivityManager; @@ -1950,11 +1952,11 @@ HSPLandroid/app/INotificationManager$Stub$Proxy;->cancelNotificationWithTag(Ljav 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;->enqueueNotificationWithTag(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/app/Notification;I)V+]Landroid/app/INotificationManager$Stub$Proxy;Landroid/app/INotificationManager$Stub$Proxy;]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel; 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;->getNotificationChannel(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)Landroid/app/NotificationChannel;+]Landroid/app/INotificationManager$Stub$Proxy;Landroid/app/INotificationManager$Stub$Proxy;]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -2100,7 +2102,7 @@ HSPLandroid/app/LoadedApk;->createAppFactory(Landroid/content/pm/ApplicationInfo 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;->forgetReceiverDispatcher(Landroid/content/Context;Landroid/content/BroadcastReceiver;)Landroid/content/IIntentReceiver;+]Landroid/app/LoadedApk$ReceiverDispatcher;Landroid/app/LoadedApk$ReceiverDispatcher;]Landroid/util/ArrayMap;Landroid/util/ArrayMap; 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; @@ -2149,13 +2151,13 @@ 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;->build()Landroid/app/Notification$Action;+]Landroid/app/RemoteInput;Landroid/app/RemoteInput;]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr; 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;-><init>(Landroid/graphics/drawable/Icon;Ljava/lang/CharSequence;Landroid/app/PendingIntent;Landroid/os/Bundle;[Landroid/app/RemoteInput;ZIZZ)V+]Landroid/graphics/drawable/Icon;Landroid/graphics/drawable/Icon; +HSPLandroid/app/Notification$Action;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/app/PendingIntent$1;,Landroid/text/TextUtils$1;,Landroid/graphics/drawable/Icon$1;]Landroid/os/Parcel;Landroid/os/Parcel;]Landroid/graphics/drawable/Icon;Landroid/graphics/drawable/Icon; HSPLandroid/app/Notification$Action;->getAllowGeneratedReplies()Z HSPLandroid/app/Notification$Action;->getIcon()Landroid/graphics/drawable/Icon; HSPLandroid/app/Notification$Action;->getRemoteInputs()[Landroid/app/RemoteInput; @@ -2176,16 +2178,16 @@ HSPLandroid/app/Notification$BubbleMetadata$1;->createFromParcel(Landroid/os/Par 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;Landroid/app/Notification;)V+]Landroid/content/res/Resources;Landroid/content/res/Resources; 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;->build()Landroid/app/Notification;+]Landroid/os/Bundle;Landroid/os/Bundle;]Landroid/app/Notification;Landroid/app/Notification;]Landroid/app/Notification$Builder;Landroid/app/Notification$Builder;]Landroid/app/Notification$BubbleMetadata;Landroid/app/Notification$BubbleMetadata;]Landroid/app/Notification$Style;Landroid/app/Notification$InboxStyle;,Landroid/app/Notification$MessagingStyle;,Landroid/app/Notification$BigTextStyle; +HSPLandroid/app/Notification$Builder;->buildUnstyled()Landroid/app/Notification;+]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/app/Notification$Builder;->getStyle()Landroid/app/Notification$Style; -HSPLandroid/app/Notification$Builder;->maybeCloneStrippedForDelivery(Landroid/app/Notification;)Landroid/app/Notification; +HSPLandroid/app/Notification$Builder;->maybeCloneStrippedForDelivery(Landroid/app/Notification;)Landroid/app/Notification;+]Landroid/os/Bundle;Landroid/os/Bundle; 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; @@ -2198,7 +2200,7 @@ HSPLandroid/app/Notification$Builder;->setContent(Landroid/widget/RemoteViews;)L 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;->setContentTitle(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder;+]Landroid/os/Bundle;Landroid/os/Bundle; 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; @@ -2224,7 +2226,7 @@ HSPLandroid/app/Notification$Builder;->setShortcutId(Ljava/lang/String;)Landroid 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;->setSmallIcon(Landroid/graphics/drawable/Icon;)Landroid/app/Notification$Builder;+]Landroid/app/Notification;Landroid/app/Notification;]Landroid/graphics/drawable/Icon;Landroid/graphics/drawable/Icon; 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; @@ -2278,7 +2280,7 @@ HSPLandroid/app/Notification$Style;->restoreFromExtras(Landroid/os/Bundle;)V HSPLandroid/app/Notification$Style;->setBuilder(Landroid/app/Notification$Builder;)V HSPLandroid/app/Notification$Style;->validate(Landroid/content/Context;)V HSPLandroid/app/Notification;-><init>()V -HSPLandroid/app/Notification;-><init>(Landroid/os/Parcel;)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 @@ -2303,8 +2305,8 @@ 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 -HSPLandroid/app/Notification;->reduceImageSizes(Landroid/content/Context;)V +HSPLandroid/app/Notification;->readFromParcelImpl(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/app/Notification$1;,Landroid/graphics/drawable/Icon$1;,Landroid/app/PendingIntent$1;,Landroid/media/AudioAttributes$1;,Landroid/text/TextUtils$1;,Landroid/app/Notification$BubbleMetadata$1;]Landroid/graphics/drawable/Icon;Landroid/graphics/drawable/Icon;]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/app/Notification;->reduceImageSizes(Landroid/content/Context;)V+]Landroid/os/Bundle;Landroid/os/Bundle;]Landroid/graphics/drawable/Icon;Landroid/graphics/drawable/Icon;]Landroid/app/Notification;Landroid/app/Notification;]Landroid/content/res/Resources;Landroid/content/res/Resources; 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; @@ -2312,11 +2314,11 @@ 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 +HSPLandroid/app/Notification;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/app/Notification;->writeToParcelImpl(Landroid/os/Parcel;I)V+]Landroid/media/AudioAttributes;Landroid/media/AudioAttributes;]Landroid/graphics/drawable/Icon;Landroid/graphics/drawable/Icon;]Landroid/os/Parcel;Landroid/os/Parcel;]Landroid/app/PendingIntent;Landroid/app/PendingIntent;]Landroid/app/Notification$BubbleMetadata;Landroid/app/Notification$BubbleMetadata; HSPLandroid/app/NotificationChannel$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/NotificationChannel; -HSPLandroid/app/NotificationChannel$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/NotificationChannel;-><init>(Landroid/os/Parcel;)V +HSPLandroid/app/NotificationChannel$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 @@ -2335,7 +2337,7 @@ HSPLandroid/app/NotificationChannel;->getLockscreenVisibility()I HSPLandroid/app/NotificationChannel;->getName()Ljava/lang/CharSequence; HSPLandroid/app/NotificationChannel;->getOriginalImportance()I HSPLandroid/app/NotificationChannel;->getSound()Landroid/net/Uri; -HSPLandroid/app/NotificationChannel;->getTrimmedString(Ljava/lang/String;)Ljava/lang/String; +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 @@ -2385,12 +2387,12 @@ HSPLandroid/app/NotificationManager;->createNotificationChannelGroups(Ljava/util 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;->fixNotification(Landroid/app/Notification;)Landroid/app/Notification;+]Landroid/app/Notification;Landroid/app/Notification;]Landroid/content/Context;Landroid/view/ContextThemeWrapper; 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;->getNotificationChannel(Ljava/lang/String;)Landroid/app/NotificationChannel;+]Landroid/content/Context;Landroid/view/ContextThemeWrapper;]Landroid/app/INotificationManager;Landroid/app/INotificationManager$Stub$Proxy; HSPLandroid/app/NotificationManager;->getNotificationChannelGroup(Ljava/lang/String;)Landroid/app/NotificationChannelGroup; HSPLandroid/app/NotificationManager;->getNotificationChannelGroups()Ljava/util/List; HSPLandroid/app/NotificationManager;->getNotificationChannels()Ljava/util/List; @@ -2399,7 +2401,7 @@ HSPLandroid/app/NotificationManager;->getService()Landroid/app/INotificationMana 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;->notifyAsUser(Ljava/lang/String;ILandroid/app/Notification;Landroid/os/UserHandle;)V+]Landroid/content/Context;Landroid/view/ContextThemeWrapper;]Landroid/os/UserHandle;Landroid/os/UserHandle;]Landroid/app/INotificationManager;Landroid/app/INotificationManager$Stub$Proxy; HSPLandroid/app/NotificationManager;->zenModeToInterruptionFilter(I)I HSPLandroid/app/PendingIntent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/PendingIntent; HSPLandroid/app/PendingIntent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; @@ -2410,22 +2412,22 @@ 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+]Landroid/content/Context;missing_types -HSPLandroid/app/PendingIntent;->equals(Ljava/lang/Object;)Z +HSPLandroid/app/PendingIntent;->checkPendingIntent(ILandroid/content/Intent;Landroid/content/Context;Z)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/Intent;Landroid/content/Intent;]Landroid/content/Context;missing_types +HSPLandroid/app/PendingIntent;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Object;Landroid/os/BinderProxy;]Landroid/content/IIntentSender;Landroid/content/IIntentSender$Stub$Proxy; 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;->getBroadcastAsUser(Landroid/content/Context;ILandroid/content/Intent;ILandroid/os/UserHandle;)Landroid/app/PendingIntent;+]Landroid/os/UserHandle;Landroid/os/UserHandle;]Landroid/content/Intent;Landroid/content/Intent;]Landroid/app/IActivityManager;Landroid/app/IActivityManager$Stub$Proxy; 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;->hashCode()I+]Ljava/lang/Object;Landroid/os/BinderProxy;]Landroid/content/IIntentSender;Landroid/content/IIntentSender$Stub$Proxy; HSPLandroid/app/PendingIntent;->isActivity()Z HSPLandroid/app/PendingIntent;->isNewMutableDisallowedImplicitPendingIntent(ILandroid/content/Intent;Z)Z+]Landroid/content/Intent;Landroid/content/Intent; HSPLandroid/app/PendingIntent;->send()V @@ -2435,7 +2437,7 @@ HSPLandroid/app/PendingIntent;->sendAndReturnResult(Landroid/content/Context;ILa 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/PendingIntent;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/app/PendingIntent$OnMarshaledListener;Landroid/app/Notification$$ExternalSyntheticLambda0;]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal;]Landroid/content/IIntentSender;Landroid/content/IIntentSender$Stub$Proxy;]Landroid/os/Parcel;Landroid/os/Parcel; 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 @@ -2488,7 +2490,7 @@ HSPLandroid/app/PropertyInvalidatedCache;->maybeCheckConsistency(Ljava/lang/Obje 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/PropertyInvalidatedCache;->registerCache()V+]Ljava/util/HashSet;Ljava/util/HashSet;]Ljava/util/WeakHashMap;Ljava/util/WeakHashMap; HSPLandroid/app/QueuedWork$QueuedWorkHandler;-><init>(Landroid/os/Looper;)V HSPLandroid/app/QueuedWork$QueuedWorkHandler;->handleMessage(Landroid/os/Message;)V HSPLandroid/app/QueuedWork;->-$$Nest$smprocessPendingWork()V @@ -2530,7 +2532,7 @@ HSPLandroid/app/ResourcesManager$ApkAssetsSupplier;-><init>(Landroid/app/Resourc 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 -HSPLandroid/app/ResourcesManager$ApkKey;->hashCode()I +HSPLandroid/app/ResourcesManager$ApkKey;->hashCode()I+]Ljava/lang/String;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; @@ -2555,7 +2557,7 @@ HSPLandroid/app/ResourcesManager;->createResourcesForActivity(Landroid/os/IBinde 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; -HSPLandroid/app/ResourcesManager;->extractApkKeys(Landroid/content/res/ResourcesKey;)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; @@ -2627,9 +2629,9 @@ HSPLandroid/app/SharedPreferencesImpl$EditorImpl;-><init>(Landroid/app/SharedPre HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->apply()V HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->clear()Landroid/content/SharedPreferences$Editor; HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->commit()Z -HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->commitToMemory()Landroid/app/SharedPreferencesImpl$MemoryCommitResult; -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;->commitToMemory()Landroid/app/SharedPreferencesImpl$MemoryCommitResult;+]Ljava/util/Map$Entry;Ljava/util/HashMap$Node;]Ljava/lang/Object;Ljava/lang/String;,Ljava/util/HashSet;,Ljava/lang/Long;,Ljava/lang/Boolean;]Ljava/util/List;Ljava/util/ArrayList;]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+]Landroid/os/Handler;Landroid/app/ActivityThread$H;]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/HashMap$KeyIterator;]Ljava/util/Set;Ljava/util/HashSet; +HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->putBoolean(Ljava/lang/String;Z)Landroid/content/SharedPreferences$Editor;+]Ljava/util/Map;Ljava/util/HashMap; 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; @@ -2652,7 +2654,7 @@ HSPLandroid/app/SharedPreferencesImpl;->-$$Nest$fputmMap(Landroid/app/SharedPref 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;->awaitLoadedLocked()V+]Ljava/lang/Object;Ljava/lang/Object;]Ldalvik/system/BlockGuard$Policy;Ldalvik/system/BlockGuard$1;,Landroid/os/StrictMode$AndroidBlockGuardPolicy; 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; @@ -2660,9 +2662,9 @@ HSPLandroid/app/SharedPreferencesImpl;->enqueueDiskWrite(Landroid/app/SharedPref 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;->getInt(Ljava/lang/String;I)I+]Ljava/lang/Integer;Ljava/lang/Integer;]Ljava/util/Map;Ljava/util/HashMap; 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;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;+]Ljava/util/Map;Ljava/util/HashMap; 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 @@ -2832,8 +2834,8 @@ HSPLandroid/app/SystemServiceRegistry$9;->createService(Landroid/app/ContextImpl HSPLandroid/app/SystemServiceRegistry$CachedServiceFetcher;->getService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$StaticServiceFetcher;->getService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry;->createServiceCache()[Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry;->getSystemService(Landroid/app/ContextImpl;Ljava/lang/String;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry;->getSystemServiceName(Ljava/lang/Class;)Ljava/lang/String; +HSPLandroid/app/SystemServiceRegistry;->getSystemService(Landroid/app/ContextImpl;Ljava/lang/String;)Ljava/lang/Object;+]Landroid/app/SystemServiceRegistry$ServiceFetcher;megamorphic_types]Ljava/util/Map;Landroid/util/ArrayMap; +HSPLandroid/app/SystemServiceRegistry;->getSystemServiceName(Ljava/lang/Class;)Ljava/lang/String;+]Ljava/util/Map;Landroid/util/ArrayMap; HSPLandroid/app/TaskInfo;-><init>()V HSPLandroid/app/TaskInfo;->getWindowingMode()I HSPLandroid/app/TaskInfo;->readFromParcel(Landroid/os/Parcel;)V @@ -2879,7 +2881,7 @@ HSPLandroid/app/WallpaperManager;->initGlobals(Landroid/app/IWallpaperManager;La HSPLandroid/app/WallpaperManager;->setWallpaperZoomOut(Landroid/os/IBinder;F)V HSPLandroid/app/WindowConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/WindowConfiguration; HSPLandroid/app/WindowConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/WindowConfiguration;-><init>()V +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;->canReceiveKeys()Z @@ -2901,20 +2903,20 @@ 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 -HSPLandroid/app/WindowConfiguration;->setBounds(Landroid/graphics/Rect;)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 +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 +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 +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 +HSPLandroid/app/WindowConfiguration;->unset()V+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration; +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 @@ -2987,7 +2989,7 @@ 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;->writeSelfToParcel(Landroid/os/Parcel;Landroid/os/PooledStringWriter;Z[FZ)I+]Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillId;]Landroid/app/assist/AssistStructure$ViewNodeText;Landroid/app/assist/AssistStructure$ViewNodeText;]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -3075,7 +3077,7 @@ 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;->getCurrentTransport()Ljava/lang/String;+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/app/backup/IBackupManager$Stub$Proxy;Landroid/app/backup/IBackupManager$Stub$Proxy;]Landroid/os/Parcel;Landroid/os/Parcel; 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 @@ -3115,7 +3117,7 @@ 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;->getPendingJob(Ljava/lang/String;I)Landroid/app/job/JobInfo;+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/app/job/IJobScheduler$Stub$Proxy;Landroid/app/job/IJobScheduler$Stub$Proxy;]Landroid/os/Parcel;Landroid/os/Parcel; 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 @@ -3181,9 +3183,9 @@ HSPLandroid/app/job/JobInfo$TriggerContentUri$1;->newArray(I)[Landroid/app/job/J HSPLandroid/app/job/JobInfo$TriggerContentUri$1;->newArray(I)[Ljava/lang/Object; HSPLandroid/app/job/JobInfo$TriggerContentUri;-><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 +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 +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(ZZ)V HSPLandroid/app/job/JobInfo;->getExtras()Landroid/os/PersistableBundle; HSPLandroid/app/job/JobInfo;->getFlags()I @@ -3202,7 +3204,7 @@ 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;->writeToParcel(Landroid/os/Parcel;I)V +HSPLandroid/app/job/JobInfo;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/net/NetworkRequest;Landroid/net/NetworkRequest;]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 @@ -3452,8 +3454,8 @@ 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; +HSPLandroid/app/usage/UsageEvents;->readEventFromParcel(Landroid/os/Parcel;Landroid/app/usage/UsageEvents$Event;)V+]Landroid/os/Parcelable$Creator;Landroid/content/res/Configuration$1;]Landroid/os/Parcel;Landroid/os/Parcel; +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;]Landroid/util/ArrayMap;Landroid/util/ArrayMap; 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 @@ -3479,7 +3481,7 @@ 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 +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 @@ -3491,7 +3493,7 @@ HSPLandroid/companion/virtual/IVirtualDeviceManager$Stub;->asInterface(Landroid/ HSPLandroid/companion/virtual/VirtualDeviceManager;-><init>(Landroid/companion/virtual/IVirtualDeviceManager;Landroid/content/Context;)V HSPLandroid/companion/virtual/VirtualDeviceManager;->getDeviceIdForDisplayId(I)I HSPLandroid/compat/Compatibility$BehaviorChangeDelegate;->isChangeEnabled(J)Z -HSPLandroid/compat/Compatibility;->isChangeEnabled(J)Z +HSPLandroid/compat/Compatibility;->isChangeEnabled(J)Z+]Landroid/compat/Compatibility$BehaviorChangeDelegate;Landroid/app/AppCompatCallbacks; HSPLandroid/compat/Compatibility;->setBehaviorChangeDelegate(Landroid/compat/Compatibility$BehaviorChangeDelegate;)V HSPLandroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;->cancelSync(Landroid/content/ISyncContext;)V HSPLandroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;->isCallerSystem()Z @@ -3547,7 +3549,7 @@ 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/AttributionSourceState;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; 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 @@ -3613,7 +3615,7 @@ HSPLandroid/content/ComponentName$1;->createFromParcel(Landroid/os/Parcel;)Landr 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/Class;)V+]Ljava/lang/Class;Ljava/lang/Class; 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 @@ -3632,7 +3634,7 @@ 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; +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; @@ -3642,7 +3644,7 @@ HSPLandroid/content/ContentCaptureOptions$ContentProtectionOptions;->createFromP 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/ContentCaptureOptions;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -3653,7 +3655,7 @@ HSPLandroid/content/ContentProvider$Transport;->enforceWritePermission(Landroid/ 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;->openTypedAssetFile(Landroid/content/AttributionSource;Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ICancellationSignal;)Landroid/content/res/AssetFileDescriptor;+]Landroid/net/Uri;Landroid/net/Uri$HierarchicalUri; 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; @@ -3674,15 +3676,15 @@ HSPLandroid/content/ContentProvider;->delete(Landroid/net/Uri;Landroid/os/Bundle 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;->getAuthorityWithoutUserId(Ljava/lang/String;)Ljava/lang/String;+]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;->getUriWithoutUserId(Landroid/net/Uri;)Landroid/net/Uri;+]Landroid/net/Uri$Builder;Landroid/net/Uri$Builder;]Landroid/net/Uri;Landroid/net/Uri$HierarchicalUri;,Landroid/net/Uri$StringUri; +HSPLandroid/content/ContentProvider;->getUserIdFromAuthority(Ljava/lang/String;I)I+]Ljava/lang/String;Ljava/lang/String; HSPLandroid/content/ContentProvider;->getUserIdFromUri(Landroid/net/Uri;)I HSPLandroid/content/ContentProvider;->getUserIdFromUri(Landroid/net/Uri;I)I HSPLandroid/content/ContentProvider;->getWritePermission()Ljava/lang/String; @@ -3702,7 +3704,7 @@ HSPLandroid/content/ContentProvider;->query(Landroid/net/Uri;[Ljava/lang/String; 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;->setCallingAttributionSource(Landroid/content/AttributionSource;)Landroid/content/AttributionSource;+]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal; HSPLandroid/content/ContentProvider;->setPathPermissions([Landroid/content/pm/PathPermission;)V HSPLandroid/content/ContentProvider;->setReadPermission(Ljava/lang/String;)V HSPLandroid/content/ContentProvider;->setTransportLoggingEnabled(Z)V @@ -3737,10 +3739,10 @@ HSPLandroid/content/ContentProviderNative;->asInterface(Landroid/os/IBinder;)Lan 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;->build()Landroid/content/ContentProviderOperation;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; 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;->setValue(Ljava/lang/String;Ljava/lang/Object;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; 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; @@ -3763,12 +3765,12 @@ HSPLandroid/content/ContentProviderOperation;->resolveValueBackReferences([Landr 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;->call(Landroid/content/AttributionSource;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;+]Landroid/content/AttributionSource;Landroid/content/AttributionSource;]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel; 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;->insert(Landroid/content/AttributionSource;Landroid/net/Uri;Landroid/content/ContentValues;Landroid/os/Bundle;)Landroid/net/Uri;+]Landroid/content/AttributionSource;Landroid/content/AttributionSource;]Landroid/os/Parcelable$Creator;Landroid/net/Uri$1;]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/content/ContentValues;Landroid/content/ContentValues;]Landroid/os/Parcel;Landroid/os/Parcel;]Landroid/net/Uri;Landroid/net/Uri$StringUri; 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; +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/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;]Landroid/os/ICancellationSignal;Landroid/os/ICancellationSignal$Stub$Proxy; 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; @@ -3777,8 +3779,8 @@ 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;-><init>(Landroid/content/ContentResolver;Landroid/database/Cursor;Landroid/content/IContentProvider;)V+]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard; +HSPLandroid/content/ContentResolver$CursorWrapperInner;->close()V+]Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/atomic/AtomicBoolean;]Landroid/content/ContentResolver;Landroid/app/ContextImpl$ApplicationContentResolver;]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard; 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 @@ -3788,14 +3790,14 @@ 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;-><init>(Landroid/content/Context;Landroid/content/ContentInterface;)V+]Landroid/content/Context;Landroid/app/ContextImpl; 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(Landroid/net/Uri;)Landroid/content/IContentProvider;+]Ljava/lang/String;Ljava/lang/String;]Landroid/content/ContentResolver;Landroid/app/ContextImpl$ApplicationContentResolver;]Landroid/net/Uri;Landroid/net/Uri$HierarchicalUri;,Landroid/net/Uri$StringUri; 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;->acquireUnstableProvider(Landroid/net/Uri;)Landroid/content/IContentProvider;+]Ljava/lang/String;Ljava/lang/String;]Landroid/content/ContentResolver;Landroid/app/ContextImpl$ApplicationContentResolver;]Landroid/net/Uri;Landroid/net/Uri$HierarchicalUri;,Landroid/net/Uri$StringUri; 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; @@ -3816,10 +3818,10 @@ 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;->getType(Landroid/net/Uri;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Landroid/content/ContentResolver$StringResultListener;Landroid/content/ContentResolver$StringResultListener;]Landroid/app/IActivityManager;Landroid/app/IActivityManager$Stub$Proxy;]Landroid/content/ContentResolver;Landroid/app/ContextImpl$ApplicationContentResolver;]Landroid/net/Uri;Landroid/net/Uri$StringUri; +HSPLandroid/content/ContentResolver;->getUserId()I+]Landroid/content/Context;Landroid/app/ContextImpl; 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;->insert(Landroid/net/Uri;Landroid/content/ContentValues;Landroid/os/Bundle;)Landroid/net/Uri;+]Landroid/content/IContentProvider;Landroid/content/ContentProviderProxy;]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/ContentResolver;Landroid/app/ContextImpl$ApplicationContentResolver; 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 @@ -3836,7 +3838,7 @@ HSPLandroid/content/ContentResolver;->openFileDescriptor(Landroid/net/Uri;Ljava/ 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;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Landroid/database/Cursor;+]Landroid/content/IContentProvider;Landroid/content/ContentProviderProxy;]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/database/Cursor;Landroid/database/BulkCursorToCursorAdaptor;]Landroid/content/ContentResolver;Landroid/app/ContextImpl$ApplicationContentResolver; 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 @@ -3848,27 +3850,27 @@ 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;->unregisterContentObserver(Landroid/database/ContentObserver;)V+]Landroid/database/ContentObserver;Landroid/database/AbstractCursor$SelfContentObserver;]Landroid/content/IContentService;Landroid/content/IContentService$Stub$Proxy; 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;->appendId(Landroid/net/Uri$Builder;J)Landroid/net/Uri$Builder;+]Landroid/net/Uri$Builder;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/ContentUris;->withAppendedId(Landroid/net/Uri;J)Landroid/net/Uri;+]Landroid/net/Uri$Builder;Landroid/net/Uri$Builder;]Landroid/net/Uri;Landroid/net/Uri$HierarchicalUri;,Landroid/net/Uri$StringUri; 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;->clear()V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; 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;->equals(Ljava/lang/Object;)Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; +HSPLandroid/content/ContentValues;->get(Ljava/lang/String;)Ljava/lang/Object;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; 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;->getAsLong(Ljava/lang/String;)Ljava/lang/Long;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/Number;Ljava/lang/Long; +HSPLandroid/content/ContentValues;->getAsString(Ljava/lang/String;)Ljava/lang/String;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/Object;Ljava/lang/String;,Ljava/lang/Integer;,Ljava/lang/Long; HSPLandroid/content/ContentValues;->getValues()Landroid/util/ArrayMap; HSPLandroid/content/ContentValues;->isEmpty()Z HSPLandroid/content/ContentValues;->isSupportedValue(Ljava/lang/Object;)Z @@ -3876,9 +3878,9 @@ 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;Ljava/lang/Integer;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; +HSPLandroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Long;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; +HSPLandroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; 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 @@ -3887,23 +3889,23 @@ 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/ContentValues;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/Parcel;Landroid/os/Parcel; 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;->getDrawable(I)Landroid/graphics/drawable/Drawable;+]Landroid/content/res/Resources;Landroid/content/res/Resources; 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;->getSystemService(Ljava/lang/Class;)Ljava/lang/Object;+]Landroid/content/Context;missing_types 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;->isAutofillCompatibilityEnabled()Z+]Landroid/content/Context;missing_types HSPLandroid/content/Context;->obtainStyledAttributes(I[I)Landroid/content/res/TypedArray; -HSPLandroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray; -HSPLandroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray; -HSPLandroid/content/Context;->obtainStyledAttributes([I)Landroid/content/res/TypedArray; +HSPLandroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;+]Landroid/content/res/Resources$Theme;Landroid/content/res/Resources$Theme;]Landroid/content/Context;missing_types +HSPLandroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray;+]Landroid/content/res/Resources$Theme;Landroid/content/res/Resources$Theme;]Landroid/content/Context;missing_types +HSPLandroid/content/Context;->obtainStyledAttributes([I)Landroid/content/res/TypedArray;+]Landroid/content/res/Resources$Theme;Landroid/content/res/Resources$Theme;]Landroid/content/Context;missing_types HSPLandroid/content/Context;->registerComponentCallbacks(Landroid/content/ComponentCallbacks;)V HSPLandroid/content/Context;->unregisterComponentCallbacks(Landroid/content/ComponentCallbacks;)V HSPLandroid/content/ContextParams$Builder;-><init>()V @@ -3936,7 +3938,7 @@ HSPLandroid/content/ContextWrapper;->createAttributionContext(Ljava/lang/String; 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;->createDeviceProtectedStorageContext()Landroid/content/Context;+]Landroid/content/Context;Landroid/app/ContextImpl; 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; @@ -3949,55 +3951,55 @@ HSPLandroid/content/ContextWrapper;->enforceCallingPermission(Ljava/lang/String; 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;->getApplicationContext()Landroid/content/Context;+]Landroid/content/Context;missing_types 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;->getAutofillOptions()Landroid/content/AutofillOptions;+]Landroid/content/Context;missing_types 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; +HSPLandroid/content/ContextWrapper;->getContentCaptureOptions()Landroid/content/ContentCaptureOptions;+]Landroid/content/Context;missing_types +HSPLandroid/content/ContextWrapper;->getContentResolver()Landroid/content/ContentResolver;+]Landroid/content/Context;Landroid/app/ContextImpl; 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 +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;->getExternalFilesDir(Ljava/lang/String;)Ljava/io/File;+]Landroid/content/Context;Landroid/app/ContextImpl; 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;->getFilesDir()Ljava/io/File;+]Landroid/content/Context;missing_types 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;->getOpPackageName()Ljava/lang/String;+]Landroid/content/Context;missing_types HSPLandroid/content/ContextWrapper;->getPackageCodePath()Ljava/lang/String; -HSPLandroid/content/ContextWrapper;->getPackageManager()Landroid/content/pm/PackageManager; -HSPLandroid/content/ContextWrapper;->getPackageName()Ljava/lang/String; +HSPLandroid/content/ContextWrapper;->getPackageManager()Landroid/content/pm/PackageManager;+]Landroid/content/Context;missing_types +HSPLandroid/content/ContextWrapper;->getPackageName()Ljava/lang/String;+]Landroid/content/Context;missing_types 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; +HSPLandroid/content/ContextWrapper;->getResources()Landroid/content/res/Resources;+]Landroid/content/Context;missing_types +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; -HSPLandroid/content/ContextWrapper;->getSystemServiceName(Ljava/lang/Class;)Ljava/lang/String; +HSPLandroid/content/ContextWrapper;->getSystemServiceName(Ljava/lang/Class;)Ljava/lang/String;+]Landroid/content/Context;missing_types HSPLandroid/content/ContextWrapper;->getTheme()Landroid/content/res/Resources$Theme; HSPLandroid/content/ContextWrapper;->getUser()Landroid/os/UserHandle; HSPLandroid/content/ContextWrapper;->getUserId()I HSPLandroid/content/ContextWrapper;->getWindowContextToken()Landroid/os/IBinder; 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;->isRestricted()Z+]Landroid/content/Context;missing_types 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; @@ -4041,7 +4043,7 @@ 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;->notifyChange([Landroid/net/Uri;Landroid/database/IContentObserver;ZIIILjava/lang/String;)V+]Landroid/content/IContentService$Stub$Proxy;Landroid/content/IContentService$Stub$Proxy;]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel; 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 @@ -4081,7 +4083,7 @@ 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;)V+]Landroid/content/Intent;Landroid/content/Intent; HSPLandroid/content/Intent;-><init>(Ljava/lang/String;Landroid/net/Uri;Landroid/content/Context;Ljava/lang/Class;)V HSPLandroid/content/Intent;->addCategory(Ljava/lang/String;)Landroid/content/Intent; HSPLandroid/content/Intent;->addFlags(I)Landroid/content/Intent; @@ -4126,11 +4128,11 @@ HSPLandroid/content/Intent;->makeMainActivity(Landroid/content/ComponentName;)La 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;->parseUriInternal(Ljava/lang/String;I)Landroid/content/Intent;+]Ljava/lang/String;Ljava/lang/String; 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;->prepareToLeaveProcess(Landroid/content/Context;)V+]Landroid/content/Context;missing_types]Landroid/content/ComponentName;Landroid/content/ComponentName;]Landroid/content/Intent;Landroid/content/Intent; +HSPLandroid/content/Intent;->prepareToLeaveProcess(Z)V+]Ljava/lang/String;Ljava/lang/String;]Landroid/content/Intent;Landroid/content/Intent; HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent; HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;J)Landroid/content/Intent; HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;Landroid/os/Bundle;)Landroid/content/Intent; @@ -4156,7 +4158,7 @@ HSPLandroid/content/Intent;->resolveActivity(Landroid/content/pm/PackageManager; 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;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Landroid/content/Intent;Landroid/content/Intent; 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; @@ -4180,7 +4182,7 @@ HSPLandroid/content/Intent;->toString(Ljava/lang/StringBuilder;)V+]Ljava/lang/St 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 +HSPLandroid/content/Intent;->writeToParcel(Landroid/os/Parcel;I)V+]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; @@ -4192,7 +4194,7 @@ HSPLandroid/content/IntentFilter$AuthorityEntry;->writeToParcel(Landroid/os/Parc 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;-><init>(Ljava/lang/String;)V+]Landroid/content/IntentFilter;Landroid/content/IntentFilter; HSPLandroid/content/IntentFilter;->actionsIterator()Ljava/util/Iterator; HSPLandroid/content/IntentFilter;->addAction(Ljava/lang/String;)V HSPLandroid/content/IntentFilter;->addCategory(Ljava/lang/String;)V @@ -4244,7 +4246,7 @@ HSPLandroid/content/IntentFilter;->setOrder(I)V HSPLandroid/content/IntentFilter;->setPriority(I)V HSPLandroid/content/IntentFilter;->setVisibilityToInstantApp(I)V HSPLandroid/content/IntentFilter;->typesIterator()Ljava/util/Iterator; -HSPLandroid/content/IntentFilter;->writeToParcel(Landroid/os/Parcel;I)V +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;]Landroid/os/PatternMatcher;Landroid/os/PatternMatcher;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/content/IntentFilter$AuthorityEntry;Landroid/content/IntentFilter$AuthorityEntry; HSPLandroid/content/IntentSender;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/content/LocusId$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/LocusId; HSPLandroid/content/LocusId$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; @@ -4320,7 +4322,7 @@ 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 +HSPLandroid/content/UriMatcher;->match(Landroid/net/Uri;)I+]Ljava/lang/String;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; @@ -4328,7 +4330,7 @@ HSPLandroid/content/pm/ActivityInfo$1;->createFromParcel(Landroid/os/Parcel;)Lja HSPLandroid/content/pm/ActivityInfo$1;->newArray(I)[Landroid/content/pm/ActivityInfo; HSPLandroid/content/pm/ActivityInfo$1;->newArray(I)[Ljava/lang/Object; HSPLandroid/content/pm/ActivityInfo$WindowLayout;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/pm/ActivityInfo;-><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 @@ -4346,7 +4348,7 @@ HSPLandroid/content/pm/ApplicationInfo$1$$ExternalSyntheticLambda0;->readRawParc 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/content/pm/ApplicationInfo;)V+]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo; 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; @@ -4358,7 +4360,7 @@ HSPLandroid/content/pm/ApplicationInfo;->getCustomApplicationClassNameForProcess 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;->initForUser(I)V+]Ljava/lang/String;Ljava/lang/String;]Ljava/io/File;Ljava/io/File; HSPLandroid/content/pm/ApplicationInfo;->isDirectBootAware()Z HSPLandroid/content/pm/ApplicationInfo;->isEncryptionAware()Z HSPLandroid/content/pm/ApplicationInfo;->isExternal()Z @@ -4384,7 +4386,7 @@ 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 +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 @@ -4394,7 +4396,7 @@ 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; 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/BaseParceledListSlice;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/content/pm/BaseParceledListSlice;Landroid/content/pm/ParceledListSlice;]Ljava/lang/Object;Landroid/app/NotificationChannel;,Landroid/view/contentcapture/ContentCaptureEvent;]Ljava/util/List;Ljava/util/Arrays$ArrayList;,Ljava/util/ArrayList;]Landroid/os/Parcel;Landroid/os/Parcel; 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 @@ -4459,18 +4461,18 @@ HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getSystemSharedLibraryNames( 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;->isProtectedBroadcast(Ljava/lang/String;)Z+]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;->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; +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;->queryIntentServices(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;->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;->resolveService(Landroid/content/Intent;Ljava/lang/String;JI)Landroid/content/pm/ResolveInfo;+]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;->setComponentEnabledSetting(Landroid/content/ComponentName;IIILjava/lang/String;)V+]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;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager; HSPLandroid/content/pm/IPackageManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z @@ -4515,7 +4517,7 @@ HSPLandroid/content/pm/ModuleInfo;->getPackageName()Ljava/lang/String; HSPLandroid/content/pm/PackageInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/PackageInfo; HSPLandroid/content/pm/PackageInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/content/pm/PackageInfo;-><init>()V -HSPLandroid/content/pm/PackageInfo;-><init>(Landroid/os/Parcel;)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 @@ -4539,14 +4541,14 @@ HSPLandroid/content/pm/PackageInstaller;->getSessionInfo(I)Landroid/content/pm/P HSPLandroid/content/pm/PackageInstaller;->registerSessionCallback(Landroid/content/pm/PackageInstaller$SessionCallback;Landroid/os/Handler;)V HSPLandroid/content/pm/PackageItemInfo;-><init>()V HSPLandroid/content/pm/PackageItemInfo;-><init>(Landroid/content/pm/PackageItemInfo;)V -HSPLandroid/content/pm/PackageItemInfo;-><init>(Landroid/os/Parcel;)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/PackageItemInfo;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/content/pm/PackageManager$1;->recompute(Landroid/content/pm/PackageManager$ApplicationInfoQuery;)Landroid/content/pm/ApplicationInfo; HSPLandroid/content/pm/PackageManager$1;->recompute(Ljava/lang/Object;)Ljava/lang/Object; HSPLandroid/content/pm/PackageManager$2;->recompute(Landroid/content/pm/PackageManager$PackageInfoQuery;)Landroid/content/pm/PackageInfo; @@ -4587,7 +4589,7 @@ HSPLandroid/content/pm/PackageParser$Activity$1;->createFromParcel(Landroid/os/P 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$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+]Ljava/util/List;Ljava/util/ArrayList; 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; @@ -4642,7 +4644,7 @@ HSPLandroid/content/pm/PackageParser;->setDisplayMetrics(Landroid/util/DisplayMe 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/PackageParser;->validateName(Ljava/lang/String;ZZ)Ljava/lang/String;+]Ljava/lang/String;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; @@ -4697,7 +4699,7 @@ HSPLandroid/content/pm/RegisteredServicesCache;->containsType(Ljava/util/ArrayLi HSPLandroid/content/pm/ResolveInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ResolveInfo; HSPLandroid/content/pm/ResolveInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/content/pm/ResolveInfo;-><init>()V -HSPLandroid/content/pm/ResolveInfo;-><init>(Landroid/os/Parcel;)V +HSPLandroid/content/pm/ResolveInfo;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/content/pm/ActivityInfo$1;,Landroid/text/TextUtils$1;,Landroid/content/pm/ServiceInfo$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; @@ -4710,8 +4712,8 @@ 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; -HSPLandroid/content/pm/SharedLibraryInfo;-><init>(Landroid/os/Parcel;)V +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+]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 @@ -4721,7 +4723,7 @@ HSPLandroid/content/pm/SharedLibraryInfo;->getName()Ljava/lang/String; HSPLandroid/content/pm/SharedLibraryInfo;->getPath()Ljava/lang/String; HSPLandroid/content/pm/SharedLibraryInfo;->isNative()Z HSPLandroid/content/pm/SharedLibraryInfo;->isSdk()Z -HSPLandroid/content/pm/SharedLibraryInfo;->writeToParcel(Landroid/os/Parcel;I)V +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 @@ -4735,7 +4737,7 @@ HSPLandroid/content/pm/ShortcutInfo$Builder;->setLongLived(Z)Landroid/content/pm 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 -HSPLandroid/content/pm/ShortcutInfo;-><init>(Landroid/os/Parcel;)V +HSPLandroid/content/pm/ShortcutInfo;-><init>(Landroid/os/Parcel;)V+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/Object;Landroid/content/pm/ShortcutInfo;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -4798,12 +4800,12 @@ 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 +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;->getApkContentsSigners()[Landroid/content/pm/Signature;+]Landroid/content/pm/SigningDetails;Landroid/content/pm/SigningDetails; HSPLandroid/content/pm/SigningInfo;->getSigningCertificateHistory()[Landroid/content/pm/Signature; HSPLandroid/content/pm/SigningInfo;->hasMultipleSigners()Z HSPLandroid/content/pm/SigningInfo;->hasPastSigningCertificates()Z @@ -4831,10 +4833,10 @@ 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; -HSPLandroid/content/pm/VersionedPackage;-><init>(Landroid/os/Parcel;)V +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/VersionedPackage;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -4850,7 +4852,7 @@ HSPLandroid/content/pm/parsing/result/ParseTypeImpl;->reset()Landroid/content/pm 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>(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -4866,7 +4868,7 @@ HSPLandroid/content/res/ApkAssets;->dump(Ljava/io/PrintWriter;Ljava/lang/String; HSPLandroid/content/res/ApkAssets;->finalize()V HSPLandroid/content/res/ApkAssets;->getAssetPath()Ljava/lang/String; HSPLandroid/content/res/ApkAssets;->getDebugName()Ljava/lang/String; -HSPLandroid/content/res/ApkAssets;->getStringFromPool(I)Ljava/lang/CharSequence; +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; @@ -4901,7 +4903,7 @@ 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; +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 @@ -4911,7 +4913,7 @@ 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;->-$$Nest$smnativeSetApkAssets(J[Landroid/content/res/ApkAssets;Z)V -HSPLandroid/content/res/AssetManager;-><init>()V +HSPLandroid/content/res/AssetManager;-><init>()V+]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager; 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 @@ -4934,7 +4936,7 @@ HSPLandroid/content/res/AssetManager;->getLoaders()Ljava/util/List; HSPLandroid/content/res/AssetManager;->getLocales()[Ljava/lang/String; HSPLandroid/content/res/AssetManager;->getNonSystemLocales()[Ljava/lang/String; HSPLandroid/content/res/AssetManager;->getParentThemeIdentifier(I)I -HSPLandroid/content/res/AssetManager;->getPooledStringForCookie(II)Ljava/lang/CharSequence; +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; @@ -4944,15 +4946,15 @@ 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;->getResourceText(I)Ljava/lang/CharSequence;+]Landroid/util/TypedValue;Landroid/util/TypedValue;]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager; HSPLandroid/content/res/AssetManager;->getResourceTextArray(I)[Ljava/lang/CharSequence; HSPLandroid/content/res/AssetManager;->getResourceTypeName(I)Ljava/lang/String; -HSPLandroid/content/res/AssetManager;->getResourceValue(IILandroid/util/TypedValue;Z)Z +HSPLandroid/content/res/AssetManager;->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;->getThemeValue(JILandroid/util/TypedValue;Z)Z+]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager; HSPLandroid/content/res/AssetManager;->incRefsLocked(J)V -HSPLandroid/content/res/AssetManager;->isUpToDate()Z +HSPLandroid/content/res/AssetManager;->isUpToDate()Z+]Landroid/content/res/ApkAssets;Landroid/content/res/ApkAssets; 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; @@ -4960,13 +4962,13 @@ HSPLandroid/content/res/AssetManager;->openFd(Ljava/lang/String;)Landroid/conten HSPLandroid/content/res/AssetManager;->openNonAsset(ILjava/lang/String;I)Ljava/io/InputStream; HSPLandroid/content/res/AssetManager;->openNonAssetFd(ILjava/lang/String;)Landroid/content/res/AssetFileDescriptor; HSPLandroid/content/res/AssetManager;->openNonAssetFd(Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor; -HSPLandroid/content/res/AssetManager;->openXmlBlockAsset(ILjava/lang/String;)Landroid/content/res/XmlBlock; +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;->setApkAssets([Landroid/content/res/ApkAssets;Z)V+]Landroid/util/ArraySet;Landroid/util/ArraySet; HSPLandroid/content/res/AssetManager;->setConfiguration(IILjava/lang/String;IIIIIIIIIIIIIIII)V HSPLandroid/content/res/AssetManager;->setThemeTo(JLandroid/content/res/AssetManager;J)V HSPLandroid/content/res/AssetManager;->xmlBlockGone(I)V @@ -4976,7 +4978,7 @@ HSPLandroid/content/res/ColorStateList$ColorStateListFactory;-><init>(Landroid/c 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;)Landroid/content/res/ColorStateList;+]Landroid/content/res/ColorStateList;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 @@ -4988,13 +4990,13 @@ 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;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V+]Ljava/lang/String;Ljava/lang/String;]Landroid/util/AttributeSet;Landroid/content/res/XmlBlock$Parser;]Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/XmlBlock$Parser;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; 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;->valueOf(I)Landroid/content/res/ColorStateList;+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/lang/ref/WeakReference;Ljava/lang/ref/WeakReference; 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; @@ -5020,13 +5022,13 @@ 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>()V+]Landroid/content/res/Configuration;Landroid/content/res/Configuration; 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+]Ljava/lang/String;Ljava/lang/String;]Ljava/util/Locale;Ljava/util/Locale;]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;]Landroid/os/LocaleList;Landroid/os/LocaleList; 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;->diff(Landroid/content/res/Configuration;ZZ)I+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;]Landroid/os/LocaleList;Landroid/os/LocaleList; 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 @@ -5036,7 +5038,7 @@ HSPLandroid/content/res/Configuration;->getGrammaticalGender()I HSPLandroid/content/res/Configuration;->getLayoutDirection()I HSPLandroid/content/res/Configuration;->getLocales()Landroid/os/LocaleList; HSPLandroid/content/res/Configuration;->getScreenLayoutNoDirection(I)I -HSPLandroid/content/res/Configuration;->hashCode()I +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 @@ -5059,7 +5061,7 @@ 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;->getInstance(JLandroid/content/res/Resources;Landroid/content/res/Resources$Theme;)Ljava/lang/Object;+]Landroid/content/res/ConstantState;Landroid/animation/StateListAnimator$StateListAnimatorConstantState;,Landroid/content/res/ColorStateList$ColorStateListFactory;]Landroid/content/res/ConfigurationBoundResourceCache;Landroid/content/res/ConfigurationBoundResourceCache; 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 @@ -5069,12 +5071,12 @@ 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;->getInstance(JLandroid/content/res/Resources;Landroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;+]Landroid/graphics/drawable/Drawable$ConstantState;megamorphic_types]Landroid/content/res/DrawableCache;Landroid/content/res/DrawableCache; 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/FontResourcesParser;->parse(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/Resources;)Landroid/content/res/FontResourcesParser$FamilyResourceEntry; -HSPLandroid/content/res/FontResourcesParser;->readFamilies(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/Resources;)Landroid/content/res/FontResourcesParser$FamilyResourceEntry; -HSPLandroid/content/res/FontResourcesParser;->readFamily(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/Resources;)Landroid/content/res/FontResourcesParser$FamilyResourceEntry; +HSPLandroid/content/res/FontResourcesParser;->readFamilies(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/Resources;)Landroid/content/res/FontResourcesParser$FamilyResourceEntry;+]Ljava/lang/String;Ljava/lang/String;]Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/XmlBlock$Parser; +HSPLandroid/content/res/FontResourcesParser;->readFamily(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/Resources;)Landroid/content/res/FontResourcesParser$FamilyResourceEntry;+]Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/XmlBlock$Parser;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; HSPLandroid/content/res/FontScaleConverterFactory;->forScale(F)Landroid/content/res/FontScaleConverter; HSPLandroid/content/res/FontScaleConverterFactory;->isNonLinearFontScalingActive(F)Z HSPLandroid/content/res/GradientColor;-><init>()V @@ -5097,17 +5099,17 @@ 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;->getKey()Landroid/content/res/Resources$ThemeKey;+]Landroid/content/res/ResourcesImpl$ThemeImpl;Landroid/content/res/ResourcesImpl$ThemeImpl; 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; -HSPLandroid/content/res/Resources$Theme;->obtainStyledAttributes([I)Landroid/content/res/TypedArray; +HSPLandroid/content/res/Resources$Theme;->obtainStyledAttributes(I[I)Landroid/content/res/TypedArray;+]Landroid/content/res/ResourcesImpl$ThemeImpl;Landroid/content/res/ResourcesImpl$ThemeImpl; +HSPLandroid/content/res/Resources$Theme;->obtainStyledAttributes(Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray;+]Landroid/content/res/ResourcesImpl$ThemeImpl;Landroid/content/res/ResourcesImpl$ThemeImpl; +HSPLandroid/content/res/Resources$Theme;->obtainStyledAttributes([I)Landroid/content/res/TypedArray;+]Landroid/content/res/ResourcesImpl$ThemeImpl;Landroid/content/res/ResourcesImpl$ThemeImpl; 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;->resolveAttribute(ILandroid/util/TypedValue;Z)Z+]Landroid/content/res/ResourcesImpl$ThemeImpl;Landroid/content/res/ResourcesImpl$ThemeImpl; 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 @@ -5116,11 +5118,12 @@ 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;->findValue(IZ)I 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 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 +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 @@ -5142,12 +5145,12 @@ HSPLandroid/content/res/Resources;->getConfiguration()Landroid/content/res/Confi 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; +HSPLandroid/content/res/Resources;->getDisplayAdjustments()Landroid/view/DisplayAdjustments;+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl; +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;->getDrawableForDensity(IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl;]Landroid/content/res/Resources;Landroid/content/res/Resources; 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; @@ -5163,31 +5166,31 @@ HSPLandroid/content/res/Resources;->getQuantityString(II[Ljava/lang/Object;)Ljav 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;->getResourcePackageName(I)Ljava/lang/String;+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl; 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;->getString(I)Ljava/lang/String;+]Landroid/content/res/Resources;Landroid/content/res/Resources;]Ljava/lang/CharSequence;Ljava/lang/String;,Landroid/text/SpannedString; +HSPLandroid/content/res/Resources;->getString(I[Ljava/lang/Object;)Ljava/lang/String;+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/content/res/Configuration;Landroid/content/res/Configuration;]Landroid/os/LocaleList;Landroid/os/LocaleList; 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;->getText(I)Ljava/lang/CharSequence;+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl;]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager; HSPLandroid/content/res/Resources;->getTextArray(I)[Ljava/lang/CharSequence; -HSPLandroid/content/res/Resources;->getValue(ILandroid/util/TypedValue;Z)V +HSPLandroid/content/res/Resources;->getValue(ILandroid/util/TypedValue;Z)V+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl; 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;->lambda$dumpHistory$1(Ljava/util/Map;Landroid/content/res/Resources;)V -HSPLandroid/content/res/Resources;->loadColorStateList(Landroid/util/TypedValue;ILandroid/content/res/Resources$Theme;)Landroid/content/res/ColorStateList; +HSPLandroid/content/res/Resources;->loadColorStateList(Landroid/util/TypedValue;ILandroid/content/res/Resources$Theme;)Landroid/content/res/ColorStateList;+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl; 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;->loadDrawable(Landroid/util/TypedValue;IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl; +HSPLandroid/content/res/Resources;->loadXmlResourceParser(ILjava/lang/String;)Landroid/content/res/XmlResourceParser;+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Ljava/lang/CharSequence;Ljava/lang/String; +HSPLandroid/content/res/Resources;->loadXmlResourceParser(Ljava/lang/String;IILjava/lang/String;)Landroid/content/res/XmlResourceParser;+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl; 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; +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;->obtainTypedArray(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;->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; @@ -5225,15 +5228,15 @@ 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;->resolveAttribute(ILandroid/util/TypedValue;Z)Z+]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager; 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 +HSPLandroid/content/res/ResourcesImpl;-><init>(Landroid/content/res/AssetManager;Landroid/util/DisplayMetrics;Landroid/content/res/Configuration;Landroid/view/DisplayAdjustments;)V+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl;]Landroid/view/DisplayAdjustments;Landroid/view/DisplayAdjustments;]Landroid/content/res/Configuration;Landroid/content/res/Configuration;]Landroid/util/DisplayMetrics;Landroid/util/DisplayMetrics; 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 -HSPLandroid/content/res/ResourcesImpl;->calcConfigChanges(Landroid/content/res/Configuration;)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+]Landroid/content/res/CompatibilityInfo;Landroid/content/res/CompatibilityInfo$1;]Landroid/content/res/Configuration;Landroid/content/res/Configuration;]Landroid/view/DisplayAdjustments;Landroid/view/DisplayAdjustments;]Landroid/os/LocaleList;Landroid/os/LocaleList; 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 @@ -5241,7 +5244,7 @@ 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;->getColorStateListFromInt(Landroid/util/TypedValue;J)Landroid/content/res/ColorStateList;+]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;]Landroid/content/res/ConstantState;Landroid/content/res/ColorStateList$ColorStateListFactory; 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; @@ -5251,25 +5254,25 @@ HSPLandroid/content/res/ResourcesImpl;->getPluralRule()Landroid/icu/text/PluralR 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;->getResourcePackageName(I)Ljava/lang/String;+]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager; 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;->getValue(ILandroid/util/TypedValue;Z)V+]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager; HSPLandroid/content/res/ResourcesImpl;->getValueForDensity(IILandroid/util/TypedValue;Z)V 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; -HSPLandroid/content/res/ResourcesImpl;->loadDrawable(Landroid/content/res/Resources;Landroid/util/TypedValue;IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable; -HSPLandroid/content/res/ResourcesImpl;->loadDrawableForCookie(Landroid/content/res/Resources;Landroid/util/TypedValue;II)Landroid/graphics/drawable/Drawable; -HSPLandroid/content/res/ResourcesImpl;->loadFont(Landroid/content/res/Resources;Landroid/util/TypedValue;I)Landroid/graphics/Typeface; +HSPLandroid/content/res/ResourcesImpl;->loadComplexColorForCookie(Landroid/content/res/Resources;Landroid/util/TypedValue;ILandroid/content/res/Resources$Theme;)Landroid/content/res/ComplexColor;+]Ljava/lang/String;Ljava/lang/String;]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl;]Ljava/lang/CharSequence;Ljava/lang/String;]Landroid/content/res/XmlResourceParser;Landroid/content/res/XmlBlock$Parser; +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;]Landroid/content/res/ComplexColor;Landroid/content/res/ColorStateList;]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray; +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;+]Ljava/lang/String;Ljava/lang/String;]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl;]Landroid/content/res/ResourcesImpl$LookupStack;Landroid/content/res/ResourcesImpl$LookupStack;]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal$SuppliedThreadLocal;]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager;]Ljava/lang/CharSequence;Ljava/lang/String; +HSPLandroid/content/res/ResourcesImpl;->loadFont(Landroid/content/res/Resources;Landroid/util/TypedValue;I)Landroid/graphics/Typeface;+]Ljava/lang/String;Ljava/lang/String;]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl;]Ljava/lang/CharSequence;Ljava/lang/String;]Landroid/graphics/Typeface$Builder;Landroid/graphics/Typeface$Builder; 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/String;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;->openRawResource(ILandroid/util/TypedValue;)Ljava/io/InputStream;+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl;]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager;]Ljava/lang/CharSequence;Ljava/lang/String; 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/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; @@ -5283,45 +5286,45 @@ HSPLandroid/content/res/StringBlock;->applyStyles(Ljava/lang/String;[ILandroid/c HSPLandroid/content/res/StringBlock;->close()V HSPLandroid/content/res/StringBlock;->finalize()V HSPLandroid/content/res/StringBlock;->get(I)Ljava/lang/CharSequence; -HSPLandroid/content/res/StringBlock;->getSequence(I)Ljava/lang/CharSequence;+]Landroid/util/SparseArray;Landroid/util/SparseArray; +HSPLandroid/content/res/StringBlock;->getSequence(I)Ljava/lang/CharSequence;+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/lang/String;Ljava/lang/String; HSPLandroid/content/res/ThemedResourceCache;-><init>()V -HSPLandroid/content/res/ThemedResourceCache;->get(JLandroid/content/res/Resources$Theme;)Ljava/lang/Object; +HSPLandroid/content/res/ThemedResourceCache;->get(JLandroid/content/res/Resources$Theme;)Ljava/lang/Object;+]Ljava/lang/ref/WeakReference;Ljava/lang/ref/WeakReference;]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray; HSPLandroid/content/res/ThemedResourceCache;->getGeneration()I -HSPLandroid/content/res/ThemedResourceCache;->getThemedLocked(Landroid/content/res/Resources$Theme;Z)Landroid/util/LongSparseArray; +HSPLandroid/content/res/ThemedResourceCache;->getThemedLocked(Landroid/content/res/Resources$Theme;Z)Landroid/util/LongSparseArray;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/content/res/Resources$Theme;Landroid/content/res/Resources$Theme;]Landroid/content/res/Resources$ThemeKey;Landroid/content/res/Resources$ThemeKey; 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+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; 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/ThemedResourceCache;->put(JLandroid/content/res/Resources$Theme;Ljava/lang/Object;IZ)V+]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray; +HSPLandroid/content/res/TypedArray;-><init>(Landroid/content/res/Resources;)V+]Landroid/content/res/Resources;Landroid/content/res/Resources; HSPLandroid/content/res/TypedArray;->extractThemeAttrs()[I -HSPLandroid/content/res/TypedArray;->extractThemeAttrs([I)[I +HSPLandroid/content/res/TypedArray;->extractThemeAttrs([I)[I+]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; HSPLandroid/content/res/TypedArray;->getBoolean(IZ)Z -HSPLandroid/content/res/TypedArray;->getChangingConfigurations()I -HSPLandroid/content/res/TypedArray;->getColor(II)I -HSPLandroid/content/res/TypedArray;->getColorStateList(I)Landroid/content/res/ColorStateList; -HSPLandroid/content/res/TypedArray;->getComplexColor(I)Landroid/content/res/ComplexColor; +HSPLandroid/content/res/TypedArray;->getChangingConfigurations()I+]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; +HSPLandroid/content/res/TypedArray;->getColor(II)I+]Landroid/content/res/ColorStateList;Landroid/content/res/ColorStateList;]Landroid/content/res/Resources;Landroid/content/res/Resources; +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;+]Landroid/content/res/Resources;Landroid/content/res/Resources; 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; -HSPLandroid/content/res/TypedArray;->getDrawableForDensity(II)Landroid/graphics/drawable/Drawable; +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;->getFont(I)Landroid/graphics/Typeface;+]Landroid/content/res/Resources;Landroid/content/res/Resources; 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; +HSPLandroid/content/res/TypedArray;->getLayoutDimension(ILjava/lang/String;)I+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; +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; +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 @@ -5330,7 +5333,7 @@ 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; +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; 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; @@ -5343,27 +5346,27 @@ HSPLandroid/content/res/XmlBlock$Parser;->getAttributeBooleanValue(Ljava/lang/St 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;->getAttributeName(I)Ljava/lang/String;+]Landroid/content/res/StringBlock;Landroid/content/res/StringBlock; 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; -HSPLandroid/content/res/XmlBlock$Parser;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; +HSPLandroid/content/res/XmlBlock$Parser;->getAttributeResourceValue(Ljava/lang/String;Ljava/lang/String;I)I+]Landroid/content/res/XmlBlock$Parser;Landroid/content/res/XmlBlock$Parser; +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;+]Landroid/content/res/XmlBlock$Parser;Landroid/content/res/XmlBlock$Parser; 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; +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;->getSequenceString(Ljava/lang/CharSequence;)Ljava/lang/String;+]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;->getText()Ljava/lang/String;+]Landroid/content/res/StringBlock;Landroid/content/res/StringBlock; HSPLandroid/content/res/XmlBlock$Parser;->isEmptyElementTag()Z HSPLandroid/content/res/XmlBlock$Parser;->next()I+]Landroid/content/res/XmlBlock$Parser;Landroid/content/res/XmlBlock$Parser; -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$Parser;->nextTag()I+]Landroid/content/res/XmlBlock$Parser;Landroid/content/res/XmlBlock$Parser; +HSPLandroid/content/res/XmlBlock$Parser;->nextText()Ljava/lang/String;+]Landroid/content/res/XmlBlock$Parser;Landroid/content/res/XmlBlock$Parser; +HSPLandroid/content/res/XmlBlock$Parser;->require(ILjava/lang/String;Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String;]Landroid/content/res/XmlBlock$Parser;Landroid/content/res/XmlBlock$Parser; 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 @@ -5377,82 +5380,82 @@ 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;->decOpenCountLocked()V+]Ljava/lang/Object;Landroid/content/res/XmlBlock;]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager; 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/content/type/DefaultMimeMapFactory;->parseTypes(Llibcore/content/type/MimeMap$Builder;Ljava/util/function/Function;Ljava/lang/String;)V+]Ljava/util/function/Function;Landroid/content/type/DefaultMimeMapFactory$$ExternalSyntheticLambda0;]Ljava/io/InputStream;Llibcore/io/ClassPathURLStreamHandler$ClassPathURLConnection$1;]Ljava/io/BufferedReader;Ljava/io/BufferedReader; HSPLandroid/database/AbstractCursor$SelfContentObserver;-><init>(Landroid/database/AbstractCursor;)V HSPLandroid/database/AbstractCursor$SelfContentObserver;->onChange(Z)V -HSPLandroid/database/AbstractCursor;-><init>()V -HSPLandroid/database/AbstractCursor;->checkPosition()V -HSPLandroid/database/AbstractCursor;->close()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/MatrixCursor;,Landroid/database/sqlite/SQLiteCursor;,Landroid/database/BulkCursorToCursorAdaptor;]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard;]Landroid/database/ContentObservable;Landroid/database/ContentObservable; HSPLandroid/database/AbstractCursor;->fillWindow(ILandroid/database/CursorWindow;)V -HSPLandroid/database/AbstractCursor;->finalize()V -HSPLandroid/database/AbstractCursor;->getColumnCount()I -HSPLandroid/database/AbstractCursor;->getColumnIndex(Ljava/lang/String;)I +HSPLandroid/database/AbstractCursor;->finalize()V+]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard; +HSPLandroid/database/AbstractCursor;->getColumnCount()I+]Landroid/database/AbstractCursor;Landroid/database/BulkCursorToCursorAdaptor; +HSPLandroid/database/AbstractCursor;->getColumnIndex(Ljava/lang/String;)I+]Ljava/lang/String;Ljava/lang/String;]Landroid/database/AbstractCursor;Landroid/database/MatrixCursor;,Landroid/database/BulkCursorToCursorAdaptor; HSPLandroid/database/AbstractCursor;->getColumnIndexOrThrow(Ljava/lang/String;)I HSPLandroid/database/AbstractCursor;->getColumnName(I)Ljava/lang/String; HSPLandroid/database/AbstractCursor;->getExtras()Landroid/os/Bundle; HSPLandroid/database/AbstractCursor;->getPosition()I HSPLandroid/database/AbstractCursor;->getWantsAllOnMoveCalls()Z HSPLandroid/database/AbstractCursor;->getWindow()Landroid/database/CursorWindow; -HSPLandroid/database/AbstractCursor;->isAfterLast()Z +HSPLandroid/database/AbstractCursor;->isAfterLast()Z+]Landroid/database/AbstractCursor;Landroid/database/sqlite/SQLiteCursor; 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 -HSPLandroid/database/AbstractCursor;->moveToPosition(I)Z +HSPLandroid/database/AbstractCursor;->moveToNext()Z+]Landroid/database/AbstractCursor;Landroid/database/MatrixCursor;,Landroid/database/sqlite/SQLiteCursor;,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 +HSPLandroid/database/AbstractCursor;->onDeactivateOrClose()V+]Landroid/database/DataSetObservable;Landroid/database/DataSetObservable;]Landroid/content/ContentResolver;Landroid/app/ContextImpl$ApplicationContentResolver; 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;->setNotificationUris(Landroid/content/ContentResolver;Ljava/util/List;IZ)V+]Ljava/util/List;Ljava/util/Arrays$ArrayList;]Landroid/content/ContentResolver;Landroid/app/ContextImpl$ApplicationContentResolver; 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 -HSPLandroid/database/AbstractWindowedCursor;->getBlob(I)[B -HSPLandroid/database/AbstractWindowedCursor;->getDouble(I)D +HSPLandroid/database/AbstractWindowedCursor;->closeWindow()V+]Landroid/database/CursorWindow;Landroid/database/CursorWindow; +HSPLandroid/database/AbstractWindowedCursor;->getBlob(I)[B+]Landroid/database/AbstractWindowedCursor;Landroid/database/sqlite/SQLiteCursor;]Landroid/database/CursorWindow;Landroid/database/CursorWindow; +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 -HSPLandroid/database/AbstractWindowedCursor;->getLong(I)J -HSPLandroid/database/AbstractWindowedCursor;->getString(I)Ljava/lang/String; -HSPLandroid/database/AbstractWindowedCursor;->getType(I)I +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+]Landroid/database/AbstractWindowedCursor;Landroid/database/sqlite/SQLiteCursor;,Landroid/database/BulkCursorToCursorAdaptor;]Landroid/database/CursorWindow;Landroid/database/CursorWindow; HSPLandroid/database/AbstractWindowedCursor;->getWindow()Landroid/database/CursorWindow; HSPLandroid/database/AbstractWindowedCursor;->hasWindow()Z -HSPLandroid/database/AbstractWindowedCursor;->isNull(I)Z -HSPLandroid/database/AbstractWindowedCursor;->onDeactivateOrClose()V +HSPLandroid/database/AbstractWindowedCursor;->isNull(I)Z+]Landroid/database/AbstractWindowedCursor;Landroid/database/sqlite/SQLiteCursor;,Landroid/database/BulkCursorToCursorAdaptor;]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/BulkCursorDescriptor;->readFromParcel(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/database/CursorWindow$1;]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/database/BulkCursorDescriptor;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/database/IBulkCursor;Landroid/database/CursorToBulkCursorAdaptor;]Landroid/os/Parcel;Landroid/os/Parcel; 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/BulkCursorProxy;->close()V+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/database/BulkCursorProxy;->getWindow(I)Landroid/database/CursorWindow;+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/database/BulkCursorToCursorAdaptor;-><init>()V -HSPLandroid/database/BulkCursorToCursorAdaptor;->close()V +HSPLandroid/database/BulkCursorToCursorAdaptor;->close()V+]Landroid/database/IBulkCursor;Landroid/database/BulkCursorProxy; 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 +HSPLandroid/database/BulkCursorToCursorAdaptor;->initialize(Landroid/database/BulkCursorDescriptor;)V+]Landroid/database/BulkCursorToCursorAdaptor;Landroid/database/BulkCursorToCursorAdaptor; +HSPLandroid/database/BulkCursorToCursorAdaptor;->onMove(II)Z+]Landroid/database/IBulkCursor;Landroid/database/BulkCursorProxy;]Landroid/database/CursorWindow;Landroid/database/CursorWindow;]Landroid/database/BulkCursorToCursorAdaptor;Landroid/database/BulkCursorToCursorAdaptor; HSPLandroid/database/BulkCursorToCursorAdaptor;->throwIfCursorIsClosed()V HSPLandroid/database/ContentObservable;-><init>()V HSPLandroid/database/ContentObservable;->dispatchChange(ZLandroid/net/Uri;)V @@ -5470,7 +5473,7 @@ 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/ContentObserver;->releaseContentObserver()Landroid/database/IContentObserver;+]Landroid/database/ContentObserver$Transport;Landroid/database/ContentObserver$Transport; 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 @@ -5480,74 +5483,74 @@ 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;->getBulkCursorDescriptor()Landroid/database/BulkCursorDescriptor;+]Landroid/database/CrossProcessCursor;Landroid/database/MatrixCursor; +HSPLandroid/database/CursorToBulkCursorAdaptor;->getWindow(I)Landroid/database/CursorWindow;+]Landroid/database/CursorWindow;Landroid/database/CursorWindow;]Landroid/database/CrossProcessCursor;Landroid/database/MatrixCursor; 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;)V+]Landroid/os/Parcel;Landroid/os/Parcel;]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard; 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 -HSPLandroid/database/CursorWindow;->allocRow()Z +HSPLandroid/database/CursorWindow;-><init>(Ljava/lang/String;J)V+]Ljava/lang/String;Ljava/lang/String;]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard; +HSPLandroid/database/CursorWindow;->allocRow()Z+]Landroid/database/CursorWindow;Landroid/database/CursorWindow; HSPLandroid/database/CursorWindow;->clear()V -HSPLandroid/database/CursorWindow;->dispose()V -HSPLandroid/database/CursorWindow;->finalize()V -HSPLandroid/database/CursorWindow;->getBlob(II)[B +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+]Landroid/database/CursorWindow;Landroid/database/CursorWindow; HSPLandroid/database/CursorWindow;->getCursorWindowSize()I -HSPLandroid/database/CursorWindow;->getDouble(II)D +HSPLandroid/database/CursorWindow;->getDouble(II)D+]Landroid/database/CursorWindow;Landroid/database/CursorWindow; HSPLandroid/database/CursorWindow;->getFloat(II)F -HSPLandroid/database/CursorWindow;->getInt(II)I -HSPLandroid/database/CursorWindow;->getLong(II)J -HSPLandroid/database/CursorWindow;->getNumRows()I +HSPLandroid/database/CursorWindow;->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; -HSPLandroid/database/CursorWindow;->getType(II)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;->putString(Ljava/lang/String;II)Z+]Landroid/database/CursorWindow;Landroid/database/CursorWindow; 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;->getBlob(I)[B+]Landroid/database/Cursor;missing_types +HSPLandroid/database/CursorWrapper;->getColumnCount()I+]Landroid/database/Cursor;missing_types +HSPLandroid/database/CursorWrapper;->getColumnIndex(Ljava/lang/String;)I+]Landroid/database/Cursor;Landroid/database/BulkCursorToCursorAdaptor; 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 -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;->getInt(I)I+]Landroid/database/Cursor;missing_types +HSPLandroid/database/CursorWrapper;->getLong(I)J+]Landroid/database/Cursor;missing_types +HSPLandroid/database/CursorWrapper;->getPosition()I+]Landroid/database/Cursor;missing_types +HSPLandroid/database/CursorWrapper;->getString(I)Ljava/lang/String;+]Landroid/database/Cursor;missing_types +HSPLandroid/database/CursorWrapper;->getType(I)I+]Landroid/database/Cursor;missing_types HSPLandroid/database/CursorWrapper;->getWrappedCursor()Landroid/database/Cursor; HSPLandroid/database/CursorWrapper;->isAfterLast()Z HSPLandroid/database/CursorWrapper;->isClosed()Z HSPLandroid/database/CursorWrapper;->isLast()Z -HSPLandroid/database/CursorWrapper;->isNull(I)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;->moveToNext()Z+]Landroid/database/Cursor;missing_types 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 +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 -HSPLandroid/database/DatabaseUtils;->cursorFillWindow(Landroid/database/Cursor;ILandroid/database/CursorWindow;)V -HSPLandroid/database/DatabaseUtils;->getSqlStatementType(Ljava/lang/String;)I +HSPLandroid/database/DatabaseUtils;->cursorFillWindow(Landroid/database/Cursor;ILandroid/database/CursorWindow;)V+]Landroid/database/CursorWindow;Landroid/database/CursorWindow;]Landroid/database/Cursor;Landroid/database/MatrixCursor; +HSPLandroid/database/DatabaseUtils;->getSqlStatementType(Ljava/lang/String;)I+]Ljava/lang/String;Ljava/lang/String; 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/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/String;)J+]Landroid/database/sqlite/SQLiteStatement;Landroid/database/sqlite/SQLiteStatement;]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase; 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 @@ -5563,7 +5566,7 @@ 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;-><init>()V+]Landroid/database/IContentObserver$Stub;Landroid/database/ContentObserver$Transport; 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; @@ -5582,7 +5585,7 @@ 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;->getString(I)Ljava/lang/String;+]Ljava/lang/Object;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 @@ -5595,26 +5598,26 @@ 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 +HSPLandroid/database/Observable;->unregisterAll()V+]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/database/Observable;->unregisterObserver(Ljava/lang/Object;)V HSPLandroid/database/sqlite/SQLiteClosable;-><init>()V -HSPLandroid/database/sqlite/SQLiteClosable;->acquireReference()V -HSPLandroid/database/sqlite/SQLiteClosable;->close()V -HSPLandroid/database/sqlite/SQLiteClosable;->releaseReference()V+]Landroid/database/sqlite/SQLiteClosable;Landroid/database/CursorWindow;,Landroid/database/sqlite/SQLiteStatement;,Landroid/database/sqlite/SQLiteQuery; +HSPLandroid/database/sqlite/SQLiteClosable;->acquireReference()V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; +HSPLandroid/database/sqlite/SQLiteClosable;->close()V+]Landroid/database/sqlite/SQLiteClosable;Landroid/database/CursorWindow;,Landroid/database/sqlite/SQLiteStatement;,Landroid/database/sqlite/SQLiteQuery;,Landroid/database/sqlite/SQLiteDatabase; +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;->describe(Ljava/lang/StringBuilder;Z)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; 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 +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 +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 @@ -5626,21 +5629,21 @@ HSPLandroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->entryRemov HSPLandroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->entryRemoved(ZLjava/lang/String;Landroid/database/sqlite/SQLiteConnection$PreparedStatement;Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V HSPLandroid/database/sqlite/SQLiteConnection;->-$$Nest$mfinalizePreparedStatement(Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V HSPLandroid/database/sqlite/SQLiteConnection;-><init>(Landroid/database/sqlite/SQLiteConnectionPool;Landroid/database/sqlite/SQLiteDatabaseConfiguration;IZ)V -HSPLandroid/database/sqlite/SQLiteConnection;->acquirePreparedStatement(Ljava/lang/String;)Landroid/database/sqlite/SQLiteConnection$PreparedStatement; -HSPLandroid/database/sqlite/SQLiteConnection;->applyBlockGuardPolicy(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V -HSPLandroid/database/sqlite/SQLiteConnection;->attachCancellationSignal(Landroid/os/CancellationSignal;)V -HSPLandroid/database/sqlite/SQLiteConnection;->bindArguments(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;[Ljava/lang/Object;)V +HSPLandroid/database/sqlite/SQLiteConnection;->acquirePreparedStatement(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;]Ljava/lang/Boolean;Ljava/lang/Boolean; 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 +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 -HSPLandroid/database/sqlite/SQLiteConnection;->executeForChangedRowCount(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)I -HSPLandroid/database/sqlite/SQLiteConnection;->executeForCursorWindow(Ljava/lang/String;[Ljava/lang/Object;Landroid/database/CursorWindow;IIZLandroid/os/CancellationSignal;)I -HSPLandroid/database/sqlite/SQLiteConnection;->executeForLastInsertedRowId(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)J +HSPLandroid/database/sqlite/SQLiteConnection;->execute(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)V+]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$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/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+]Landroid/database/sqlite/SQLiteConnection$OperationLog;Landroid/database/sqlite/SQLiteConnection$OperationLog; HSPLandroid/database/sqlite/SQLiteConnection;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)J+]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$OperationLog;Landroid/database/sqlite/SQLiteConnection$OperationLog; HSPLandroid/database/sqlite/SQLiteConnection;->executePerConnectionSqlFromConfiguration(I)V @@ -5649,15 +5652,15 @@ HSPLandroid/database/sqlite/SQLiteConnection;->finalizePreparedStatement(Landroi 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 +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;->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 +HSPLandroid/database/sqlite/SQLiteConnection;->prepare(Ljava/lang/String;Landroid/database/sqlite/SQLiteStatementInfo;)V+]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;->releasePreparedStatement(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 @@ -5691,13 +5694,13 @@ HSPLandroid/database/sqlite/SQLiteConnectionPool;->discardAcquiredConnectionsLoc HSPLandroid/database/sqlite/SQLiteConnectionPool;->dispose(Z)V HSPLandroid/database/sqlite/SQLiteConnectionPool;->dump(Landroid/util/Printer;ZLandroid/util/ArraySet;)V HSPLandroid/database/sqlite/SQLiteConnectionPool;->finalize()V -HSPLandroid/database/sqlite/SQLiteConnectionPool;->finishAcquireConnectionLocked(Landroid/database/sqlite/SQLiteConnection;I)V +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 +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; @@ -5705,29 +5708,29 @@ HSPLandroid/database/sqlite/SQLiteConnectionPool;->reconfigure(Landroid/database HSPLandroid/database/sqlite/SQLiteConnectionPool;->reconfigureAllConnectionsLocked()V HSPLandroid/database/sqlite/SQLiteConnectionPool;->recycleConnectionLocked(Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;)Z HSPLandroid/database/sqlite/SQLiteConnectionPool;->recycleConnectionWaiterLocked(Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;)V -HSPLandroid/database/sqlite/SQLiteConnectionPool;->releaseConnection(Landroid/database/sqlite/SQLiteConnection;)V +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; -HSPLandroid/database/sqlite/SQLiteConnectionPool;->tryAcquirePrimaryConnectionLocked(I)Landroid/database/sqlite/SQLiteConnection; -HSPLandroid/database/sqlite/SQLiteConnectionPool;->waitForConnection(Ljava/lang/String;ILandroid/os/CancellationSignal;)Landroid/database/sqlite/SQLiteConnection; +HSPLandroid/database/sqlite/SQLiteConnectionPool;->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;+]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;->waitForConnection(Ljava/lang/String;ILandroid/os/CancellationSignal;)Landroid/database/sqlite/SQLiteConnection;+]Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/atomic/AtomicBoolean;]Landroid/os/CancellationSignal;Landroid/os/CancellationSignal; HSPLandroid/database/sqlite/SQLiteConnectionPool;->wakeConnectionWaitersLocked()V HSPLandroid/database/sqlite/SQLiteConstraintException;-><init>(Ljava/lang/String;)V -HSPLandroid/database/sqlite/SQLiteCursor;-><init>(Landroid/database/sqlite/SQLiteCursorDriver;Ljava/lang/String;Landroid/database/sqlite/SQLiteQuery;)V -HSPLandroid/database/sqlite/SQLiteCursor;->close()V -HSPLandroid/database/sqlite/SQLiteCursor;->fillWindow(I)V +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 +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; -HSPLandroid/database/sqlite/SQLiteCursor;->onMove(II)Z +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$1;->accept(Ljava/io/File;)Z+]Ljava/lang/String;Ljava/lang/String;]Ljava/io/File;Ljava/io/File; 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; @@ -5750,11 +5753,11 @@ HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;-><init>(ILandroid/databas 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 HSPLandroid/database/sqlite/SQLiteDatabase;->beginTransaction()V -HSPLandroid/database/sqlite/SQLiteDatabase;->beginTransaction(Landroid/database/sqlite/SQLiteTransactionListener;Z)V +HSPLandroid/database/sqlite/SQLiteDatabase;->beginTransaction(Landroid/database/sqlite/SQLiteTransactionListener;Z)V+]Landroid/database/sqlite/SQLiteSession;Landroid/database/sqlite/SQLiteSession;]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase; 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;->compileStatement(Ljava/lang/String;)Landroid/database/sqlite/SQLiteStatement;+]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase; 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 @@ -5764,12 +5767,12 @@ 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;->endTransaction()V+]Landroid/database/sqlite/SQLiteSession;Landroid/database/sqlite/SQLiteSession;]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase; 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; +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; @@ -5777,17 +5780,17 @@ 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; -HSPLandroid/database/sqlite/SQLiteDatabase;->getVersion()I -HSPLandroid/database/sqlite/SQLiteDatabase;->inTransaction()Z +HSPLandroid/database/sqlite/SQLiteDatabase;->getThreadSession()Landroid/database/sqlite/SQLiteSession;+]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal$SuppliedThreadLocal; +HSPLandroid/database/sqlite/SQLiteDatabase;->getVersion()I+]Ljava/lang/Long;Ljava/lang/Long; +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;->insertWithOnConflict(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;I)J+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/ContentValues;Landroid/content/ContentValues;]Landroid/database/sqlite/SQLiteStatement;Landroid/database/sqlite/SQLiteStatement;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase;]Ljava/util/Set;Landroid/util/MapCollections$KeySet; 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;->isWriteAheadLoggingEnabled()Z+]Ljava/lang/String;Ljava/lang/String;]Landroid/database/sqlite/SQLiteDatabaseConfiguration;Landroid/database/sqlite/SQLiteDatabaseConfiguration; 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; @@ -5803,26 +5806,26 @@ HSPLandroid/database/sqlite/SQLiteDatabase;->query(ZLjava/lang/String;[Ljava/lan HSPLandroid/database/sqlite/SQLiteDatabase;->queryWithFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;ZLjava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor; HSPLandroid/database/sqlite/SQLiteDatabase;->rawQuery(Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor; HSPLandroid/database/sqlite/SQLiteDatabase;->rawQuery(Ljava/lang/String;[Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor; -HSPLandroid/database/sqlite/SQLiteDatabase;->rawQueryWithFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor; -HSPLandroid/database/sqlite/SQLiteDatabase;->rawQueryWithFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor; +HSPLandroid/database/sqlite/SQLiteDatabase;->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;->setTransactionSuccessful()V+]Landroid/database/sqlite/SQLiteSession;Landroid/database/sqlite/SQLiteSession;]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase; 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 -HSPLandroid/database/sqlite/SQLiteDatabase;->validateSql(Ljava/lang/String;Landroid/os/CancellationSignal;)V +HSPLandroid/database/sqlite/SQLiteDatabase;->validateSql(Ljava/lang/String;Landroid/os/CancellationSignal;)V+]Landroid/database/sqlite/SQLiteSession;Landroid/database/sqlite/SQLiteSession;]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase; 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 +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;->resolveJournalMode()Ljava/lang/String;+]Landroid/database/sqlite/SQLiteDatabaseConfiguration;Landroid/database/sqlite/SQLiteDatabaseConfiguration; 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+]Ljava/lang/String;Ljava/lang/String;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/ArrayList;Ljava/util/ArrayList; @@ -5831,7 +5834,7 @@ HSPLandroid/database/sqlite/SQLiteDebug;->getDatabaseInfo()Landroid/database/sql HSPLandroid/database/sqlite/SQLiteDebug;->shouldLogSlowQuery(J)Z HSPLandroid/database/sqlite/SQLiteDirectCursorDriver;-><init>(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)V HSPLandroid/database/sqlite/SQLiteDirectCursorDriver;->cursorClosed()V -HSPLandroid/database/sqlite/SQLiteDirectCursorDriver;->query(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;[Ljava/lang/String;)Landroid/database/Cursor; +HSPLandroid/database/sqlite/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; @@ -5848,7 +5851,7 @@ HSPLandroid/database/sqlite/SQLiteOpenHelper;-><init>(Landroid/content/Context;L 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; +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; @@ -5858,9 +5861,9 @@ HSPLandroid/database/sqlite/SQLiteOpenHelper;->setFilePermissionsForDb(Ljava/lan HSPLandroid/database/sqlite/SQLiteOpenHelper;->setIdleConnectionTimeout(J)V HSPLandroid/database/sqlite/SQLiteOpenHelper;->setOpenParamsBuilder(Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;)V HSPLandroid/database/sqlite/SQLiteOpenHelper;->setWriteAheadLoggingEnabled(Z)V -HSPLandroid/database/sqlite/SQLiteProgram;-><init>(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)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 +HSPLandroid/database/sqlite/SQLiteProgram;->bindAllArgsAsStrings([Ljava/lang/String;)V+]Landroid/database/sqlite/SQLiteProgram;Landroid/database/sqlite/SQLiteStatement;,Landroid/database/sqlite/SQLiteQuery; HSPLandroid/database/sqlite/SQLiteProgram;->bindBlob(I[B)V HSPLandroid/database/sqlite/SQLiteProgram;->bindDouble(ID)V HSPLandroid/database/sqlite/SQLiteProgram;->bindLong(IJ)V @@ -5869,56 +5872,56 @@ 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 +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; +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 +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 +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 -HSPLandroid/database/sqlite/SQLiteQueryBuilder;->appendColumns(Ljava/lang/StringBuilder;[Ljava/lang/String;)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; +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;+]Landroid/database/sqlite/SQLiteQueryBuilder;Landroid/database/sqlite/SQLiteQueryBuilder; +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;->computeSingleProjection(Ljava/lang/String;)Ljava/lang/String;+]Ljava/util/Map;Ljava/util/HashMap; 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;->computeWhere(Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; 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;->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;+]Landroid/database/sqlite/SQLiteQueryBuilder;Landroid/database/sqlite/SQLiteQueryBuilder; +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;+]Landroid/database/sqlite/SQLiteQueryBuilder;Landroid/database/sqlite/SQLiteQueryBuilder; +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;+]Landroid/database/sqlite/SQLiteQueryBuilder;Landroid/database/sqlite/SQLiteQueryBuilder;]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase; 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/SQLiteQueryBuilder;->wrap(Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; 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 +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;->beginTransactionUnchecked(ILandroid/database/sqlite/SQLiteTransactionListener;ILandroid/os/CancellationSignal;)V+]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection; HSPLandroid/database/sqlite/SQLiteSession;->endTransaction(Landroid/os/CancellationSignal;)V -HSPLandroid/database/sqlite/SQLiteSession;->endTransactionUnchecked(Landroid/os/CancellationSignal;Z)V +HSPLandroid/database/sqlite/SQLiteSession;->endTransactionUnchecked(Landroid/os/CancellationSignal;Z)V+]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection; HSPLandroid/database/sqlite/SQLiteSession;->execute(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)V -HSPLandroid/database/sqlite/SQLiteSession;->executeForChangedRowCount(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)I -HSPLandroid/database/sqlite/SQLiteSession;->executeForCursorWindow(Ljava/lang/String;[Ljava/lang/Object;Landroid/database/CursorWindow;IIZILandroid/os/CancellationSignal;)I +HSPLandroid/database/sqlite/SQLiteSession;->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 +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 +HSPLandroid/database/sqlite/SQLiteSession;->prepare(Ljava/lang/String;ILandroid/os/CancellationSignal;Landroid/database/sqlite/SQLiteStatementInfo;)V+]Landroid/os/CancellationSignal;Landroid/os/CancellationSignal;]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection; HSPLandroid/database/sqlite/SQLiteSession;->recycleTransaction(Landroid/database/sqlite/SQLiteSession$Transaction;)V -HSPLandroid/database/sqlite/SQLiteSession;->releaseConnection()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 @@ -5928,7 +5931,7 @@ HSPLandroid/database/sqlite/SQLiteSession;->yieldTransactionUnchecked(JLandroid/ HSPLandroid/database/sqlite/SQLiteStatement;-><init>(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/Object;)V HSPLandroid/database/sqlite/SQLiteStatement;->execute()V HSPLandroid/database/sqlite/SQLiteStatement;->executeInsert()J -HSPLandroid/database/sqlite/SQLiteStatement;->executeUpdateDelete()I +HSPLandroid/database/sqlite/SQLiteStatement;->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 @@ -5958,44 +5961,44 @@ 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/Matrix;Landroid/graphics/Paint;)V+]Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;]Landroid/graphics/Paint;Landroid/graphics/Paint;]Landroid/graphics/Matrix;Landroid/graphics/Matrix; +HSPLandroid/graphics/BaseCanvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Paint;)V+]Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;]Landroid/graphics/Paint;Landroid/graphics/Paint;]Landroid/graphics/BaseCanvas;Landroid/graphics/Canvas; 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;->drawLine(FFFFLandroid/graphics/Paint;)V+]Landroid/graphics/Paint;Landroid/graphics/Paint; +HSPLandroid/graphics/BaseCanvas;->drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V+]Landroid/graphics/Path;Landroid/graphics/Path; 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/Paint;)V+]Landroid/graphics/Paint;missing_types]Landroid/graphics/BaseCanvas;Landroid/view/Surface$CompatibleCanvas;,Landroid/graphics/Canvas; 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 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;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Paint;)V+]Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;]Landroid/graphics/Paint;Landroid/graphics/Paint;]Landroid/graphics/BaseRecordingCanvas;Landroid/graphics/RecordingCanvas; HSPLandroid/graphics/BaseRecordingCanvas;->drawCircle(FFFLandroid/graphics/Paint;)V -HSPLandroid/graphics/BaseRecordingCanvas;->drawColor(I)V +HSPLandroid/graphics/BaseRecordingCanvas;->drawColor(I)V+]Landroid/graphics/BlendMode;Landroid/graphics/BlendMode; HSPLandroid/graphics/BaseRecordingCanvas;->drawColor(ILandroid/graphics/PorterDuff$Mode;)V -HSPLandroid/graphics/BaseRecordingCanvas;->drawLine(FFFFLandroid/graphics/Paint;)V +HSPLandroid/graphics/BaseRecordingCanvas;->drawLine(FFFFLandroid/graphics/Paint;)V+]Landroid/graphics/Paint;Landroid/graphics/Paint; 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 +HSPLandroid/graphics/BaseRecordingCanvas;->drawPatch(Landroid/graphics/NinePatch;Landroid/graphics/Rect;Landroid/graphics/Paint;)V+]Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;]Landroid/graphics/Paint;Landroid/graphics/Paint;]Landroid/graphics/NinePatch;Landroid/graphics/NinePatch;]Landroid/graphics/BaseRecordingCanvas;Landroid/graphics/RecordingCanvas; +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 HSPLandroid/graphics/BaseRecordingCanvas;->drawRect(Landroid/graphics/Rect;Landroid/graphics/Paint;)V -HSPLandroid/graphics/BaseRecordingCanvas;->drawRect(Landroid/graphics/RectF;Landroid/graphics/Paint;)V +HSPLandroid/graphics/BaseRecordingCanvas;->drawRect(Landroid/graphics/RectF;Landroid/graphics/Paint;)V+]Landroid/graphics/Paint;Landroid/graphics/Paint; HSPLandroid/graphics/BaseRecordingCanvas;->drawRoundRect(FFFFFFLandroid/graphics/Paint;)V HSPLandroid/graphics/BaseRecordingCanvas;->drawRoundRect(Landroid/graphics/RectF;FFLandroid/graphics/Paint;)V -HSPLandroid/graphics/BaseRecordingCanvas;->drawText(Ljava/lang/CharSequence;IIFFLandroid/graphics/Paint;)V -HSPLandroid/graphics/BaseRecordingCanvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V -HSPLandroid/graphics/BaseRecordingCanvas;->drawTextRun(Ljava/lang/CharSequence;IIIIFFZLandroid/graphics/Paint;)V +HSPLandroid/graphics/BaseRecordingCanvas;->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+]Ljava/lang/String;Ljava/lang/String; +HSPLandroid/graphics/BaseRecordingCanvas;->drawTextRun(Ljava/lang/CharSequence;IIIIFFZLandroid/graphics/Paint;)V+]Landroid/graphics/Paint;Landroid/text/TextPaint;]Ljava/lang/CharSequence;Ljava/lang/String; 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;-><init>(JIIIZ[BLandroid/graphics/NinePatch$InsetStruct;Z)V+]Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry;]Ljava/lang/Class;Ljava/lang/Class; HSPLandroid/graphics/Bitmap;->checkHardware(Ljava/lang/String;)V HSPLandroid/graphics/Bitmap;->checkPixelAccess(II)V HSPLandroid/graphics/Bitmap;->checkPixelsAccess(IIIIII[I)V @@ -6069,7 +6072,7 @@ 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;->blendModeToPorterDuffMode(Landroid/graphics/BlendMode;)Landroid/graphics/PorterDuff$Mode;+]Landroid/graphics/BlendMode;Landroid/graphics/BlendMode; HSPLandroid/graphics/BlendMode;->fromValue(I)Landroid/graphics/BlendMode; HSPLandroid/graphics/BlendMode;->getXfermode()Landroid/graphics/Xfermode; HSPLandroid/graphics/BlendMode;->toValue(Landroid/graphics/BlendMode;)I @@ -6082,8 +6085,8 @@ 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;->clipPath(Landroid/graphics/Path;)Z+]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas; +HSPLandroid/graphics/Canvas;->clipPath(Landroid/graphics/Path;Landroid/graphics/Region$Op;)Z+]Landroid/graphics/Path;Landroid/graphics/Path; HSPLandroid/graphics/Canvas;->clipRect(FFFF)Z HSPLandroid/graphics/Canvas;->clipRect(IIII)Z HSPLandroid/graphics/Canvas;->clipRect(Landroid/graphics/Rect;)Z @@ -6167,7 +6170,7 @@ 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(FFFFLandroid/graphics/ColorSpace;)J+]Landroid/graphics/ColorSpace;Landroid/graphics/ColorSpace$Rgb; HSPLandroid/graphics/Color;->pack(I)J HSPLandroid/graphics/Color;->parseColor(Ljava/lang/String;)I HSPLandroid/graphics/Color;->red()F @@ -6178,7 +6181,7 @@ 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/ColorFilter;->getNativeInstance()J+]Landroid/graphics/ColorFilter;Landroid/graphics/PorterDuffColorFilter;,Landroid/graphics/BlendModeColorFilter;]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry; HSPLandroid/graphics/ColorMatrixColorFilter;-><init>(Landroid/graphics/ColorMatrix;)V HSPLandroid/graphics/ColorMatrixColorFilter;-><init>([F)V HSPLandroid/graphics/ColorMatrixColorFilter;->createNativeInstance()J @@ -6364,14 +6367,14 @@ HSPLandroid/graphics/LinearGradient;-><init>(FFFF[J[FLandroid/graphics/Shader$Ti 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 -HSPLandroid/graphics/Matrix;-><init>(Landroid/graphics/Matrix;)V +HSPLandroid/graphics/Matrix;-><init>()V+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry; +HSPLandroid/graphics/Matrix;-><init>(Landroid/graphics/Matrix;)V+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry; 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([F)V+]Landroid/graphics/Matrix;Landroid/graphics/Matrix; 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 @@ -6409,18 +6412,18 @@ 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 +HSPLandroid/graphics/Outline;->setEmpty()V+]Landroid/graphics/Path;Landroid/graphics/Path;]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;->setPath(Landroid/graphics/Path;)V+]Landroid/graphics/Path;Landroid/graphics/Path;]Landroid/graphics/Rect;Landroid/graphics/Rect; HSPLandroid/graphics/Outline;->setRect(IIII)V -HSPLandroid/graphics/Outline;->setRect(Landroid/graphics/Rect;)V -HSPLandroid/graphics/Outline;->setRoundRect(IIIIF)V +HSPLandroid/graphics/Outline;->setRect(Landroid/graphics/Rect;)V+]Landroid/graphics/Outline;Landroid/graphics/Outline; +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 +HSPLandroid/graphics/Paint;-><init>(I)V+]Landroid/graphics/Paint;missing_types]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry; HSPLandroid/graphics/Paint;-><init>(Landroid/graphics/Paint;)V HSPLandroid/graphics/Paint;->ascent()F HSPLandroid/graphics/Paint;->descent()F @@ -6434,7 +6437,7 @@ HSPLandroid/graphics/Paint;->getFontMetrics()Landroid/graphics/Paint$FontMetrics HSPLandroid/graphics/Paint;->getFontMetrics(Landroid/graphics/Paint$FontMetrics;)F HSPLandroid/graphics/Paint;->getFontMetricsInt()Landroid/graphics/Paint$FontMetricsInt; HSPLandroid/graphics/Paint;->getFontMetricsInt(Landroid/graphics/Paint$FontMetricsInt;)I -HSPLandroid/graphics/Paint;->getFontMetricsInt(Ljava/lang/CharSequence;IIIIZLandroid/graphics/Paint$FontMetricsInt;)V +HSPLandroid/graphics/Paint;->getFontMetricsInt(Ljava/lang/CharSequence;IIIIZLandroid/graphics/Paint$FontMetricsInt;)V+]Ljava/lang/CharSequence;Ljava/lang/String;,Landroid/text/SpannedString;,Landroid/text/SpannableString; HSPLandroid/graphics/Paint;->getFontVariationSettings()Ljava/lang/String; HSPLandroid/graphics/Paint;->getHinting()I HSPLandroid/graphics/Paint;->getLetterSpacing()F @@ -6442,7 +6445,7 @@ HSPLandroid/graphics/Paint;->getMaskFilter()Landroid/graphics/MaskFilter; HSPLandroid/graphics/Paint;->getNativeInstance()J+]Landroid/graphics/ColorFilter;Landroid/graphics/PorterDuffColorFilter;,Landroid/graphics/BlendModeColorFilter;]Landroid/graphics/Paint;Landroid/graphics/Paint;,Landroid/text/TextPaint;]Landroid/graphics/Shader;Landroid/graphics/LinearGradient;,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[FI)F+]Landroid/graphics/Paint;Landroid/text/TextPaint;]Ljava/lang/CharSequence;Ljava/lang/String;,Landroid/text/SpannedString;,Landroid/text/SpannableString; HSPLandroid/graphics/Paint;->getRunCharacterAdvance([CIIIIZI[FI)F HSPLandroid/graphics/Paint;->getShader()Landroid/graphics/Shader; HSPLandroid/graphics/Paint;->getShadowLayerColor()I @@ -6478,8 +6481,8 @@ HSPLandroid/graphics/Paint;->isDither()Z HSPLandroid/graphics/Paint;->isElegantTextHeight()Z HSPLandroid/graphics/Paint;->isFilterBitmap()Z+]Landroid/graphics/Paint;Landroid/graphics/Paint;,Landroid/text/TextPaint; HSPLandroid/graphics/Paint;->measureText(Ljava/lang/CharSequence;II)F -HSPLandroid/graphics/Paint;->measureText(Ljava/lang/String;)F -HSPLandroid/graphics/Paint;->measureText(Ljava/lang/String;II)F +HSPLandroid/graphics/Paint;->measureText(Ljava/lang/String;)F+]Ljava/lang/String;Ljava/lang/String;]Landroid/graphics/Paint;Landroid/graphics/Paint; +HSPLandroid/graphics/Paint;->measureText(Ljava/lang/String;II)F+]Ljava/lang/String;Ljava/lang/String; HSPLandroid/graphics/Paint;->reset()V HSPLandroid/graphics/Paint;->set(Landroid/graphics/Paint;)V HSPLandroid/graphics/Paint;->setAlpha(I)V @@ -6509,28 +6512,28 @@ 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 +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 +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>()V+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry; 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 +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;FFLandroid/graphics/Path$Direction;)V+]Landroid/graphics/Path;Landroid/graphics/Path; HSPLandroid/graphics/Path;->addRoundRect(Landroid/graphics/RectF;[FLandroid/graphics/Path$Direction;)V HSPLandroid/graphics/Path;->approximate(F)[F HSPLandroid/graphics/Path;->arcTo(FFFFFFZ)V @@ -6545,11 +6548,11 @@ 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;->op(Landroid/graphics/Path;Landroid/graphics/Path$Op;)Z+]Landroid/graphics/Path;Landroid/graphics/Path; +HSPLandroid/graphics/Path;->op(Landroid/graphics/Path;Landroid/graphics/Path;Landroid/graphics/Path$Op;)Z+]Landroid/graphics/Path$Op;Landroid/graphics/Path$Op; HSPLandroid/graphics/Path;->rLineTo(FF)V HSPLandroid/graphics/Path;->readOnlyNI()J -HSPLandroid/graphics/Path;->reset()V +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 @@ -6574,9 +6577,9 @@ HSPLandroid/graphics/Point$1;->createFromParcel(Landroid/os/Parcel;)Landroid/gra 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;-><init>(Landroid/graphics/Point;)V+]Landroid/graphics/Point;Landroid/graphics/Point; HSPLandroid/graphics/Point;->equals(II)Z -HSPLandroid/graphics/Point;->equals(Ljava/lang/Object;)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 @@ -6586,7 +6589,7 @@ 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;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Object;Landroid/graphics/PointF; HSPLandroid/graphics/PointF;->length()F HSPLandroid/graphics/PointF;->length(FF)F HSPLandroid/graphics/PointF;->set(FF)V @@ -6597,9 +6600,9 @@ 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>(FFFFFF[J[FLandroid/graphics/Shader$TileMode;Landroid/graphics/ColorSpace;)V+][F[F HSPLandroid/graphics/RadialGradient;-><init>(FFF[I[FLandroid/graphics/Shader$TileMode;)V -HSPLandroid/graphics/RadialGradient;->createNativeInstance(JZ)J +HSPLandroid/graphics/RadialGradient;->createNativeInstance(JZ)J+]Landroid/graphics/ColorSpace;Landroid/graphics/ColorSpace$Rgb;]Landroid/graphics/RadialGradient;Landroid/graphics/RadialGradient; HSPLandroid/graphics/RecordingCanvas;-><init>(Landroid/graphics/RenderNode;II)V HSPLandroid/graphics/RecordingCanvas;->disableZ()V HSPLandroid/graphics/RecordingCanvas;->drawRenderNode(Landroid/graphics/RenderNode;)V @@ -6613,8 +6616,8 @@ 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;->createFromParcel(Landroid/os/Parcel;)Landroid/graphics/Rect;+]Landroid/graphics/Rect;Landroid/graphics/Rect; +HSPLandroid/graphics/Rect$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;+]Landroid/graphics/Rect$1;Landroid/graphics/Rect$1; HSPLandroid/graphics/Rect$1;->newArray(I)[Landroid/graphics/Rect; HSPLandroid/graphics/Rect$1;->newArray(I)[Ljava/lang/Object; HSPLandroid/graphics/Rect;-><init>()V @@ -6641,7 +6644,7 @@ 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;->readFromParcel(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/graphics/Rect;->scale(F)V HSPLandroid/graphics/Rect;->set(IIII)V HSPLandroid/graphics/Rect;->set(Landroid/graphics/Rect;)V @@ -6650,7 +6653,7 @@ HSPLandroid/graphics/Rect;->setIntersect(Landroid/graphics/Rect;Landroid/graphic 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;->union(Landroid/graphics/Rect;)V+]Landroid/graphics/Rect;Landroid/graphics/Rect; HSPLandroid/graphics/Rect;->width()I HSPLandroid/graphics/Rect;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/graphics/RectF;-><init>()V @@ -6660,7 +6663,8 @@ 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;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Object;Landroid/graphics/RectF; +HSPLandroid/graphics/RectF;->hashCode()I HSPLandroid/graphics/RectF;->height()F HSPLandroid/graphics/RectF;->inset(FF)V HSPLandroid/graphics/RectF;->intersect(FFFF)Z @@ -6675,7 +6679,7 @@ HSPLandroid/graphics/RectF;->set(Landroid/graphics/Rect;)V HSPLandroid/graphics/RectF;->set(Landroid/graphics/RectF;)V HSPLandroid/graphics/RectF;->setEmpty()V HSPLandroid/graphics/RectF;->union(FFFF)V -HSPLandroid/graphics/RectF;->union(Landroid/graphics/RectF;)V +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; @@ -6704,7 +6708,7 @@ HSPLandroid/graphics/RenderNode$CompositePositionUpdateListener;->without(Landro 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;-><init>(Ljava/lang/String;Landroid/graphics/RenderNode$AnimationHost;)V+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry; 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; @@ -6761,15 +6765,15 @@ 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;-><init>(Landroid/graphics/ColorSpace;)V+]Landroid/graphics/ColorSpace;Landroid/graphics/ColorSpace$Rgb; 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;->discardNativeInstanceLocked()V+]Ljava/lang/Runnable;Llibcore/util/NativeAllocationRegistry$CleanerRunner; +HSPLandroid/graphics/Shader;->getNativeInstance()J+]Landroid/graphics/Shader;megamorphic_types +HSPLandroid/graphics/Shader;->getNativeInstance(Z)J+]Landroid/graphics/Matrix;Landroid/graphics/Matrix;]Landroid/graphics/Shader;megamorphic_types]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry; +HSPLandroid/graphics/Shader;->setLocalMatrix(Landroid/graphics/Matrix;)V+]Landroid/graphics/Matrix;Landroid/graphics/Matrix;]Landroid/graphics/Shader;Landroid/graphics/SweepGradient;,Landroid/graphics/BitmapShader; HSPLandroid/graphics/Shader;->shouldDiscardNativeInstance(Z)Z HSPLandroid/graphics/SurfaceTexture$1;->handleMessage(Landroid/os/Message;)V HSPLandroid/graphics/SurfaceTexture;-><init>(I)V @@ -6786,7 +6790,7 @@ HSPLandroid/graphics/TextureLayer;-><init>(Landroid/graphics/HardwareRenderer;J) HSPLandroid/graphics/TextureLayer;->close()V HSPLandroid/graphics/TextureLayer;->detachSurfaceTexture()V HSPLandroid/graphics/Typeface$Builder;->build()Landroid/graphics/Typeface; -HSPLandroid/graphics/Typeface$Builder;->createAssetUid(Landroid/content/res/AssetManager;Ljava/lang/String;I[Landroid/graphics/fonts/FontVariationAxis;IILjava/lang/String;)Ljava/lang/String; +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; @@ -6799,10 +6803,10 @@ HSPLandroid/graphics/Typeface;->createFromResources(Landroid/content/res/FontRes 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;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Object;Landroid/graphics/Typeface; +HSPLandroid/graphics/Typeface;->findFromCache(Landroid/content/res/AssetManager;Ljava/lang/String;)Landroid/graphics/Typeface;+]Landroid/util/LruCache;Landroid/util/LruCache; HSPLandroid/graphics/Typeface;->getStyle()I -HSPLandroid/graphics/Typeface;->getSystemDefaultTypeface(Ljava/lang/String;)Landroid/graphics/Typeface; +HSPLandroid/graphics/Typeface;->getSystemDefaultTypeface(Ljava/lang/String;)Landroid/graphics/Typeface;+]Ljava/util/Map;Landroid/util/ArrayMap; 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; @@ -7011,7 +7015,7 @@ HSPLandroid/graphics/drawable/BitmapDrawable;-><init>(Landroid/graphics/drawable 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;->computeBitmapSize()V+]Landroid/graphics/Bitmap;Landroid/graphics/Bitmap; HSPLandroid/graphics/drawable/BitmapDrawable;->draw(Landroid/graphics/Canvas;)V HSPLandroid/graphics/drawable/BitmapDrawable;->getBitmap()Landroid/graphics/Bitmap; HSPLandroid/graphics/drawable/BitmapDrawable;->getChangingConfigurations()I @@ -7041,7 +7045,7 @@ HSPLandroid/graphics/drawable/BitmapDrawable;->setTileModeXY(Landroid/graphics/S 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;->updateLocalState(Landroid/content/res/Resources;)V+]Landroid/graphics/drawable/BitmapDrawable;Landroid/graphics/drawable/BitmapDrawable; 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 @@ -7065,13 +7069,13 @@ HSPLandroid/graphics/drawable/ColorDrawable;-><init>(Landroid/graphics/drawable/ 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 +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;->getOpacity()I+]Landroid/graphics/Paint;Landroid/graphics/Paint; +HSPLandroid/graphics/drawable/ColorDrawable;->getOutline(Landroid/graphics/Outline;)V+]Landroid/graphics/drawable/ColorDrawable;Landroid/graphics/drawable/ColorDrawable;]Landroid/graphics/Outline;Landroid/graphics/Outline; 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; @@ -7080,7 +7084,7 @@ HSPLandroid/graphics/drawable/ColorDrawable;->setAlpha(I)V HSPLandroid/graphics/drawable/ColorDrawable;->setColor(I)V HSPLandroid/graphics/drawable/ColorDrawable;->setColorFilter(Landroid/graphics/ColorFilter;)V HSPLandroid/graphics/drawable/ColorDrawable;->setTintList(Landroid/content/res/ColorStateList;)V -HSPLandroid/graphics/drawable/ColorDrawable;->updateLocalState(Landroid/content/res/Resources;)V +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 @@ -7096,7 +7100,7 @@ HSPLandroid/graphics/drawable/Drawable;->createFromXmlForDensity(Landroid/conten HSPLandroid/graphics/drawable/Drawable;->createFromXmlInner(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable; HSPLandroid/graphics/drawable/Drawable;->createFromXmlInnerForDensity(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;ILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable; HSPLandroid/graphics/drawable/Drawable;->getBounds()Landroid/graphics/Rect; -HSPLandroid/graphics/drawable/Drawable;->getCallback()Landroid/graphics/drawable/Drawable$Callback; +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; @@ -7113,7 +7117,7 @@ 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 +HSPLandroid/graphics/drawable/Drawable;->invalidateSelf()V+]Landroid/graphics/drawable/Drawable$Callback;missing_types]Landroid/graphics/drawable/Drawable;megamorphic_types HSPLandroid/graphics/drawable/Drawable;->isProjected()Z HSPLandroid/graphics/drawable/Drawable;->isStateful()Z HSPLandroid/graphics/drawable/Drawable;->isVisible()Z @@ -7124,14 +7128,14 @@ HSPLandroid/graphics/drawable/Drawable;->onBoundsChange(Landroid/graphics/Rect;) 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;->resolveDensity(Landroid/content/res/Resources;I)I+]Landroid/content/res/Resources;Landroid/content/res/Resources; 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 +HSPLandroid/graphics/drawable/Drawable;->setBounds(IIII)V+]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/drawable/Drawable;megamorphic_types +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 @@ -7140,21 +7144,21 @@ HSPLandroid/graphics/drawable/Drawable;->setHotspot(FF)V HSPLandroid/graphics/drawable/Drawable;->setLayoutDirection(I)Z HSPLandroid/graphics/drawable/Drawable;->setLevel(I)Z HSPLandroid/graphics/drawable/Drawable;->setSrcDensityOverride(I)V -HSPLandroid/graphics/drawable/Drawable;->setState([I)Z +HSPLandroid/graphics/drawable/Drawable;->setState([I)Z+]Landroid/graphics/drawable/Drawable;megamorphic_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;->setVisible(ZZ)Z+]Landroid/graphics/drawable/Drawable;megamorphic_types 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; -HSPLandroid/graphics/drawable/Drawable;->updateTintFilter(Landroid/graphics/PorterDuffColorFilter;Landroid/content/res/ColorStateList;Landroid/graphics/PorterDuff$Mode;)Landroid/graphics/PorterDuffColorFilter; +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;+]Landroid/content/res/ColorStateList;Landroid/content/res/ColorStateList;]Landroid/graphics/PorterDuffColorFilter;Landroid/graphics/PorterDuffColorFilter;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/VectorDrawable; 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 -HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->addChild(Landroid/graphics/drawable/Drawable;)I +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+]Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;Landroid/graphics/drawable/StateListDrawable$StateListState;,Landroid/graphics/drawable/AnimationDrawable$AnimationState;]Landroid/graphics/drawable/Drawable;megamorphic_types 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 @@ -7193,19 +7197,19 @@ 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;->getOpticalInsets()Landroid/graphics/Insets;+]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/NinePatchDrawable; HSPLandroid/graphics/drawable/DrawableContainer;->getOutline(Landroid/graphics/Outline;)V -HSPLandroid/graphics/drawable/DrawableContainer;->getPadding(Landroid/graphics/Rect;)Z -HSPLandroid/graphics/drawable/DrawableContainer;->initializeDrawableForDisplay(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/graphics/drawable/DrawableContainer;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V +HSPLandroid/graphics/drawable/DrawableContainer;->getPadding(Landroid/graphics/Rect;)Z+]Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;]Landroid/graphics/Rect;Landroid/graphics/Rect; +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/AnimationDrawable;]Landroid/graphics/drawable/Drawable;megamorphic_types +HSPLandroid/graphics/drawable/DrawableContainer;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V+]Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;Landroid/graphics/drawable/StateListDrawable$StateListState;]Landroid/graphics/drawable/DrawableContainer;Landroid/graphics/drawable/StateListDrawable; HSPLandroid/graphics/drawable/DrawableContainer;->isAutoMirrored()Z HSPLandroid/graphics/drawable/DrawableContainer;->isStateful()Z -HSPLandroid/graphics/drawable/DrawableContainer;->jumpToCurrentState()V +HSPLandroid/graphics/drawable/DrawableContainer;->jumpToCurrentState()V+]Landroid/graphics/drawable/Drawable;megamorphic_types 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;->selectDrawable(I)Z+]Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;Landroid/graphics/drawable/StateListDrawable$StateListState;,Landroid/graphics/drawable/AnimationDrawable$AnimationState;]Landroid/graphics/drawable/DrawableContainer;Landroid/graphics/drawable/AnimationDrawable;,Landroid/graphics/drawable/StateListDrawable;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/VectorDrawable; HSPLandroid/graphics/drawable/DrawableContainer;->setAlpha(I)V HSPLandroid/graphics/drawable/DrawableContainer;->setAutoMirrored(Z)V HSPLandroid/graphics/drawable/DrawableContainer;->setColorFilter(Landroid/graphics/ColorFilter;)V @@ -7254,7 +7258,7 @@ 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;->setDrawable(Landroid/graphics/drawable/Drawable;)V+]Landroid/graphics/drawable/DrawableWrapper;Landroid/graphics/drawable/InsetDrawable;,Landroid/graphics/drawable/RotateDrawable;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/GradientDrawable;,Landroid/graphics/drawable/LayerDrawable;,Landroid/graphics/drawable/RippleDrawable; 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 @@ -7262,12 +7266,12 @@ 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 +HSPLandroid/graphics/drawable/GradientDrawable$GradientState;-><init>(Landroid/graphics/drawable/GradientDrawable$GradientState;Landroid/content/res/Resources;)V+][F[F][Landroid/content/res/ColorStateList;[Landroid/content/res/ColorStateList; +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;->computeOpacity()V+]Landroid/content/res/ColorStateList;Landroid/content/res/ColorStateList; +HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->getChangingConfigurations()I+]Landroid/content/res/ColorStateList;Landroid/content/res/ColorStateList; 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; @@ -7284,22 +7288,22 @@ HSPLandroid/graphics/drawable/GradientDrawable;->applyTheme(Landroid/content/res HSPLandroid/graphics/drawable/GradientDrawable;->applyThemeChildElements(Landroid/content/res/Resources$Theme;)V HSPLandroid/graphics/drawable/GradientDrawable;->canApplyTheme()Z HSPLandroid/graphics/drawable/GradientDrawable;->clearMutated()V -HSPLandroid/graphics/drawable/GradientDrawable;->draw(Landroid/graphics/Canvas;)V -HSPLandroid/graphics/drawable/GradientDrawable;->ensureValidRect()Z -HSPLandroid/graphics/drawable/GradientDrawable;->getChangingConfigurations()I +HSPLandroid/graphics/drawable/GradientDrawable;->draw(Landroid/graphics/Canvas;)V+]Landroid/graphics/Paint;Landroid/graphics/Paint;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas;,Landroid/graphics/Canvas;]Landroid/graphics/RectF;Landroid/graphics/RectF; +HSPLandroid/graphics/drawable/GradientDrawable;->ensureValidRect()Z+]Landroid/graphics/RectF;Landroid/graphics/RectF;]Landroid/graphics/drawable/GradientDrawable;Landroid/graphics/drawable/GradientDrawable;]Landroid/graphics/drawable/GradientDrawable$Orientation;Landroid/graphics/drawable/GradientDrawable$Orientation;]Landroid/content/res/ColorStateList;Landroid/content/res/ColorStateList;]Landroid/graphics/Paint;Landroid/graphics/Paint; +HSPLandroid/graphics/drawable/GradientDrawable;->getChangingConfigurations()I+]Landroid/graphics/drawable/GradientDrawable$GradientState;Landroid/graphics/drawable/GradientDrawable$GradientState; 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;->getOutline(Landroid/graphics/Outline;)V+]Landroid/graphics/drawable/GradientDrawable;Landroid/graphics/drawable/GradientDrawable;]Landroid/graphics/Paint;Landroid/graphics/Paint;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/Outline;Landroid/graphics/Outline; 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;->isStateful()Z+]Landroid/content/res/ColorStateList;Landroid/content/res/ColorStateList; 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 @@ -7326,12 +7330,12 @@ HSPLandroid/graphics/drawable/GradientDrawable;->updateGradientDrawablePadding(L HSPLandroid/graphics/drawable/GradientDrawable;->updateGradientDrawableSize(Landroid/content/res/TypedArray;)V HSPLandroid/graphics/drawable/GradientDrawable;->updateGradientDrawableSolid(Landroid/content/res/TypedArray;)V HSPLandroid/graphics/drawable/GradientDrawable;->updateGradientDrawableStroke(Landroid/content/res/TypedArray;)V -HSPLandroid/graphics/drawable/GradientDrawable;->updateLocalState(Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/GradientDrawable;->updateStateFromTypedArray(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+]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; 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;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/graphics/Bitmap$1;]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -7349,7 +7353,7 @@ HSPLandroid/graphics/drawable/Icon;->loadDrawableInner(Landroid/content/Context; 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/Icon;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/content/res/ColorStateList;Landroid/content/res/ColorStateList;]Landroid/graphics/drawable/Icon;Landroid/graphics/drawable/Icon;]Landroid/os/Parcel;Landroid/os/Parcel; 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 @@ -7367,7 +7371,7 @@ HSPLandroid/graphics/drawable/InsetDrawable;-><init>(Landroid/graphics/drawable/ 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 +HSPLandroid/graphics/drawable/InsetDrawable;->getInsets(Landroid/graphics/Rect;)V+]Landroid/graphics/drawable/InsetDrawable;missing_types]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 @@ -7379,7 +7383,7 @@ HSPLandroid/graphics/drawable/InsetDrawable;->onBoundsChange(Landroid/graphics/R HSPLandroid/graphics/drawable/InsetDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V HSPLandroid/graphics/drawable/InsetDrawable;->verifyRequiredAttributes(Landroid/content/res/TypedArray;)V HSPLandroid/graphics/drawable/LayerDrawable$ChildDrawable;-><init>(I)V -HSPLandroid/graphics/drawable/LayerDrawable$ChildDrawable;-><init>(Landroid/graphics/drawable/LayerDrawable$ChildDrawable;Landroid/graphics/drawable/LayerDrawable;Landroid/content/res/Resources;)V +HSPLandroid/graphics/drawable/LayerDrawable$ChildDrawable;-><init>(Landroid/graphics/drawable/LayerDrawable$ChildDrawable;Landroid/graphics/drawable/LayerDrawable;Landroid/content/res/Resources;)V+]Landroid/graphics/drawable/Drawable$ConstantState;megamorphic_types]Landroid/graphics/drawable/Drawable;megamorphic_types HSPLandroid/graphics/drawable/LayerDrawable$ChildDrawable;->applyDensityScaling(II)V HSPLandroid/graphics/drawable/LayerDrawable$ChildDrawable;->canApplyTheme()Z HSPLandroid/graphics/drawable/LayerDrawable$ChildDrawable;->setDensity(I)V @@ -7391,7 +7395,7 @@ HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->applyDensityScaling(II) 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;->getOpacity()I+]Landroid/graphics/drawable/Drawable;missing_types HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->invalidateCache()V HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->isStateful()Z HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->newDrawable()Landroid/graphics/drawable/Drawable; @@ -7399,7 +7403,7 @@ HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->newDrawable(Landroid/co 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/LayerDrawable$LayerState;Landroid/content/res/Resources;)V+]Landroid/graphics/drawable/LayerDrawable;missing_types 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; @@ -7417,23 +7421,23 @@ 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;->getIntrinsicHeight()I+]Landroid/graphics/drawable/Drawable;megamorphic_types +HSPLandroid/graphics/drawable/LayerDrawable;->getIntrinsicWidth()I+]Landroid/graphics/drawable/LayerDrawable;missing_types]Landroid/graphics/drawable/Drawable;missing_types 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;->getOpacity()I+]Landroid/graphics/drawable/LayerDrawable$LayerState;Landroid/graphics/drawable/LayerDrawable$LayerState;,Landroid/graphics/drawable/TransitionDrawable$TransitionState; +HSPLandroid/graphics/drawable/LayerDrawable;->getOutline(Landroid/graphics/Outline;)V+]Landroid/graphics/Outline;Landroid/graphics/Outline;]Landroid/graphics/drawable/Drawable;missing_types +HSPLandroid/graphics/drawable/LayerDrawable;->getPadding(Landroid/graphics/Rect;)Z+]Landroid/graphics/drawable/LayerDrawable;Landroid/graphics/drawable/LayerDrawable;,Landroid/graphics/drawable/RippleDrawable; 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;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V+]Landroid/graphics/drawable/LayerDrawable$LayerState;Landroid/graphics/drawable/LayerDrawable$LayerState;,Landroid/graphics/drawable/RippleDrawable$RippleState;,Landroid/graphics/drawable/TransitionDrawable$TransitionState;]Landroid/graphics/drawable/LayerDrawable;missing_types 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;->jumpToCurrentState()V+]Landroid/graphics/drawable/Drawable;missing_types +HSPLandroid/graphics/drawable/LayerDrawable;->mutate()Landroid/graphics/drawable/Drawable;+]Landroid/graphics/drawable/LayerDrawable;missing_types]Landroid/graphics/drawable/Drawable;missing_types 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;->refreshChildPadding(ILandroid/graphics/drawable/LayerDrawable$ChildDrawable;)Z+]Landroid/graphics/drawable/Drawable;megamorphic_types HSPLandroid/graphics/drawable/LayerDrawable;->refreshPadding()V HSPLandroid/graphics/drawable/LayerDrawable;->resolveGravity(IIIII)I HSPLandroid/graphics/drawable/LayerDrawable;->resumeChildInvalidation()V @@ -7449,10 +7453,10 @@ 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;->setVisible(ZZ)Z+]Landroid/graphics/drawable/Drawable;missing_types HSPLandroid/graphics/drawable/LayerDrawable;->suspendChildInvalidation()V HSPLandroid/graphics/drawable/LayerDrawable;->updateLayerBounds(Landroid/graphics/Rect;)V -HSPLandroid/graphics/drawable/LayerDrawable;->updateLayerBoundsInternal(Landroid/graphics/Rect;)V +HSPLandroid/graphics/drawable/LayerDrawable;->updateLayerBoundsInternal(Landroid/graphics/Rect;)V+]Landroid/graphics/drawable/LayerDrawable;missing_types]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/drawable/Drawable;megamorphic_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 @@ -7469,8 +7473,8 @@ HSPLandroid/graphics/drawable/NinePatchDrawable;-><init>(Landroid/graphics/drawa 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;->computeBitmapSize()V+]Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;]Landroid/graphics/NinePatch;Landroid/graphics/NinePatch; +HSPLandroid/graphics/drawable/NinePatchDrawable;->draw(Landroid/graphics/Canvas;)V+]Landroid/graphics/Paint;Landroid/graphics/Paint;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/drawable/NinePatchDrawable;Landroid/graphics/drawable/NinePatchDrawable;]Landroid/graphics/NinePatch;Landroid/graphics/NinePatch;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas; HSPLandroid/graphics/drawable/NinePatchDrawable;->getAlpha()I HSPLandroid/graphics/drawable/NinePatchDrawable;->getChangingConfigurations()I HSPLandroid/graphics/drawable/NinePatchDrawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState; @@ -7550,11 +7554,11 @@ HSPLandroid/graphics/drawable/RippleDrawable$RippleState;->newDrawable(Landroid/ 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;)V+]Landroid/graphics/drawable/RippleDrawable;Landroid/graphics/drawable/RippleDrawable; 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;->cancelExitingRipples()V+]Landroid/graphics/drawable/RippleDrawable;Landroid/graphics/drawable/RippleDrawable; HSPLandroid/graphics/drawable/RippleDrawable;->clearHotspots()V HSPLandroid/graphics/drawable/RippleDrawable;->computeRadius()F HSPLandroid/graphics/drawable/RippleDrawable;->createAnimationProperties(FFFFFF)Landroid/graphics/drawable/RippleAnimationSession$AnimationProperties; @@ -7562,27 +7566,27 @@ HSPLandroid/graphics/drawable/RippleDrawable;->createConstantState(Landroid/grap 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 +HSPLandroid/graphics/drawable/RippleDrawable;->drawContent(Landroid/graphics/Canvas;)V+]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/InsetDrawable; +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; +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 +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/GradientDrawable; 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 +HSPLandroid/graphics/drawable/RippleDrawable;->isBounded()Z+]Landroid/graphics/drawable/RippleDrawable;Landroid/graphics/drawable/RippleDrawable; +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;->onHotspotBoundsChanged()V+]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/graphics/drawable/RippleDrawable;->onStateChange([I)Z HSPLandroid/graphics/drawable/RippleDrawable;->pruneRipples()V HSPLandroid/graphics/drawable/RippleDrawable;->setBackgroundActive(ZZZZ)V @@ -7596,7 +7600,7 @@ 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;->updateRipplePaint()Landroid/graphics/Paint;+]Landroid/content/res/ColorStateList;Landroid/content/res/ColorStateList;]Landroid/graphics/Matrix;Landroid/graphics/Matrix;]Landroid/graphics/Paint;Landroid/graphics/Paint;]Landroid/graphics/drawable/RippleShader;Landroid/graphics/drawable/RippleShader;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/BitmapShader;Landroid/graphics/BitmapShader;]Landroid/graphics/drawable/RippleAnimationSession$AnimationProperties;Landroid/graphics/drawable/RippleAnimationSession$AnimationProperties;]Landroid/graphics/drawable/RippleDrawable;Landroid/graphics/drawable/RippleDrawable;]Landroid/graphics/PorterDuffColorFilter;Landroid/graphics/PorterDuffColorFilter;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/graphics/drawable/RippleAnimationSession;Landroid/graphics/drawable/RippleAnimationSession; 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 @@ -7713,7 +7717,7 @@ HSPLandroid/graphics/drawable/TransitionDrawable$TransitionState;-><init>(Landro 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;->draw(Landroid/graphics/Canvas;)V+]Landroid/graphics/drawable/TransitionDrawable;Landroid/graphics/drawable/TransitionDrawable;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/ColorDrawable; HSPLandroid/graphics/drawable/TransitionDrawable;->setCrossFadeEnabled(Z)V HSPLandroid/graphics/drawable/TransitionDrawable;->startTransition(I)V HSPLandroid/graphics/drawable/VectorDrawable$VClipPath;->canApplyTheme()Z @@ -7734,22 +7738,22 @@ HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->getPropertyIndex(Ljava/ HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->inflate(Landroid/content/res/Resources;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->isStateful()Z HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->onStateChange([I)Z -HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V +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;,Landroid/content/res/GradientColor;]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Landroid/graphics/Shader;Landroid/graphics/LinearGradient;,Landroid/graphics/RadialGradient;]Landroid/content/res/GradientColor;Landroid/content/res/GradientColor; 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 -HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->addChild(Landroid/graphics/drawable/VectorDrawable$VObject;)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$VFullPath;,Landroid/graphics/drawable/VectorDrawable$VGroup;,Landroid/graphics/drawable/VectorDrawable$VClipPath; 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;->getNativeSize()I+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/graphics/drawable/VectorDrawable$VObject;Landroid/graphics/drawable/VectorDrawable$VClipPath;,Landroid/graphics/drawable/VectorDrawable$VGroup;,Landroid/graphics/drawable/VectorDrawable$VFullPath; 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;->setTree(Lcom/android/internal/util/VirtualRefBasePtr;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/graphics/drawable/VectorDrawable$VObject;Landroid/graphics/drawable/VectorDrawable$VClipPath;,Landroid/graphics/drawable/VectorDrawable$VGroup;,Landroid/graphics/drawable/VectorDrawable$VFullPath; 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 @@ -7759,25 +7763,25 @@ HSPLandroid/graphics/drawable/VectorDrawable$VPath;-><init>(Landroid/graphics/dr HSPLandroid/graphics/drawable/VectorDrawable$VPath;->getPathName()Ljava/lang/String; HSPLandroid/graphics/drawable/VectorDrawable$VPath;->getProperty(Ljava/lang/String;)Landroid/util/Property; HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->-$$Nest$mcreateNativeTree(Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/graphics/drawable/VectorDrawable$VGroup;)V -HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;-><init>(Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;)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;->canReuseCache()Z+]Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/graphics/drawable/VectorDrawable$VectorDrawableState; 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;->createNativeTreeFromCopy(Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/graphics/drawable/VectorDrawable$VGroup;)V+]Ldalvik/system/VMRuntime;Ldalvik/system/VMRuntime;]Lcom/android/internal/util/VirtualRefBasePtr;Lcom/android/internal/util/VirtualRefBasePtr; HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->finalize()V -HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->getAlpha()F +HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->getAlpha()F+]Lcom/android/internal/util/VirtualRefBasePtr;Lcom/android/internal/util/VirtualRefBasePtr; 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;->getNativeRenderer()J+]Lcom/android/internal/util/VirtualRefBasePtr;Lcom/android/internal/util/VirtualRefBasePtr; +HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->isStateful()Z+]Landroid/content/res/ColorStateList;Landroid/content/res/ColorStateList;]Landroid/graphics/drawable/VectorDrawable$VGroup;Landroid/graphics/drawable/VectorDrawable$VGroup; HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->newDrawable()Landroid/graphics/drawable/Drawable; HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable; HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->onStateChange([I)Z -HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->onTreeConstructionFinished()V +HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->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;->setViewportSize(FF)V+]Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/graphics/drawable/VectorDrawable$VectorDrawableState; HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->updateCacheStates()V HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnAddChild(JJ)V HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnCreateFullPath()J @@ -7804,33 +7808,33 @@ HSPLandroid/graphics/drawable/VectorDrawable;->applyTheme(Landroid/content/res/R 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;->draw(Landroid/graphics/Canvas;)V+]Ldalvik/system/VMRuntime;Ldalvik/system/VMRuntime;]Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;]Landroid/graphics/ColorFilter;Landroid/graphics/PorterDuffColorFilter;,Landroid/graphics/BlendModeColorFilter;]Landroid/graphics/drawable/VectorDrawable;Landroid/graphics/drawable/VectorDrawable;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas; 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;->getIntrinsicWidth()I+]Landroid/graphics/drawable/VectorDrawable;Landroid/graphics/drawable/VectorDrawable; 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 -HSPLandroid/graphics/drawable/VectorDrawable;->inflateChildElements(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V +HSPLandroid/graphics/drawable/VectorDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V+]Ldalvik/system/VMRuntime;Ldalvik/system/VMRuntime;]Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;]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;]Ljava/lang/String;Ljava/lang/String;]Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/XmlBlock$Parser;]Landroid/graphics/drawable/VectorDrawable$VClipPath;Landroid/graphics/drawable/VectorDrawable$VClipPath;]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;->isStateful()Z+]Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/graphics/drawable/VectorDrawable$VectorDrawableState; 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;->onStateChange([I)Z+]Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;]Landroid/graphics/drawable/VectorDrawable;Landroid/graphics/drawable/VectorDrawable; 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;->updateColorFilters(Landroid/graphics/BlendMode;Landroid/content/res/ColorStateList;)V+]Landroid/graphics/drawable/VectorDrawable;Landroid/graphics/drawable/VectorDrawable; HSPLandroid/graphics/drawable/VectorDrawable;->updateLocalState(Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/VectorDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)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 @@ -7894,7 +7898,7 @@ 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;-><init>(J)V+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry; HSPLandroid/graphics/text/LineBreaker$Result;->getEndLineHyphenEdit(I)I HSPLandroid/graphics/text/LineBreaker$Result;->getLineAscent(I)F HSPLandroid/graphics/text/LineBreaker$Result;->getLineBreakOffset(I)I @@ -7903,12 +7907,12 @@ 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/LineBreaker;->computeLineBreaks(Landroid/graphics/text/MeasuredText;Landroid/graphics/text/LineBreaker$ParagraphConstraints;I)Landroid/graphics/text/LineBreaker$Result;+]Landroid/graphics/text/MeasuredText;Landroid/graphics/text/MeasuredText; 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;->appendStyleRun(Landroid/graphics/Paint;Landroid/graphics/text/LineBreakConfig;IZ)Landroid/graphics/text/MeasuredText$Builder;+]Landroid/graphics/Paint;Landroid/text/TextPaint;]Landroid/graphics/text/LineBreakConfig;Landroid/graphics/text/LineBreakConfig; +HSPLandroid/graphics/text/MeasuredText$Builder;->build()Landroid/graphics/text/MeasuredText;+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry; 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; @@ -7984,7 +7988,7 @@ HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;->removeSensor(Landroid/ 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 +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 @@ -8051,13 +8055,13 @@ HSPLandroid/hardware/camera2/impl/CameraDeviceImpl;->checkAndWrapHandler(Landroi 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;->equals(Ljava/lang/Object;)Z+]Ljava/lang/String;Ljava/lang/String;]Landroid/hardware/camera2/impl/CameraMetadataNative$Key;Landroid/hardware/camera2/impl/CameraMetadataNative$Key;]Ljava/lang/Object;Landroid/hardware/camera2/impl/CameraMetadataNative$Key;]Landroid/hardware/camera2/utils/TypeReference;Landroid/hardware/camera2/utils/TypeReference$SpecializedTypeReference; 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;->get(Landroid/hardware/camera2/impl/CameraMetadataNative$Key;)Ljava/lang/Object;+]Ljava/util/HashMap;Ljava/util/HashMap;]Landroid/hardware/camera2/impl/GetCommand;megamorphic_types +HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->getBase(Landroid/hardware/camera2/impl/CameraMetadataNative$Key;)Ljava/lang/Object;+]Landroid/hardware/camera2/impl/CameraMetadataNative$Key;Landroid/hardware/camera2/impl/CameraMetadataNative$Key;]Landroid/hardware/camera2/marshal/Marshaler;megamorphic_types]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer;]Landroid/hardware/camera2/impl/CameraMetadataNative;Landroid/hardware/camera2/impl/CameraMetadataNative; 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 @@ -8067,11 +8071,11 @@ HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->setupGlobalVendorTagDes 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;->equals(Ljava/lang/Object;)Z+]Landroid/hardware/camera2/utils/TypeReference;megamorphic_types 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/MarshalRegistry;->getMarshaler(Landroid/hardware/camera2/utils/TypeReference;I)Landroid/hardware/camera2/marshal/Marshaler;+]Ljava/util/HashMap;Ljava/util/HashMap; 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$MarshalerArray;->unmarshal(Ljava/nio/ByteBuffer;)Ljava/lang/Object;+]Landroid/hardware/camera2/marshal/Marshaler;Landroid/hardware/camera2/marshal/impl/MarshalQueryableMeteringRectangle$MarshalerMeteringRectangle;,Landroid/hardware/camera2/marshal/impl/MarshalQueryablePrimitive$MarshalerPrimitive;,Landroid/hardware/camera2/marshal/impl/MarshalQueryablePair$MarshalerPair;]Landroid/hardware/camera2/marshal/impl/MarshalQueryableArray$PrimitiveArrayFiller;Landroid/hardware/camera2/marshal/impl/MarshalQueryableArray$PrimitiveArrayFiller$1;,Landroid/hardware/camera2/marshal/impl/MarshalQueryableArray$PrimitiveArrayFiller$2;,Landroid/hardware/camera2/marshal/impl/MarshalQueryableArray$PrimitiveArrayFiller$3;,Landroid/hardware/camera2/marshal/impl/MarshalQueryableArray$PrimitiveArrayFiller$5;]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer;]Ljava/lang/Class;Ljava/lang/Class; 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; @@ -8084,8 +8088,8 @@ HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableNativeByteToInteger$Ma 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$MarshalerPrimitive;->unmarshal(Ljava/nio/ByteBuffer;)Ljava/lang/Object;+]Ljava/lang/Class;Ljava/lang/Class; +HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryablePrimitive$MarshalerPrimitive;->unmarshalObject(Ljava/nio/ByteBuffer;)Ljava/lang/Object;+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; 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 @@ -8102,8 +8106,8 @@ HSPLandroid/hardware/camera2/utils/ConcurrentCameraIdCombination;-><init>(Landro 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;->containsTypeVariable(Ljava/lang/reflect/Type;)Z+]Ljava/lang/Class;Ljava/lang/Class; +HSPLandroid/hardware/camera2/utils/TypeReference;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Object;Llibcore/reflect/ParameterizedTypeImpl;,Llibcore/reflect/GenericArrayTypeImpl;,Ljava/lang/Class; 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; @@ -8181,14 +8185,15 @@ HSPLandroid/hardware/display/DisplayManager$$ExternalSyntheticLambda2;->test(Lja 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;+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/lang/ref/WeakReference;Ljava/lang/ref/WeakReference; -HSPLandroid/hardware/display/DisplayManager$WeakDisplayCache;->put(Landroid/view/Display;)V -HSPLandroid/hardware/display/DisplayManager$WeakDisplayCache;->removeStaleEntries()V +HSPLandroid/hardware/display/DisplayManager$WeakDisplayCache;->put(Landroid/view/Display;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/view/Display;Landroid/view/Display; +HSPLandroid/hardware/display/DisplayManager$WeakDisplayCache;->removeStaleEntries()V+]Ljava/lang/Integer;Ljava/lang/Integer;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/lang/ref/WeakReference;Ljava/lang/ref/WeakReference;]Ljava/util/ArrayList;Ljava/util/ArrayList; +HSPLandroid/hardware/display/DisplayManager;->$r8$lambda$SFvjuUGZreFxYU7cOzBlo6b0tEs(Landroid/view/Display;)Z 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;+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/function/Predicate;Landroid/hardware/display/DisplayManager$$ExternalSyntheticLambda2; -HSPLandroid/hardware/display/DisplayManager;->getOrCreateDisplay(IZ)Landroid/view/Display;+]Landroid/hardware/display/DisplayManager$WeakDisplayCache;Landroid/hardware/display/DisplayManager$WeakDisplayCache;]Landroid/content/Context;Landroid/app/Application;]Landroid/hardware/display/DisplayManagerGlobal;Landroid/hardware/display/DisplayManagerGlobal;]Landroid/view/Display;Landroid/view/Display; +HSPLandroid/hardware/display/DisplayManager;->getDisplays([ILjava/util/function/Predicate;)[Landroid/view/Display;+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/function/Predicate;Landroid/hardware/display/DisplayManager$$ExternalSyntheticLambda2;,Landroid/hardware/display/DisplayManager$$ExternalSyntheticLambda0; +HSPLandroid/hardware/display/DisplayManager;->getOrCreateDisplay(IZ)Landroid/view/Display;+]Landroid/hardware/display/DisplayManager$WeakDisplayCache;Landroid/hardware/display/DisplayManager$WeakDisplayCache;]Landroid/hardware/display/DisplayManagerGlobal;Landroid/hardware/display/DisplayManagerGlobal;]Landroid/view/Display;Landroid/view/Display;]Landroid/content/Context;missing_types HSPLandroid/hardware/display/DisplayManager;->getStableDisplaySize()Landroid/graphics/Point; HSPLandroid/hardware/display/DisplayManager;->getWifiDisplayStatus()Landroid/hardware/display/WifiDisplayStatus; HSPLandroid/hardware/display/DisplayManager;->isPresentationDisplay(Landroid/view/Display;)Z @@ -8286,8 +8291,8 @@ HSPLandroid/hardware/input/InputManagerGlobal$InputDeviceListenerDelegate;-><ini 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;->getInputDevice(I)Landroid/view/InputDevice;+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/hardware/input/IInputManager;Landroid/hardware/input/IInputManager$Stub$Proxy; +HSPLandroid/hardware/input/InputManagerGlobal;->getInputDeviceIds()[I+]Landroid/util/SparseArray;Landroid/util/SparseArray; HSPLandroid/hardware/input/InputManagerGlobal;->getInputManagerService()Landroid/hardware/input/IInputManager; HSPLandroid/hardware/input/InputManagerGlobal;->getInstance()Landroid/hardware/input/InputManagerGlobal; HSPLandroid/hardware/input/InputManagerGlobal;->populateInputDevicesLocked()V @@ -8351,7 +8356,7 @@ HSPLandroid/hardware/security/keymint/KeyParameter$1;->newArray(I)[Landroid/hard 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;->readFromParcel(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -8376,7 +8381,7 @@ 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;->readFromParcel(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; 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 @@ -8419,7 +8424,7 @@ 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;->get()Ljava/lang/Object;+]Ljava/lang/ref/Reference;Ljava/lang/ref/SoftReference; 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 @@ -8455,7 +8460,7 @@ HSPLandroid/icu/impl/FormattedStringBuilder;->copyFrom(Landroid/icu/impl/Formatt HSPLandroid/icu/impl/FormattedStringBuilder;->fieldAt(I)Ljava/lang/Object; HSPLandroid/icu/impl/FormattedStringBuilder;->getCapacity()I HSPLandroid/icu/impl/FormattedStringBuilder;->insert(ILjava/lang/CharSequence;IILjava/lang/Object;)I -HSPLandroid/icu/impl/FormattedStringBuilder;->insert(ILjava/lang/CharSequence;Ljava/lang/Object;)I +HSPLandroid/icu/impl/FormattedStringBuilder;->insert(ILjava/lang/CharSequence;Ljava/lang/Object;)I+]Landroid/icu/impl/FormattedStringBuilder;Landroid/icu/impl/FormattedStringBuilder;]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 @@ -8466,8 +8471,8 @@ HSPLandroid/icu/impl/FormattedStringBuilder;->toFieldArray()[Ljava/lang/Object; HSPLandroid/icu/impl/FormattedStringBuilder;->toString()Ljava/lang/String; HSPLandroid/icu/impl/FormattedStringBuilder;->unwrapField(Ljava/lang/Object;)Ljava/text/Format$Field; HSPLandroid/icu/impl/FormattedValueStringBuilderImpl;->isIntOrGroup(Ljava/lang/Object;)Z -HSPLandroid/icu/impl/FormattedValueStringBuilderImpl;->nextFieldPosition(Landroid/icu/impl/FormattedStringBuilder;Ljava/text/FieldPosition;)Z -HSPLandroid/icu/impl/FormattedValueStringBuilderImpl;->nextPosition(Landroid/icu/impl/FormattedStringBuilder;Landroid/icu/text/ConstrainedFieldPosition;Ljava/text/Format$Field;)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 @@ -8506,12 +8511,12 @@ HSPLandroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$Curre 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;->fetchFormattingData(Ljava/lang/String;)Landroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$FormattingData;+]Ljava/lang/String;Ljava/lang/String; 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/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo;->getSymbol(Ljava/lang/String;)Ljava/lang/String;+]Landroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo;Landroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo; +HSPLandroid/icu/impl/ICUCurrencyDisplayInfoProvider;->getInstance(Landroid/icu/util/ULocale;Z)Landroid/icu/impl/CurrencyData$CurrencyDisplayInfo;+]Landroid/icu/util/ULocale;Landroid/icu/util/ULocale; 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 @@ -8522,11 +8527,11 @@ 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 +HSPLandroid/icu/impl/ICUCurrencyMetaInfo;->collect(Landroid/icu/impl/ICUCurrencyMetaInfo$Collector;Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;)Ljava/util/List;+]Landroid/icu/impl/ICUResourceBundle;Landroid/icu/impl/ICUResourceBundleImpl$ResourceTable;]Landroid/icu/impl/ICUCurrencyMetaInfo$Collector;Landroid/icu/impl/ICUCurrencyMetaInfo$CurrencyCollector; +HSPLandroid/icu/impl/ICUCurrencyMetaInfo;->collectRegion(Landroid/icu/impl/ICUCurrencyMetaInfo$Collector;Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;ILandroid/icu/impl/ICUResourceBundle;)V+]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/ICUCurrencyMetaInfo;->getDate(Landroid/icu/impl/ICUResourceBundle;JZ)J+]Landroid/icu/impl/ICUResourceBundle;Landroid/icu/impl/ICUResourceBundleImpl$ResourceIntVector; 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; @@ -8570,16 +8575,16 @@ HSPLandroid/icu/impl/ICUResourceBundle;->-$$Nest$sminstantiateBundle(Ljava/lang/ 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 +HSPLandroid/icu/impl/ICUResourceBundle;->at(I)Landroid/icu/impl/ICUResourceBundle;+]Landroid/icu/impl/ICUResourceBundle;Landroid/icu/impl/ICUResourceBundleImpl$ResourceArray; +HSPLandroid/icu/impl/ICUResourceBundle;->at(Ljava/lang/String;)Landroid/icu/impl/ICUResourceBundle;+]Landroid/icu/impl/ICUResourceBundle;Landroid/icu/impl/ICUResourceBundleImpl$ResourceTable; +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; +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$Table16;,Landroid/icu/impl/ICUResourceBundleReader$Table1632;]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; @@ -8594,7 +8599,7 @@ HSPLandroid/icu/impl/ICUResourceBundle;->getAvailEntry(Ljava/lang/String;Ljava/l 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;Landroid/icu/impl/ICUResourceBundle$OpenType;)Landroid/icu/impl/ICUResourceBundle;+]Landroid/icu/util/ULocale;Landroid/icu/util/ULocale; 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; @@ -8607,31 +8612,31 @@ HSPLandroid/icu/impl/ICUResourceBundle;->getParent()Landroid/icu/impl/ICUResourc 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[Ljava/lang/String;I)V+]Ljava/lang/String;Ljava/lang/String; 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; +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;->handleGet(ILjava/util/HashMap;Landroid/icu/util/UResourceBundle;)Landroid/icu/util/UResourceBundle;+]Landroid/icu/impl/ICUResourceBundleImpl$ResourceArray;Landroid/icu/impl/ICUResourceBundleImpl$ResourceArray; 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 -HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceContainer;->getSize()I +HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceContainer;->createBundleObject(ILjava/lang/String;Ljava/util/HashMap;Landroid/icu/util/UResourceBundle;)Landroid/icu/util/UResourceBundle;+]Landroid/icu/impl/ICUResourceBundleImpl$ResourceContainer;Landroid/icu/impl/ICUResourceBundleImpl$ResourceArray; +HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceContainer;->getContainerResource(I)I+]Landroid/icu/impl/ICUResourceBundleReader$Container;Landroid/icu/impl/ICUResourceBundleReader$Table16;,Landroid/icu/impl/ICUResourceBundleReader$Table1632;,Landroid/icu/impl/ICUResourceBundleReader$Array32; +HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceContainer;->getSize()I+]Landroid/icu/impl/ICUResourceBundleReader$Container;Landroid/icu/impl/ICUResourceBundleReader$Table16;,Landroid/icu/impl/ICUResourceBundleReader$Table1632;,Landroid/icu/impl/ICUResourceBundleReader$Array32; 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 +HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceIntVector;->getIntVector()[I+]Landroid/icu/impl/ICUResourceBundleReader;Landroid/icu/impl/ICUResourceBundleReader; +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 @@ -8648,7 +8653,7 @@ 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$Array32;->getContainerResource(Landroid/icu/impl/ICUResourceBundleReader;I)I+]Landroid/icu/impl/ICUResourceBundleReader$Array32;Landroid/icu/impl/ICUResourceBundleReader$Array32; 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 @@ -8676,18 +8681,18 @@ 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; +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$Table1632;->getContainerResource(Landroid/icu/impl/ICUResourceBundleReader;I)I+]Landroid/icu/impl/ICUResourceBundleReader$Table1632;Landroid/icu/impl/ICUResourceBundleReader$Table1632; +HSPLandroid/icu/impl/ICUResourceBundleReader$Table16;->getContainerResource(Landroid/icu/impl/ICUResourceBundleReader;I)I+]Landroid/icu/impl/ICUResourceBundleReader$Table16;Landroid/icu/impl/ICUResourceBundleReader$Table16; 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 -HSPLandroid/icu/impl/ICUResourceBundleReader$Table;->getResource(Landroid/icu/impl/ICUResourceBundleReader;Ljava/lang/String;)I +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$Table16;,Landroid/icu/impl/ICUResourceBundleReader$Table1632; +HSPLandroid/icu/impl/ICUResourceBundleReader$Table;->getResource(Landroid/icu/impl/ICUResourceBundleReader;Ljava/lang/String;)I+]Landroid/icu/impl/ICUResourceBundleReader$Table;Landroid/icu/impl/ICUResourceBundleReader$Table;,Landroid/icu/impl/ICUResourceBundleReader$Table16;,Landroid/icu/impl/ICUResourceBundleReader$Table1632; 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 @@ -8710,20 +8715,20 @@ 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; +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;->getInt(I)I+]Ljava/nio/ByteBuffer;Ljava/nio/DirectByteBuffer; HSPLandroid/icu/impl/ICUResourceBundleReader;->getIntVector(I)[I -HSPLandroid/icu/impl/ICUResourceBundleReader;->getInts(II)[I +HSPLandroid/icu/impl/ICUResourceBundleReader;->getInts(II)[I+]Ljava/nio/ByteBuffer;Ljava/nio/DirectByteBuffer; 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; +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 +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; @@ -8735,8 +8740,8 @@ 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; HSPLandroid/icu/impl/ICUService;->isDefault()Z -HSPLandroid/icu/impl/IDNA2003;->convertIDNToASCII(Ljava/lang/String;I)Ljava/lang/StringBuffer; -HSPLandroid/icu/impl/IDNA2003;->convertToASCII(Landroid/icu/text/UCharacterIterator;I)Ljava/lang/StringBuffer; +HSPLandroid/icu/impl/IDNA2003;->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 @@ -8744,9 +8749,9 @@ HSPLandroid/icu/impl/LocaleIDParser$1;-><init>(Landroid/icu/impl/LocaleIDParser; HSPLandroid/icu/impl/LocaleIDParser$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I HSPLandroid/icu/impl/LocaleIDParser$1;->compare(Ljava/lang/String;Ljava/lang/String;)I HSPLandroid/icu/impl/LocaleIDParser;-><init>(Ljava/lang/String;)V -HSPLandroid/icu/impl/LocaleIDParser;-><init>(Ljava/lang/String;Z)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 +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; @@ -8754,12 +8759,12 @@ 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;->getKeywordValue(Ljava/lang/String;)Ljava/lang/String;+]Landroid/icu/impl/LocaleIDParser;Landroid/icu/impl/LocaleIDParser;]Ljava/util/Map;Ljava/util/Collections$EmptyMap; +HSPLandroid/icu/impl/LocaleIDParser;->getKeywords()Ljava/util/Iterator;+]Landroid/icu/impl/LocaleIDParser;Landroid/icu/impl/LocaleIDParser;]Ljava/util/Map;Ljava/util/Collections$EmptyMap; 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;->getString(I)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HSPLandroid/icu/impl/LocaleIDParser;->getValue()Ljava/lang/String; HSPLandroid/icu/impl/LocaleIDParser;->getVariant()Ljava/lang/String; HSPLandroid/icu/impl/LocaleIDParser;->haveExperimentalLanguagePrefix()Z @@ -8770,10 +8775,10 @@ HSPLandroid/icu/impl/LocaleIDParser;->isTerminator(C)Z HSPLandroid/icu/impl/LocaleIDParser;->isTerminatorOrIDSeparator(C)Z HSPLandroid/icu/impl/LocaleIDParser;->next()C HSPLandroid/icu/impl/LocaleIDParser;->parseBaseName()V -HSPLandroid/icu/impl/LocaleIDParser;->parseCountry()I +HSPLandroid/icu/impl/LocaleIDParser;->parseCountry()I+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HSPLandroid/icu/impl/LocaleIDParser;->parseKeywords()I HSPLandroid/icu/impl/LocaleIDParser;->parseLanguage()I -HSPLandroid/icu/impl/LocaleIDParser;->parseScript()I +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 @@ -8785,7 +8790,7 @@ 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$DecomposeNormalizer2;->spanQuickCheckYes(Ljava/lang/CharSequence;)I+]Landroid/icu/impl/Normalizer2Impl;Landroid/icu/impl/Normalizer2Impl;]Ljava/lang/CharSequence;Ljava/lang/String; 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; @@ -8802,7 +8807,7 @@ HSPLandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->flushAndAppendZeroCC(Lja HSPLandroid/icu/impl/Normalizer2Impl;->addToStartSet(Landroid/icu/util/MutableCodePointTrie;II)V HSPLandroid/icu/impl/Normalizer2Impl;->composeQuickCheck(Ljava/lang/CharSequence;IIZZ)I HSPLandroid/icu/impl/Normalizer2Impl;->decompose(IILandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;)V -HSPLandroid/icu/impl/Normalizer2Impl;->decompose(Ljava/lang/CharSequence;IILandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;)I +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 @@ -8816,7 +8821,7 @@ 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;->cloneAsThawed()Landroid/icu/util/TimeZone;+]Landroid/icu/util/SimpleTimeZone;Landroid/icu/util/SimpleTimeZone; 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; @@ -8824,15 +8829,15 @@ 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;->getOffset(JZ[I)V+]Landroid/icu/util/SimpleTimeZone;Landroid/icu/util/SimpleTimeZone; HSPLandroid/icu/impl/OlsonTimeZone;->getTimeZoneRules()[Landroid/icu/util/TimeZoneRule; -HSPLandroid/icu/impl/OlsonTimeZone;->hashCode()I +HSPLandroid/icu/impl/OlsonTimeZone;->hashCode()I+]Landroid/icu/util/SimpleTimeZone;Landroid/icu/util/SimpleTimeZone; 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; +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 @@ -8851,14 +8856,14 @@ HSPLandroid/icu/impl/PluralRulesLoader;->getRulesIdForLocale(Landroid/icu/util/U 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$RBBIStateTable;->get(Ljava/nio/ByteBuffer;I)Landroid/icu/impl/RBBIDataWrapper$RBBIStateTable;+]Ljava/nio/ByteBuffer;Ljava/nio/DirectByteBuffer; 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 -HSPLandroid/icu/impl/ReplaceableUCharacterIterator;->setIndex(I)V +HSPLandroid/icu/impl/ReplaceableUCharacterIterator;->getText([CI)I+]Landroid/icu/text/Replaceable;Landroid/icu/text/ReplaceableString; +HSPLandroid/icu/impl/ReplaceableUCharacterIterator;->next()I+]Landroid/icu/text/Replaceable;Landroid/icu/text/ReplaceableString; +HSPLandroid/icu/impl/ReplaceableUCharacterIterator;->setIndex(I)V+]Landroid/icu/text/Replaceable;Landroid/icu/text/ReplaceableString; HSPLandroid/icu/impl/RuleCharacterIterator;->_advance(I)V HSPLandroid/icu/impl/RuleCharacterIterator;->_current()I HSPLandroid/icu/impl/RuleCharacterIterator;->atEnd()Z @@ -8874,7 +8879,7 @@ HSPLandroid/icu/impl/SimpleFormatterImpl;->format(Ljava/lang/String;[Ljava/lang/ 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/SoftCache;->getInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+]Landroid/icu/impl/CacheValue;Landroid/icu/impl/CacheValue$SoftValue;]Landroid/icu/impl/SoftCache;Landroid/icu/impl/ICUResourceBundleReader$ReaderCache;,Landroid/icu/util/ULocale$1;,Landroid/icu/impl/ICUResourceBundle$1;]Ljava/util/concurrent/ConcurrentHashMap;Ljava/util/concurrent/ConcurrentHashMap; 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; @@ -8882,17 +8887,17 @@ 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;-><init>(Ljava/lang/String;Z)V+]Ljava/lang/String;Ljava/lang/String; HSPLandroid/icu/impl/StringSegment;->adjustOffset(I)V -HSPLandroid/icu/impl/StringSegment;->charAt(I)C +HSPLandroid/icu/impl/StringSegment;->charAt(I)C+]Ljava/lang/String;Ljava/lang/String; HSPLandroid/icu/impl/StringSegment;->codePointsEqual(IIZ)Z -HSPLandroid/icu/impl/StringSegment;->getCodePoint()I +HSPLandroid/icu/impl/StringSegment;->getCodePoint()I+]Ljava/lang/String;Ljava/lang/String; 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;->getPrefixLengthInternal(Ljava/lang/CharSequence;Z)I+]Ljava/lang/CharSequence;Ljava/lang/String;]Landroid/icu/impl/StringSegment;Landroid/icu/impl/StringSegment; 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/StringSegment;->startsWith(Ljava/lang/CharSequence;)Z+]Ljava/lang/CharSequence;Ljava/lang/String;]Landroid/icu/impl/StringSegment;Landroid/icu/impl/StringSegment; 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; @@ -8947,9 +8952,9 @@ 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;->getClass(I)I+]Landroid/icu/impl/Trie2_16;Landroid/icu/impl/Trie2_16; HSPLandroid/icu/impl/UBiDiProps;->getClassFromProps(I)I -HSPLandroid/icu/impl/UCaseProps;->fold(II)I +HSPLandroid/icu/impl/UCaseProps;->fold(II)I+]Landroid/icu/impl/Trie2_16;Landroid/icu/impl/Trie2_16; 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 @@ -8957,11 +8962,11 @@ 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;->digit(I)I+]Landroid/icu/impl/UCharacterProperty;Landroid/icu/impl/UCharacterProperty; 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/UCharacterProperty;->getProperty(I)I+]Landroid/icu/impl/Trie2_16;Landroid/icu/impl/Trie2_16; +HSPLandroid/icu/impl/UCharacterProperty;->getType(I)I+]Landroid/icu/impl/UCharacterProperty;Landroid/icu/impl/UCharacterProperty; 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 @@ -8991,11 +8996,11 @@ HSPLandroid/icu/impl/ZoneMeta$SystemTimeZoneCache;->createInstance(Ljava/lang/St 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;->getSystemTimeZone(Ljava/lang/String;)Landroid/icu/impl/OlsonTimeZone;+]Landroid/icu/impl/ZoneMeta$SystemTimeZoneCache;Landroid/icu/impl/ZoneMeta$SystemTimeZoneCache; 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;->clone()Ljava/lang/Object;+][I[I HSPLandroid/icu/impl/breakiter/DictionaryBreakEngine$DequeI;->removeAllElements()V HSPLandroid/icu/impl/coll/Collation;-><clinit>()V HSPLandroid/icu/impl/coll/Collation;->ceFromCE32(I)J @@ -9094,9 +9099,9 @@ 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;->caseIgnoreMatch(Ljava/lang/String;Ljava/lang/String;)Z+]Ljava/lang/String;Ljava/lang/String; HSPLandroid/icu/impl/locale/AsciiUtil;->isAlpha(C)Z -HSPLandroid/icu/impl/locale/AsciiUtil;->isAlphaString(Ljava/lang/String;)Z +HSPLandroid/icu/impl/locale/AsciiUtil;->isAlphaString(Ljava/lang/String;)Z+]Ljava/lang/String;Ljava/lang/String; 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; @@ -9112,11 +9117,11 @@ HSPLandroid/icu/impl/locale/BaseLocale$Key;->-$$Nest$fget_scrt(Landroid/icu/impl HSPLandroid/icu/impl/locale/BaseLocale$Key;->-$$Nest$fget_vart(Landroid/icu/impl/locale/BaseLocale$Key;)Ljava/lang/String; HSPLandroid/icu/impl/locale/BaseLocale$Key;-><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 +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 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;->getInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/icu/impl/locale/BaseLocale;+]Landroid/icu/impl/locale/BaseLocale$Cache;Landroid/icu/impl/locale/BaseLocale$Cache; 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; @@ -9131,33 +9136,33 @@ 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/locale/LocaleObjectCache;->cleanStaleEntries()V+]Ljava/lang/ref/ReferenceQueue;Ljava/lang/ref/ReferenceQueue; +HSPLandroid/icu/impl/locale/LocaleObjectCache;->get(Ljava/lang/Object;)Ljava/lang/Object;+]Landroid/icu/impl/locale/LocaleObjectCache$CacheEntry;Landroid/icu/impl/locale/LocaleObjectCache$CacheEntry;]Ljava/util/concurrent/ConcurrentHashMap;Ljava/util/concurrent/ConcurrentHashMap; 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; -HSPLandroid/icu/impl/number/AffixUtils;->containsType(Ljava/lang/CharSequence;I)Z +HSPLandroid/icu/impl/number/AffixUtils;->containsType(Ljava/lang/CharSequence;I)Z+]Ljava/lang/CharSequence;Ljava/lang/String; 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;->hasCurrencySymbols(Ljava/lang/CharSequence;)Z+]Ljava/lang/CharSequence;Ljava/lang/String; +HSPLandroid/icu/impl/number/AffixUtils;->hasNext(JLjava/lang/CharSequence;)Z+]Ljava/lang/CharSequence;Ljava/lang/StringBuilder;,Ljava/lang/String; 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;->nextToken(JLjava/lang/CharSequence;)J+]Ljava/lang/CharSequence;Ljava/lang/String;,Ljava/lang/StringBuilder; 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 +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 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; +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; @@ -9239,12 +9244,12 @@ HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->_setToBigInteger(Ljava HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->_setToDoubleFast(D)V HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->_setToLong(J)V HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->adjustMagnitude(I)V -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->appendDigit(BIZ)V +HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->appendDigit(BIZ)V+]Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD; 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 +HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->fitsInLong()Z+]Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD; +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 @@ -9257,20 +9262,20 @@ 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 +HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->roundToMagnitude(ILjava/math/MathContext;Z)V+]Ljava/math/MathContext;Ljava/math/MathContext;]Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;]Ljava/math/RoundingMode;Ljava/math/RoundingMode; 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 HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->setToInt(I)V -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->setToLong(J)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;->signum()Landroid/icu/impl/number/Modifier$Signum; -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->toLong(Z)J +HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->toLong(Z)J+]Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD; HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;-><init>()V HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;-><init>(D)V 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>(J)V+]Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD; 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 @@ -9286,9 +9291,9 @@ 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;->forProperties(Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/impl/number/Grouper;+]Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/DecimalFormatProperties; 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;->getMinGroupingForLocale(Landroid/icu/util/ULocale;)S+]Landroid/icu/impl/ICUResourceBundle;Landroid/icu/impl/ICUResourceBundleImpl$ResourceTable;]Ljava/lang/Short;Ljava/lang/Short; 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 @@ -9310,16 +9315,16 @@ HSPLandroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;->ap HSPLandroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;->processQuantity(Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/number/MicroProps; 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;->apply(Landroid/icu/impl/FormattedStringBuilder;II)I+]Landroid/icu/impl/number/AffixPatternProvider;Landroid/icu/impl/number/PropertiesAffixPatternProvider; 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;->needsPlurals()Z+]Landroid/icu/impl/number/AffixPatternProvider;Landroid/icu/impl/number/PropertiesAffixPatternProvider; 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;->processQuantity(Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/number/MicroProps;+]Landroid/icu/impl/number/MutablePatternModifier;Landroid/icu/impl/number/MutablePatternModifier;]Landroid/icu/impl/number/MicroPropsGenerator;Landroid/icu/impl/number/MicroProps;]Landroid/icu/number/Precision;Landroid/icu/number/Precision$FractionRounderImpl;]Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD; 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 @@ -9331,55 +9336,55 @@ HSPLandroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;->getEndpoints 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$ParserState;->next()I+]Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParserState; +HSPLandroid/icu/impl/number/PatternStringParser$ParserState;->peek()I+]Ljava/lang/String;Ljava/lang/String; +HSPLandroid/icu/impl/number/PatternStringParser;->consumeAffix(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;)J+]Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParserState; 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 +HSPLandroid/icu/impl/number/PatternStringParser;->consumeFormat(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;->consumeFractionFormat(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;)V+]Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParserState; +HSPLandroid/icu/impl/number/PatternStringParser;->consumeIntegerFormat(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;)V+]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;->consumePadding(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;Landroid/icu/impl/number/Padder$PadPosition;)V+]Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParserState; +HSPLandroid/icu/impl/number/PatternStringParser;->consumePattern(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;)V+]Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParserState; 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/PatternStringParser;->patternInfoToProperties(Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;I)V+]Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;]Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/DecimalFormatProperties; 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; -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 +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+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/icu/impl/number/AffixPatternProvider;Landroid/icu/impl/number/PropertiesAffixPatternProvider;]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/impl/StandardPlural;Landroid/icu/impl/StandardPlural; +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;+]Landroid/icu/impl/number/Modifier$Signum;Landroid/icu/impl/number/Modifier$Signum;]Landroid/icu/number/NumberFormatter$SignDisplay;Landroid/icu/number/NumberFormatter$SignDisplay; +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;->forProperties(Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/impl/number/AffixPatternProvider;+]Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/DecimalFormatProperties; 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 -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/PropertiesAffixPatternProvider;->hasNegativeSubpattern()Z+]Ljava/lang/String;Ljava/lang/String; +HSPLandroid/icu/impl/number/PropertiesAffixPatternProvider;->length(I)I+]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/impl/number/PropertiesAffixPatternProvider;Landroid/icu/impl/number/PropertiesAffixPatternProvider; +HSPLandroid/icu/impl/number/RoundingUtils;->getMathContextOr34Digits(Landroid/icu/impl/number/DecimalFormatProperties;)Ljava/math/MathContext;+]Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/DecimalFormatProperties;]Ljava/math/RoundingMode;Ljava/math/RoundingMode; +HSPLandroid/icu/impl/number/RoundingUtils;->getMathContextOrUnlimited(Landroid/icu/impl/number/DecimalFormatProperties;)Ljava/math/MathContext;+]Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/DecimalFormatProperties;]Ljava/math/RoundingMode;Ljava/math/RoundingMode; 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/RoundingUtils;->scaleFromProperties(Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/number/Scale;+]Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/DecimalFormatProperties; 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;->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+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/icu/impl/number/parse/NumberParserImpl;Landroid/icu/impl/number/parse/NumberParserImpl;]Ljava/util/ArrayList;Ljava/util/ArrayList; 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/AffixMatcher;->smokeTest(Landroid/icu/impl/StringSegment;)Z+]Landroid/icu/impl/number/parse/AffixPatternMatcher;Landroid/icu/impl/number/parse/AffixPatternMatcher; 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 @@ -9387,12 +9392,12 @@ HSPLandroid/icu/impl/number/parse/AffixPatternMatcher;->fromAffixPattern(Ljava/l 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;-><init>(Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/impl/number/Grouper;I)V+]Landroid/icu/impl/number/Grouper;Landroid/icu/impl/number/Grouper;]Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/text/DecimalFormatSymbols; 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 +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;->smokeTest(Landroid/icu/impl/StringSegment;)Z+]Landroid/icu/impl/StringSegment;Landroid/icu/impl/StringSegment; 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; @@ -9401,14 +9406,14 @@ HSPLandroid/icu/impl/number/parse/NanMatcher;->getInstance(Landroid/icu/text/Dec 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; +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/NumberParserImpl;->parse(Ljava/lang/String;IZLandroid/icu/impl/number/parse/ParsedNumber;)V+]Landroid/icu/impl/number/parse/ParsedNumber;Landroid/icu/impl/number/parse/ParsedNumber;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/icu/impl/number/parse/NumberParseMatcher;megamorphic_types]Landroid/icu/impl/StringSegment;Landroid/icu/impl/StringSegment;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr; +HSPLandroid/icu/impl/number/parse/NumberParserImpl;->parseGreedy(Landroid/icu/impl/StringSegment;Landroid/icu/impl/number/parse/ParsedNumber;)V+]Ljava/util/List;Ljava/util/ArrayList;]Landroid/icu/impl/number/parse/NumberParseMatcher;megamorphic_types]Landroid/icu/impl/StringSegment;Landroid/icu/impl/StringSegment; +HSPLandroid/icu/impl/number/parse/ParsedNumber;-><init>()V+]Landroid/icu/impl/number/parse/ParsedNumber;Landroid/icu/impl/number/parse/ParsedNumber; 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;->getNumber(I)Ljava/lang/Number;+]Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD; 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 @@ -9417,7 +9422,7 @@ 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;-><init>(Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/impl/number/Grouper;)V+]Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/text/DecimalFormatSymbols;]Landroid/icu/text/UnicodeSet;Landroid/icu/text/UnicodeSet; 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; @@ -9426,9 +9431,9 @@ HSPLandroid/icu/impl/number/parse/ScientificMatcher;->smokeTest(Landroid/icu/imp 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/SeriesMatcher;->smokeTest(Landroid/icu/impl/StringSegment;)Z+]Ljava/util/List;Ljava/util/ArrayList;]Landroid/icu/impl/number/parse/NumberParseMatcher;Landroid/icu/impl/number/parse/MinusSignMatcher; 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/SymbolMatcher;->smokeTest(Landroid/icu/impl/StringSegment;)Z+]Landroid/icu/impl/StringSegment;Landroid/icu/impl/StringSegment; 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 @@ -9444,11 +9449,11 @@ HSPLandroid/icu/impl/number/range/StandardPluralRanges;->getPluralRangesData(Lja 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;->digit(I)I+]Landroid/icu/impl/UCharacterProperty;Landroid/icu/impl/UCharacterProperty; +HSPLandroid/icu/lang/UCharacter;->foldCase(II)I+]Landroid/icu/impl/UCaseProps;Landroid/icu/impl/UCaseProps; 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;->getType(I)I+]Landroid/icu/impl/UCharacterProperty;Landroid/icu/impl/UCharacterProperty; HSPLandroid/icu/lang/UCharacter;->isDigit(I)Z HSPLandroid/icu/lang/UCharacter;->isLowerCase(I)Z HSPLandroid/icu/lang/UScript$ScriptMetadata;->getScriptProps(I)I @@ -9461,7 +9466,7 @@ 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 +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; @@ -9477,27 +9482,27 @@ HSPLandroid/icu/number/NumberFormatterImpl;->formatStatic(Landroid/icu/impl/numb 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; +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;]Landroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;Landroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier; HSPLandroid/icu/number/NumberFormatterImpl;->preProcess(Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/number/MicroProps; -HSPLandroid/icu/number/NumberFormatterImpl;->preProcessUnsafe(Landroid/icu/impl/number/MacroProps;Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/number/MicroProps; +HSPLandroid/icu/number/NumberFormatterImpl;->preProcessUnsafe(Landroid/icu/impl/number/MacroProps;Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/number/MicroProps;+]Landroid/icu/impl/number/MicroPropsGenerator;Landroid/icu/impl/number/MutablePatternModifier;]Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD; 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 -HSPLandroid/icu/number/NumberFormatterImpl;->writeFractionDigits(Landroid/icu/impl/number/MicroProps;Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/FormattedStringBuilder;I)I -HSPLandroid/icu/number/NumberFormatterImpl;->writeIntegerDigits(Landroid/icu/impl/number/MicroProps;Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/FormattedStringBuilder;I)I -HSPLandroid/icu/number/NumberFormatterImpl;->writeNumber(Landroid/icu/impl/number/MicroProps;Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/FormattedStringBuilder;I)I +HSPLandroid/icu/number/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/MutablePatternModifier;,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/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;->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/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/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;->macros(Landroid/icu/impl/number/MacroProps;)Landroid/icu/number/NumberFormatterSettings;+]Landroid/icu/number/NumberFormatterSettings;Landroid/icu/number/UnlocalizedNumberFormatter; 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;->resolve()Landroid/icu/impl/number/MacroProps;+]Landroid/icu/impl/number/MacroProps;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; +HSPLandroid/icu/number/NumberPropertyMapper;->create(Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/number/UnlocalizedNumberFormatter;+]Landroid/icu/number/UnlocalizedNumberFormatter;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 +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 @@ -9510,12 +9515,12 @@ 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 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/Precision;->withMode(Ljava/math/MathContext;)Landroid/icu/number/Precision;+]Ljava/math/MathContext;Ljava/math/MathContext; 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/NumberFormatterSettings;+]Landroid/icu/number/UnlocalizedNumberFormatter;Landroid/icu/number/UnlocalizedNumberFormatter; 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; @@ -9527,20 +9532,20 @@ 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;->getCustomizedClass(I)I+]Landroid/icu/impl/UBiDiProps;Landroid/icu/impl/UBiDiProps; +HSPLandroid/icu/text/Bidi;->getDirProps()V+]Landroid/icu/text/Bidi;Landroid/icu/text/Bidi; 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;->resolveExplicitLevels()B+]Landroid/icu/text/Bidi;Landroid/icu/text/Bidi; +HSPLandroid/icu/text/Bidi;->setPara([CB[B)V+]Landroid/icu/text/Bidi;Landroid/icu/text/Bidi; 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;->createBreakInstance()Landroid/icu/text/BreakIterator;+]Landroid/icu/text/BreakIterator;Landroid/icu/text/RuleBasedBreakIterator; 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;->getBreakInstance(Landroid/icu/util/ULocale;I)Landroid/icu/text/BreakIterator;+]Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;]Landroid/icu/impl/CacheValue;Landroid/icu/impl/CacheValue$StrongValue;]Landroid/icu/text/BreakIterator$BreakIteratorCache;Landroid/icu/text/BreakIterator$BreakIteratorCache; 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; @@ -9571,11 +9576,11 @@ HSPLandroid/icu/text/ConstrainedFieldPosition;->getField()Ljava/text/Format$Fiel 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 +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/CurrencyDisplayNames;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/CurrencyDisplayNames;+]Landroid/icu/impl/CurrencyData$CurrencyDisplayInfoProvider;Landroid/icu/impl/ICUCurrencyDisplayInfoProvider; 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; @@ -9597,7 +9602,7 @@ HSPLandroid/icu/text/DateFormat;->getInstanceForSkeleton(Ljava/lang/String;Ljava 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;->setContext(Landroid/icu/text/DisplayContext;)V+]Landroid/icu/text/DisplayContext;Landroid/icu/text/DisplayContext; 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; @@ -9612,7 +9617,7 @@ HSPLandroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->values()[Lan 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;Landroid/icu/util/ULocale;)V+]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/text/DateFormatSymbols;Landroid/icu/text/DateFormatSymbols;]Ljava/lang/Class;Ljava/lang/Class; 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; @@ -9631,7 +9636,7 @@ HSPLandroid/icu/text/DateIntervalFormat;-><init>(Ljava/lang/String;Landroid/icu/ 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;->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;+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar;]Landroid/icu/text/SimpleDateFormat;Landroid/icu/text/SimpleDateFormat; 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; @@ -9668,7 +9673,7 @@ HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->compareTo(Ljava/ 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;->getDistance(Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;ILandroid/icu/text/DateTimePatternGenerator$DistanceInfo;)I+]Landroid/icu/text/DateTimePatternGenerator$DistanceInfo;Landroid/icu/text/DateTimePatternGenerator$DistanceInfo; 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; HSPLandroid/icu/text/DateTimePatternGenerator$DisplayWidth;->cldrKey()Ljava/lang/String; @@ -9747,12 +9752,12 @@ HSPLandroid/icu/text/DateTimePatternGenerator;->setDateTimeFromCalendar(Landroid 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;)V+]Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/text/DecimalFormatSymbols;]Landroid/icu/text/DecimalFormat;Landroid/icu/text/DecimalFormat; 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 +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; -HSPLandroid/icu/text/DecimalFormat;->format(JLjava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer; +HSPLandroid/icu/text/DecimalFormat;->format(JLjava/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;->getDecimalFormatSymbols()Landroid/icu/text/DecimalFormatSymbols; HSPLandroid/icu/text/DecimalFormat;->getMaximumFractionDigits()I HSPLandroid/icu/text/DecimalFormat;->getMaximumIntegerDigits()I @@ -9764,21 +9769,21 @@ HSPLandroid/icu/text/DecimalFormat;->getParser()Landroid/icu/impl/number/parse/N 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 +HSPLandroid/icu/text/DecimalFormat;->isParseIntegerOnly()Z+]Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/DecimalFormatProperties; +HSPLandroid/icu/text/DecimalFormat;->parse(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/lang/Number;+]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/impl/number/parse/ParsedNumber;Landroid/icu/impl/number/parse/ParsedNumber;]Ljava/text/ParsePosition;Ljava/text/ParsePosition;]Landroid/icu/impl/number/parse/NumberParserImpl;Landroid/icu/impl/number/parse/NumberParserImpl;]Landroid/icu/text/DecimalFormat;Landroid/icu/text/DecimalFormat; +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;->setMaximumIntegerDigits(I)V+]Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/DecimalFormatProperties;]Landroid/icu/text/DecimalFormat;Landroid/icu/text/DecimalFormat; HSPLandroid/icu/text/DecimalFormat;->setMinimumFractionDigits(I)V -HSPLandroid/icu/text/DecimalFormat;->setMinimumIntegerDigits(I)V +HSPLandroid/icu/text/DecimalFormat;->setMinimumIntegerDigits(I)V+]Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/DecimalFormatProperties;]Landroid/icu/text/DecimalFormat;Landroid/icu/text/DecimalFormat; 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/DecimalFormat;->toPattern()Ljava/lang/String;+]Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/DecimalFormatProperties; 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 @@ -9820,7 +9825,7 @@ HSPLandroid/icu/text/DecimalFormatSymbols;->getPlusSignString()Ljava/lang/String HSPLandroid/icu/text/DecimalFormatSymbols;->getULocale()Landroid/icu/util/ULocale; HSPLandroid/icu/text/DecimalFormatSymbols;->getZeroDigit()C HSPLandroid/icu/text/DecimalFormatSymbols;->initSpacingInfo(Landroid/icu/impl/CurrencyData$CurrencySpacingInfo;)V -HSPLandroid/icu/text/DecimalFormatSymbols;->initialize(Landroid/icu/util/ULocale;Landroid/icu/text/NumberingSystem;)V +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 @@ -9829,7 +9834,7 @@ HSPLandroid/icu/text/DecimalFormatSymbols;->setCurrencySymbol(Ljava/lang/String; 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;->setDigitStrings([Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String; 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 @@ -9852,7 +9857,7 @@ 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/DecimalFormatSymbols;->setZeroDigit(C)V+][C[C][Ljava/lang/String;[Ljava/lang/String; HSPLandroid/icu/text/DisplayContext;->type()Landroid/icu/text/DisplayContext$Type; HSPLandroid/icu/text/Edits$Iterator;->next(Z)Z HSPLandroid/icu/text/Edits;-><init>()V @@ -9870,7 +9875,7 @@ HSPLandroid/icu/text/Normalizer$NFKDMode;->getNormalizer2(I)Landroid/icu/text/No 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/Normalizer2;->normalize(Ljava/lang/CharSequence;)Ljava/lang/String;+]Ljava/lang/CharSequence;Ljava/lang/String;]Landroid/icu/text/Normalizer2;Landroid/icu/impl/Norm2AllModes$DecomposeNormalizer2; 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; @@ -9880,7 +9885,7 @@ HSPLandroid/icu/text/NumberFormat;->getInstance(Landroid/icu/util/ULocale;I)Land 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;->getPatternForStyleAndNumberingSystem(Landroid/icu/util/ULocale;Ljava/lang/String;I)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/icu/impl/ICUResourceBundle;Landroid/icu/impl/ICUResourceBundleImpl$ResourceTable; 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; @@ -9888,7 +9893,7 @@ HSPLandroid/icu/text/NumberingSystem$1;->createInstance(Ljava/lang/Object;Ljava/ 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;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/NumberingSystem;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;]Landroid/icu/impl/CacheBase;Landroid/icu/text/NumberingSystem$1; 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 @@ -9968,15 +9973,15 @@ HSPLandroid/icu/text/RelativeDateTimeFormatter;->keyToDirection(Landroid/icu/imp 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/ReplaceableString;->length()I+]Ljava/lang/StringBuffer;Ljava/lang/StringBuffer; 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;-><init>(Landroid/icu/text/RuleBasedBreakIterator;Landroid/icu/text/RuleBasedBreakIterator$BreakCache;)V+][S[S][I[I 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;->next()V+]Landroid/icu/text/RuleBasedBreakIterator$BreakCache;Landroid/icu/text/RuleBasedBreakIterator$BreakCache; +HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->populateFollowing()Z+]Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;]Landroid/icu/text/RuleBasedBreakIterator$BreakCache;Landroid/icu/text/RuleBasedBreakIterator$BreakCache; HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->populateNear(I)Z HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->populatePreceding()Z HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->preceding(I)V @@ -9985,19 +9990,19 @@ 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;-><init>(Landroid/icu/text/RuleBasedBreakIterator;Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;)V+]Landroid/icu/impl/breakiter/DictionaryBreakEngine$DequeI;Landroid/icu/impl/breakiter/DictionaryBreakEngine$DequeI; 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;->clone()Ljava/lang/Object;+]Ljava/text/CharacterIterator;Ljava/text/StringCharacterIterator; 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;->handleNext()I+]Landroid/icu/impl/RBBIDataWrapper;Landroid/icu/impl/RBBIDataWrapper;]Landroid/icu/util/CodePointTrie;Landroid/icu/util/CodePointTrie$Fast8;]Ljava/text/CharacterIterator;Ljava/text/StringCharacterIterator; HSPLandroid/icu/text/RuleBasedBreakIterator;->handleSafePrevious(I)I HSPLandroid/icu/text/RuleBasedBreakIterator;->isBoundary(I)Z HSPLandroid/icu/text/RuleBasedBreakIterator;->next()I @@ -10016,7 +10021,7 @@ HSPLandroid/icu/text/RuleBasedCollator;->checkNotFrozen()V HSPLandroid/icu/text/RuleBasedCollator;->clone()Ljava/lang/Object; HSPLandroid/icu/text/RuleBasedCollator;->cloneAsThawed()Landroid/icu/text/RuleBasedCollator; HSPLandroid/icu/text/RuleBasedCollator;->compare(Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/icu/text/RuleBasedCollator;->doCompare(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)I +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; @@ -10036,10 +10041,10 @@ HSPLandroid/icu/text/RuleBasedCollator;->writeSortKey(Ljava/lang/CharSequence;La 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;->fastZeroPaddingNumber(Ljava/lang/StringBuffer;III)V+]Ljava/lang/StringBuffer;Ljava/lang/StringBuffer; +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;+]Ljava/lang/StringBuffer;Ljava/lang/StringBuffer;]Ljava/text/FieldPosition;Ljava/text/FieldPosition;]Landroid/icu/text/SimpleDateFormat;Landroid/icu/text/SimpleDateFormat; 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;->format(Landroid/icu/util/Calendar;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;Ljava/util/List;)Ljava/lang/StringBuffer;+]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar;]Landroid/icu/text/SimpleDateFormat;Landroid/icu/text/SimpleDateFormat; 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; @@ -10054,7 +10059,7 @@ 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;->subFormat(Ljava/lang/StringBuffer;CIIILandroid/icu/text/DisplayContext;Ljava/text/FieldPosition;CLandroid/icu/util/Calendar;)V+]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar;]Ljava/lang/StringBuffer;Ljava/lang/StringBuffer;]Ljava/text/FieldPosition;Ljava/text/FieldPosition;]Landroid/icu/text/SimpleDateFormat;Landroid/icu/text/SimpleDateFormat; 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; @@ -10065,7 +10070,7 @@ HSPLandroid/icu/text/TimeZoneNames;->getInstance(Landroid/icu/util/ULocale;)Land 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()Ljava/lang/String;+]Landroid/icu/text/UCharacterIterator;Landroid/icu/impl/ReplaceableUCharacterIterator; HSPLandroid/icu/text/UCharacterIterator;->getText([C)I HSPLandroid/icu/text/UCharacterIterator;->setToStart()V HSPLandroid/icu/text/UFormat;-><init>()V @@ -10094,7 +10099,7 @@ 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 +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 @@ -10141,19 +10146,19 @@ HSPLandroid/icu/util/Calendar$PatternData;->make(Landroid/icu/util/Calendar;Land 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;-><init>(Landroid/icu/util/TimeZone;Landroid/icu/util/ULocale;)V+]Landroid/icu/util/ULocale;Landroid/icu/util/ULocale; 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;->complete()V+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar; +HSPLandroid/icu/util/Calendar;->computeFields()V+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar;]Landroid/icu/util/TimeZone;Landroid/icu/impl/OlsonTimeZone; +HSPLandroid/icu/util/Calendar;->computeGregorianAndDOWFields(I)V+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar; HSPLandroid/icu/util/Calendar;->computeGregorianFields(I)V -HSPLandroid/icu/util/Calendar;->computeWeekFields()V +HSPLandroid/icu/util/Calendar;->computeWeekFields()V+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar; 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;->get(I)I+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar; 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; @@ -10172,7 +10177,7 @@ 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;->getRegionForCalendar(Landroid/icu/util/ULocale;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String; HSPLandroid/icu/util/Calendar;->getRepeatedWallTimeOption()I HSPLandroid/icu/util/Calendar;->getSkippedWallTimeOption()I HSPLandroid/icu/util/Calendar;->getTimeInMillis()J @@ -10180,22 +10185,22 @@ 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;->initInternal()V+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar; HSPLandroid/icu/util/Calendar;->internalSet(II)V -HSPLandroid/icu/util/Calendar;->isEquivalentTo(Landroid/icu/util/Calendar;)Z +HSPLandroid/icu/util/Calendar;->isEquivalentTo(Landroid/icu/util/Calendar;)Z+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar;]Landroid/icu/util/TimeZone;Landroid/icu/impl/OlsonTimeZone;]Ljava/lang/Object;Landroid/icu/util/GregorianCalendar; 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;->setCalendarLocale(Landroid/icu/util/ULocale;)V+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar;]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/util/ULocale;Landroid/icu/util/ULocale; 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/Calendar;->setWeekData(Landroid/icu/util/Calendar$WeekData;)Landroid/icu/util/Calendar;+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar; +HSPLandroid/icu/util/Calendar;->setWeekData(Ljava/lang/String;)V+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar;]Landroid/icu/util/Calendar$WeekDataCache;Landroid/icu/util/Calendar$WeekDataCache; +HSPLandroid/icu/util/Calendar;->weekNumber(II)I+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar; +HSPLandroid/icu/util/Calendar;->weekNumber(III)I+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar; 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; @@ -10249,10 +10254,10 @@ HSPLandroid/icu/util/Currency;->getDefaultFractionDigits(Landroid/icu/util/Curre 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;->getName(Landroid/icu/util/ULocale;I[Z)Ljava/lang/String;+]Landroid/icu/text/CurrencyDisplayNames;Landroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo; 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;->getSymbol(Landroid/icu/util/ULocale;)Ljava/lang/String;+]Landroid/icu/util/Currency;Landroid/icu/util/Currency; +HSPLandroid/icu/util/Currency;->getSymbol(Ljava/util/Locale;)Ljava/lang/String;+]Landroid/icu/util/Currency;Landroid/icu/util/Currency; 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; @@ -10263,10 +10268,10 @@ 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;-><init>(Landroid/icu/util/TimeZone;Landroid/icu/util/ULocale;)V+]Landroid/icu/util/GregorianCalendar;Landroid/icu/util/GregorianCalendar; 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;->handleComputeFields(I)V+]Landroid/icu/util/GregorianCalendar;Landroid/icu/util/GregorianCalendar; +HSPLandroid/icu/util/GregorianCalendar;->handleGetYearLength(I)I+]Landroid/icu/util/GregorianCalendar;Landroid/icu/util/GregorianCalendar; 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 @@ -10328,7 +10333,7 @@ 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;->clone()Ljava/lang/Object;+]Landroid/icu/util/SimpleTimeZone;Landroid/icu/util/SimpleTimeZone; HSPLandroid/icu/util/SimpleTimeZone;->cloneAsThawed()Landroid/icu/util/TimeZone; HSPLandroid/icu/util/SimpleTimeZone;->compareToRule(IIIIIIIIIIII)I HSPLandroid/icu/util/SimpleTimeZone;->construct(IIIIIIIIIIII)V @@ -10337,7 +10342,7 @@ 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(IIIIII)I+]Landroid/icu/util/SimpleTimeZone;Landroid/icu/util/SimpleTimeZone; HSPLandroid/icu/util/SimpleTimeZone;->getOffset(IIIIIII)I HSPLandroid/icu/util/SimpleTimeZone;->getOffset(IIIIIIII)I HSPLandroid/icu/util/SimpleTimeZone;->getRawOffset()I @@ -10347,7 +10352,7 @@ 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;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/icu/util/SimpleTimeZone;Landroid/icu/util/SimpleTimeZone; HSPLandroid/icu/util/SimpleTimeZone;->useDaylightTime()Z HSPLandroid/icu/util/TimeArrayTimeZoneRule;-><init>(Ljava/lang/String;II[JI)V HSPLandroid/icu/util/TimeArrayTimeZoneRule;->getStartTimes()[J @@ -10362,10 +10367,10 @@ 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;->getOffset(JZ[I)V+]Landroid/icu/util/TimeZone;Landroid/icu/util/SimpleTimeZone; 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;->getTimeZone(Ljava/lang/String;IZ)Landroid/icu/util/TimeZone;+]Landroid/icu/util/TimeZone;Landroid/icu/impl/OlsonTimeZone; +HSPLandroid/icu/util/TimeZone;->hashCode()I+]Ljava/lang/String;Ljava/lang/String; 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 @@ -10402,37 +10407,37 @@ 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; +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;->equals(Ljava/lang/Object;)Z+]Ljava/lang/String;Ljava/lang/String; +HSPLandroid/icu/util/ULocale;->forLocale(Ljava/util/Locale;)Landroid/icu/util/ULocale;+]Landroid/icu/impl/SoftCache;Landroid/icu/util/ULocale$2; 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;->getBaseName(Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String; +HSPLandroid/icu/util/ULocale;->getCountry()Ljava/lang/String;+]Landroid/icu/impl/locale/BaseLocale;Landroid/icu/impl/locale/BaseLocale; +HSPLandroid/icu/util/ULocale;->getDefault()Landroid/icu/util/ULocale;+]Ljava/util/Locale;Ljava/util/Locale; 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;->getKeywordValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;+]Landroid/icu/impl/LocaleIDParser;Landroid/icu/impl/LocaleIDParser; 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;->getKeywords(Ljava/lang/String;)Ljava/util/Iterator;+]Landroid/icu/impl/LocaleIDParser;Landroid/icu/impl/LocaleIDParser; +HSPLandroid/icu/util/ULocale;->getLanguage()Ljava/lang/String;+]Landroid/icu/impl/locale/BaseLocale;Landroid/icu/impl/locale/BaseLocale; HSPLandroid/icu/util/ULocale;->getName()Ljava/lang/String; HSPLandroid/icu/util/ULocale;->getName(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/util/ULocale;->getRegionForSupplementalData(Landroid/icu/util/ULocale;Z)Ljava/lang/String; -HSPLandroid/icu/util/ULocale;->getScript()Ljava/lang/String; +HSPLandroid/icu/util/ULocale;->getRegionForSupplementalData(Landroid/icu/util/ULocale;Z)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/util/ULocale;Landroid/icu/util/ULocale; +HSPLandroid/icu/util/ULocale;->getScript()Ljava/lang/String;+]Landroid/icu/impl/locale/BaseLocale;Landroid/icu/impl/locale/BaseLocale; 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;->getShortestSubtagLength(Ljava/lang/String;)I+]Ljava/lang/String;Ljava/lang/String; +HSPLandroid/icu/util/ULocale;->getVariant()Ljava/lang/String;+]Landroid/icu/impl/locale/BaseLocale;Landroid/icu/impl/locale/BaseLocale; 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;->isRightToLeft()Z+]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/util/ULocale;Landroid/icu/util/ULocale; 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 @@ -10445,15 +10450,15 @@ 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;Landroid/icu/util/ULocale;)Landroid/icu/util/UResourceBundle;+]Landroid/icu/util/ULocale;Landroid/icu/util/ULocale; 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;->getRootType(Ljava/lang/String;Ljava/lang/ClassLoader;)Landroid/icu/util/UResourceBundle$RootType;+]Ljava/util/Map;Ljava/util/concurrent/ConcurrentHashMap; 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;->instantiateBundle(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Z)Landroid/icu/util/UResourceBundle;+]Landroid/icu/util/UResourceBundle$RootType;Landroid/icu/util/UResourceBundle$RootType; 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 @@ -10467,7 +10472,7 @@ HSPLandroid/location/ILocationManager$Stub;->asInterface(Landroid/os/IBinder;)La 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>(Landroid/location/Location;)V+]Landroid/location/Location;Landroid/location/Location; 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 @@ -10507,11 +10512,25 @@ 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/location/Location;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/location/Location;Landroid/location/Location;]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/location/LocationListener;->onLocationChanged(Ljava/util/List;)V +HSPLandroid/location/LocationManager$LocationEnabledCache;->recompute(Ljava/lang/Integer;)Ljava/lang/Boolean; +HSPLandroid/location/LocationManager$LocationEnabledCache;->recompute(Ljava/lang/Object;)Ljava/lang/Object; +HSPLandroid/location/LocationManager$LocationListenerTransport$$ExternalSyntheticLambda2;-><init>(Landroid/location/LocationManager$LocationListenerTransport;)V +HSPLandroid/location/LocationManager$LocationListenerTransport$$ExternalSyntheticLambda2;->get()Ljava/lang/Object; +HSPLandroid/location/LocationManager$LocationListenerTransport$1;-><init>(Landroid/location/LocationManager$LocationListenerTransport;Ljava/util/List;Landroid/os/IRemoteCallback;)V +HSPLandroid/location/LocationManager$LocationListenerTransport$1;->onComplete(Z)V +HSPLandroid/location/LocationManager$LocationListenerTransport$1;->operate(Landroid/location/LocationListener;)V +HSPLandroid/location/LocationManager$LocationListenerTransport$1;->operate(Ljava/lang/Object;)V +HSPLandroid/location/LocationManager$LocationListenerTransport;-><init>(Landroid/location/LocationListener;Ljava/util/concurrent/Executor;)V +HSPLandroid/location/LocationManager$LocationListenerTransport;->onLocationChanged(Ljava/util/List;Landroid/os/IRemoteCallback;)V +HSPLandroid/location/LocationManager$LocationListenerTransport;->onProviderEnabledChanged(Ljava/lang/String;Z)V +HSPLandroid/location/LocationManager$LocationListenerTransport;->setExecutor(Ljava/util/concurrent/Executor;)V +HSPLandroid/location/LocationManager$LocationListenerTransport;->unregister()V HSPLandroid/location/LocationManager;-><init>(Landroid/content/Context;Landroid/location/ILocationManager;)V HSPLandroid/location/LocationManager;->isLocationEnabledForUser(Landroid/os/UserHandle;)Z HSPLandroid/media/AudioAttributes$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/AudioAttributes; -HSPLandroid/media/AudioAttributes$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; +HSPLandroid/media/AudioAttributes$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; @@ -10537,7 +10556,7 @@ HSPLandroid/media/AudioAttributes;->-$$Nest$fputmTags(Landroid/media/AudioAttrib 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 +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 @@ -10547,16 +10566,16 @@ 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/AudioAttributes;->writeToParcel(Landroid/os/Parcel;I)V+]Ljava/util/HashSet;Ljava/util/HashSet;]Landroid/os/Parcel;Landroid/os/Parcel; 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;->convertInternalDeviceToDeviceType(I)I+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray; +HSPLandroid/media/AudioDeviceInfo;->getId()I+]Landroid/media/AudioHandle;Landroid/media/AudioHandle;]Landroid/media/AudioDevicePort;Landroid/media/AudioDevicePort; 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;->buildConfig(IIILandroid/media/AudioGainConfig;)Landroid/media/AudioPortConfig;+]Landroid/media/AudioDevicePort;Landroid/media/AudioDevicePort; HSPLandroid/media/AudioDevicePort;->type()I HSPLandroid/media/AudioDevicePortConfig;-><init>(Landroid/media/AudioDevicePort;IIILandroid/media/AudioGainConfig;)V HSPLandroid/media/AudioFocusRequest$Builder;-><init>(I)V @@ -10581,7 +10600,7 @@ 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;->equals(Ljava/lang/Object;)Z+]Landroid/media/AudioHandle;Landroid/media/AudioHandle; HSPLandroid/media/AudioHandle;->id()I HSPLandroid/media/AudioManager$1;-><init>(Landroid/media/AudioManager;)V HSPLandroid/media/AudioManager$2;-><init>(Landroid/media/AudioManager;)V @@ -10610,13 +10629,13 @@ HSPLandroid/media/AudioManager;->abandonAudioFocus(Landroid/media/AudioManager$O 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;->checkFlags(Landroid/media/AudioDevicePort;I)Z+]Landroid/media/AudioDevicePort;Landroid/media/AudioDevicePort; +HSPLandroid/media/AudioManager;->checkTypes(Landroid/media/AudioDevicePort;)Z+]Landroid/media/AudioDevicePort;Landroid/media/AudioDevicePort; +HSPLandroid/media/AudioManager;->filterDevicePorts(Ljava/util/ArrayList;Ljava/util/ArrayList;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList; 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;->getDeviceForPortId(II)Landroid/media/AudioDeviceInfo;+]Landroid/media/AudioDeviceInfo;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; @@ -10632,7 +10651,7 @@ 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;->infoListFromPortList(Ljava/util/ArrayList;I)[Landroid/media/AudioDeviceInfo;+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr; HSPLandroid/media/AudioManager;->isBluetoothA2dpOn()Z HSPLandroid/media/AudioManager;->isBluetoothScoOn()Z HSPLandroid/media/AudioManager;->isInputDevice(I)Z @@ -10659,12 +10678,12 @@ 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/AudioManager;->updateAudioPortCache(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;)I+]Landroid/media/AudioPatch;Landroid/media/AudioPatch;]Landroid/media/AudioPortEventHandler;Landroid/media/AudioPortEventHandler;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr; +HSPLandroid/media/AudioManager;->updatePortConfig(Landroid/media/AudioPortConfig;Ljava/util/ArrayList;)Landroid/media/AudioPortConfig;+]Landroid/media/AudioPortConfig;Landroid/media/AudioPortConfig;]Landroid/media/AudioHandle;Landroid/media/AudioHandle;]Landroid/media/AudioPort;Landroid/media/AudioMixPort;,Landroid/media/AudioDevicePort;,Landroid/media/AudioPort;]Ljava/util/ArrayList;Ljava/util/ArrayList; 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/AudioMixPort;->buildConfig(IIILandroid/media/AudioGainConfig;)Landroid/media/AudioPortConfig;+]Landroid/media/AudioMixPort;Landroid/media/AudioMixPort; 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; @@ -10672,7 +10691,7 @@ 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$$ExternalSyntheticLambda0;->applyAsInt(Ljava/lang/Object;)I+]Ljava/lang/Number;Ljava/lang/Integer; 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; @@ -10685,10 +10704,10 @@ 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$1;->handleMessage(Landroid/os/Message;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList; 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;->postEventFromNative(Ljava/lang/Object;IIILjava/lang/Object;)V+]Landroid/os/Handler;Landroid/media/AudioPortEventHandler$1;]Landroid/media/AudioPortEventHandler;Landroid/media/AudioPortEventHandler;]Ljava/lang/ref/WeakReference;Ljava/lang/ref/WeakReference; HSPLandroid/media/AudioPortEventHandler;->registerListener(Landroid/media/AudioManager$OnAudioPortUpdateListener;)V HSPLandroid/media/AudioProfile;-><init>(I[I[I[II)V HSPLandroid/media/AudioProfile;->getChannelIndexMasks()[I @@ -11404,8 +11423,8 @@ 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; -HSPLandroid/net/Uri$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; +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 @@ -11422,22 +11441,22 @@ 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;->appendEncodedPath(Ljava/lang/String;)Landroid/net/Uri$Builder;+]Landroid/net/Uri$Builder;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;->appendQueryParameter(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri$Builder;+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/net/Uri$Part;Landroid/net/Uri$Part$EmptyPart;,Landroid/net/Uri$Part; 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;->authority(Ljava/lang/String;)Landroid/net/Uri$Builder;+]Landroid/net/Uri$Builder;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;->encodedFragment(Ljava/lang/String;)Landroid/net/Uri$Builder;+]Landroid/net/Uri$Builder;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;->path(Ljava/lang/String;)Landroid/net/Uri$Builder;+]Landroid/net/Uri$Builder;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; @@ -11447,20 +11466,20 @@ HSPLandroid/net/Uri$HierarchicalUri;->buildUpon()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; 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;->getEncodedFragment()Ljava/lang/String;+]Landroid/net/Uri$Part;Landroid/net/Uri$Part$EmptyPart; 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;->getPath()Ljava/lang/String;+]Landroid/net/Uri$PathPart;Landroid/net/Uri$PathPart; +HSPLandroid/net/Uri$HierarchicalUri;->getPathSegments()Ljava/util/List;+]Landroid/net/Uri$PathPart;Landroid/net/Uri$PathPart; +HSPLandroid/net/Uri$HierarchicalUri;->getQuery()Ljava/lang/String;+]Landroid/net/Uri$Part;Landroid/net/Uri$Part$EmptyPart; 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; -HSPLandroid/net/Uri$HierarchicalUri;->readFrom(Landroid/os/Parcel;)Landroid/net/Uri; +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;+]Ljava/lang/String;Ljava/lang/String;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/net/Uri$HierarchicalUri;->toString()Ljava/lang/String; -HSPLandroid/net/Uri$HierarchicalUri;->writeToParcel(Landroid/os/Parcel;I)V +HSPLandroid/net/Uri$HierarchicalUri;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/net/Uri$Part;Landroid/net/Uri$Part$EmptyPart;,Landroid/net/Uri$Part;]Landroid/net/Uri$PathPart;Landroid/net/Uri$PathPart;]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -11470,7 +11489,7 @@ 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;->from(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri$Part;+]Ljava/lang/String;Ljava/lang/String; 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; @@ -11478,24 +11497,24 @@ 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; -HSPLandroid/net/Uri$PathPart;->from(Ljava/lang/String;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/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/String;Ljava/lang/String;]Landroid/net/Uri$PathPart;Landroid/net/Uri$PathPart; +HSPLandroid/net/Uri$PathPart;->from(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri$PathPart;+]Ljava/lang/String;Ljava/lang/String; 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; -HSPLandroid/net/Uri$PathPart;->makeAbsolute(Landroid/net/Uri$PathPart;)Landroid/net/Uri$PathPart; +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;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; 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/Object;+]Landroid/net/Uri$PathSegments;Landroid/net/Uri$PathSegments; 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; -HSPLandroid/net/Uri$StringUri;->findFragmentSeparator()I -HSPLandroid/net/Uri$StringUri;->findSchemeSeparator()I +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; @@ -11511,16 +11530,16 @@ 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;->isHierarchical()Z+]Ljava/lang/String;Ljava/lang/String; HSPLandroid/net/Uri$StringUri;->isRelative()Z -HSPLandroid/net/Uri$StringUri;->parseAuthority(Ljava/lang/String;I)Ljava/lang/String; +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; -HSPLandroid/net/Uri$StringUri;->parsePath(Ljava/lang/String;I)Ljava/lang/String; -HSPLandroid/net/Uri$StringUri;->parseQuery()Ljava/lang/String; -HSPLandroid/net/Uri$StringUri;->parseScheme()Ljava/lang/String; +HSPLandroid/net/Uri$StringUri;->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;+]Ljava/lang/String;Ljava/lang/String; HSPLandroid/net/Uri$StringUri;->toString()Ljava/lang/String; -HSPLandroid/net/Uri$StringUri;->writeToParcel(Landroid/os/Parcel;I)V +HSPLandroid/net/Uri$StringUri;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/net/Uri;-><init>()V HSPLandroid/net/Uri;-><init>(Landroid/net/Uri-IA;)V HSPLandroid/net/Uri;->checkContentUriWithoutPermission(Ljava/lang/String;I)V @@ -11529,26 +11548,26 @@ 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; -HSPLandroid/net/Uri;->equals(Ljava/lang/Object;)Z +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+]Ljava/lang/String;Ljava/lang/String;]Landroid/net/Uri;Landroid/net/Uri$StringUri; 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; +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; -HSPLandroid/net/Uri;->hashCode()I +HSPLandroid/net/Uri;->hashCode()I+]Ljava/lang/String;Ljava/lang/String;]Landroid/net/Uri;Landroid/net/Uri$StringUri; HSPLandroid/net/Uri;->isAbsolute()Z -HSPLandroid/net/Uri;->isAllowed(CLjava/lang/String;)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;->toSafeString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/String;Ljava/lang/String;]Landroid/net/Uri;Landroid/net/Uri$OpaqueUri;,Landroid/net/Uri$HierarchicalUri; HSPLandroid/net/Uri;->withAppendedPath(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri; HSPLandroid/net/Uri;->writeToParcel(Landroid/os/Parcel;Landroid/net/Uri;)V -HSPLandroid/net/UriCodec;->appendDecoded(Ljava/lang/StringBuilder;Ljava/lang/String;ZLjava/nio/charset/Charset;Z)V -HSPLandroid/net/UriCodec;->decode(Ljava/lang/String;ZLjava/nio/charset/Charset;Z)Ljava/lang/String; -HSPLandroid/net/UriCodec;->flushDecodingByteAccumulator(Ljava/lang/StringBuilder;Ljava/nio/charset/CharsetDecoder;Ljava/nio/ByteBuffer;Z)V -HSPLandroid/net/UriCodec;->getNextCharacter(Ljava/lang/String;IILjava/lang/String;)C +HSPLandroid/net/UriCodec;->appendDecoded(Ljava/lang/StringBuilder;Ljava/lang/String;ZLjava/nio/charset/Charset;Z)V+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]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;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/String;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+]Ljava/lang/String;Ljava/lang/String; HSPLandroid/net/UriCodec;->hexCharToValue(C)I HSPLandroid/net/WebAddress;-><init>(Ljava/lang/String;)V HSPLandroid/net/WebAddress;->toString()Ljava/lang/String; @@ -11631,53 +11650,53 @@ 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 +HSPLandroid/os/BaseBundle;-><init>(Landroid/os/BaseBundle;Z)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/Parcel;Landroid/os/Parcel;]Landroid/os/BaseBundle;Landroid/os/Bundle; HSPLandroid/os/BaseBundle;-><init>(Landroid/os/Parcel;I)V -HSPLandroid/os/BaseBundle;-><init>(Ljava/lang/ClassLoader;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;->containsKey(Ljava/lang/String;)Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/BaseBundle;Landroid/os/Bundle; HSPLandroid/os/BaseBundle;->deepCopyValue(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/os/BaseBundle;->get(Ljava/lang/String;)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;->getBoolean(Ljava/lang/String;)Z+]Landroid/os/BaseBundle;Landroid/os/PersistableBundle;,Landroid/os/Bundle; +HSPLandroid/os/BaseBundle;->getBoolean(Ljava/lang/String;Z)Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/Boolean;Ljava/lang/Boolean;]Landroid/os/BaseBundle;Landroid/os/Bundle; 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 +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 +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;->getLong(Ljava/lang/String;J)J+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/Long;Ljava/lang/Long;]Landroid/os/BaseBundle;Landroid/os/Bundle; +HSPLandroid/os/BaseBundle;->getLongArray(Ljava/lang/String;)[J+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/BaseBundle;Landroid/os/Bundle; 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;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/BaseBundle;Landroid/os/PersistableBundle;,Landroid/os/Bundle; HSPLandroid/os/BaseBundle;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/os/BaseBundle;->getStringArray(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; -HSPLandroid/os/BaseBundle;->getValue(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object; -HSPLandroid/os/BaseBundle;->getValue(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/Object; -HSPLandroid/os/BaseBundle;->getValueAt(ILjava/lang/Class;[Ljava/lang/Class;)Ljava/lang/Object; -HSPLandroid/os/BaseBundle;->initializeFromParcelLocked(Landroid/os/Parcel;ZZ)V -HSPLandroid/os/BaseBundle;->isEmpty()Z +HSPLandroid/os/BaseBundle;->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/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; +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;->putBoolean(Ljava/lang/String;Z)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/BaseBundle;Landroid/os/PersistableBundle;,Landroid/os/Bundle; 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;->putCharSequence(Ljava/lang/String;Ljava/lang/CharSequence;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/BaseBundle;Landroid/os/Bundle; HSPLandroid/os/BaseBundle;->putCharSequenceArray(Ljava/lang/String;[Ljava/lang/CharSequence;)V -HSPLandroid/os/BaseBundle;->putDouble(Ljava/lang/String;D)V +HSPLandroid/os/BaseBundle;->putDouble(Ljava/lang/String;D)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/BaseBundle;Landroid/os/Bundle; HSPLandroid/os/BaseBundle;->putFloat(Ljava/lang/String;F)V HSPLandroid/os/BaseBundle;->putInt(Ljava/lang/String;I)V HSPLandroid/os/BaseBundle;->putIntArray(Ljava/lang/String;[I)V @@ -11688,16 +11707,16 @@ HSPLandroid/os/BaseBundle;->putString(Ljava/lang/String;Ljava/lang/String;)V HSPLandroid/os/BaseBundle;->putStringArray(Ljava/lang/String;[Ljava/lang/String;)V HSPLandroid/os/BaseBundle;->putStringArrayList(Ljava/lang/String;Ljava/util/ArrayList;)V HSPLandroid/os/BaseBundle;->readFromParcelInner(Landroid/os/Parcel;)V -HSPLandroid/os/BaseBundle;->readFromParcelInner(Landroid/os/Parcel;I)V -HSPLandroid/os/BaseBundle;->recycleParcel(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 -HSPLandroid/os/BaseBundle;->unparcel()V+]Landroid/os/BaseBundle;Landroid/os/Bundle; +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; -HSPLandroid/os/BaseBundle;->writeToParcelInner(Landroid/os/Parcel;I)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 @@ -11734,7 +11753,7 @@ HSPLandroid/os/Binder$PropagateWorkSourceTransactListener;->onTransactEnded(Ljav HSPLandroid/os/Binder$PropagateWorkSourceTransactListener;->onTransactStarted(Landroid/os/IBinder;I)Ljava/lang/Object; HSPLandroid/os/Binder$ProxyTransactListener;->onTransactStarted(Landroid/os/IBinder;II)Ljava/lang/Object;+]Landroid/os/Binder$ProxyTransactListener;Landroid/os/Binder$PropagateWorkSourceTransactListener; HSPLandroid/os/Binder;-><init>()V -HSPLandroid/os/Binder;-><init>(Ljava/lang/String;)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 @@ -11742,14 +11761,14 @@ HSPLandroid/os/Binder;->copyAllowBlocking(Landroid/os/IBinder;Landroid/os/IBinde HSPLandroid/os/Binder;->defaultBlocking(Landroid/os/IBinder;)Landroid/os/IBinder; HSPLandroid/os/Binder;->doDump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V HSPLandroid/os/Binder;->dump(Ljava/io/FileDescriptor;[Ljava/lang/String;)V -HSPLandroid/os/Binder;->execTransact(IJJI)Z -HSPLandroid/os/Binder;->execTransactInternal(ILandroid/os/Parcel;Landroid/os/Parcel;II)Z +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;megamorphic_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; +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;->isProxy(Landroid/os/IInterface;)Z HSPLandroid/os/Binder;->isStackTrackingEnabled()Z @@ -11762,15 +11781,15 @@ HSPLandroid/os/Binder;->setProxyTransactListener(Landroid/os/Binder$ProxyTransac 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;->get(J)Landroid/os/BinderProxy;+]Ljava/lang/Long;Ljava/lang/Long;]Ljava/lang/ref/WeakReference;Ljava/lang/ref/WeakReference;]Ljava/util/ArrayList;Ljava/util/ArrayList; 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$ProxyMap;->set(JLandroid/os/BinderProxy;)V+]Ljava/lang/ref/WeakReference;Ljava/lang/ref/WeakReference;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HSPLandroid/os/BinderProxy;-><init>(J)V -HSPLandroid/os/BinderProxy;->getInstance(JJ)Landroid/os/BinderProxy; +HSPLandroid/os/BinderProxy;->getInstance(JJ)Landroid/os/BinderProxy;+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry;]Landroid/os/BinderProxy$ProxyMap;Landroid/os/BinderProxy$ProxyMap; 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 +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/BluetoothServiceManager$ServiceRegisterer;-><init>(Ljava/lang/String;)V HSPLandroid/os/BluetoothServiceManager$ServiceRegisterer;->get()Landroid/os/IBinder; HSPLandroid/os/BluetoothServiceManager;-><init>()V @@ -11796,7 +11815,7 @@ 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;->getBundle(Ljava/lang/String;)Landroid/os/Bundle;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/Bundle;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 @@ -11811,8 +11830,8 @@ HSPLandroid/os/Bundle;->getSerializable(Ljava/lang/String;Ljava/lang/Class;)Ljav HSPLandroid/os/Bundle;->getSparseParcelableArray(Ljava/lang/String;)Landroid/util/SparseArray; HSPLandroid/os/Bundle;->getStringArrayList(Ljava/lang/String;)Ljava/util/ArrayList; HSPLandroid/os/Bundle;->hasFileDescriptors()Z -HSPLandroid/os/Bundle;->maybePrefillHasFds()V -HSPLandroid/os/Bundle;->putAll(Landroid/os/Bundle;)V +HSPLandroid/os/Bundle;->maybePrefillHasFds()V+]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/os/Bundle;->putAll(Landroid/os/Bundle;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/Bundle;Landroid/os/Bundle; 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 @@ -11820,9 +11839,9 @@ HSPLandroid/os/Bundle;->putCharSequence(Ljava/lang/String;Ljava/lang/CharSequenc 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;->putParcelable(Ljava/lang/String;Landroid/os/Parcelable;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/Bundle;Landroid/os/Bundle; 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;->putParcelableArrayList(Ljava/lang/String;Ljava/util/ArrayList;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/Bundle;Landroid/os/Bundle; 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 @@ -11834,7 +11853,7 @@ HSPLandroid/os/Bundle;->setClassLoader(Ljava/lang/ClassLoader;)V HSPLandroid/os/Bundle;->setDefusable(Landroid/os/Bundle;Z)Landroid/os/Bundle; HSPLandroid/os/Bundle;->setDefusable(Z)V HSPLandroid/os/Bundle;->toString()Ljava/lang/String; -HSPLandroid/os/Bundle;->writeToParcel(Landroid/os/Parcel;I)V +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 @@ -11927,8 +11946,8 @@ HSPLandroid/os/Environment$UserEnvironment;->buildExternalStorageAppCacheDirs(Lj 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$UserEnvironment;->getExternalDirs()[Ljava/io/File;+]Landroid/os/storage/StorageVolume;Landroid/os/storage/StorageVolume; +HSPLandroid/os/Environment;->buildExternalStorageAppFilesDirs(Ljava/lang/String;)[Ljava/io/File;+]Landroid/os/Environment$UserEnvironment;Landroid/os/Environment$UserEnvironment; 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; @@ -11971,7 +11990,7 @@ 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; +HSPLandroid/os/FileUtils;->buildValidExtFilename(Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/String;Ljava/lang/String; HSPLandroid/os/FileUtils;->bytesToFile(Ljava/lang/String;[B)V HSPLandroid/os/FileUtils;->closeQuietly(Ljava/lang/AutoCloseable;)V HSPLandroid/os/FileUtils;->contains(Ljava/io/File;Ljava/io/File;)Z @@ -12041,28 +12060,28 @@ 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 +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 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;J)Z+]Landroid/os/Handler;Landroid/os/Handler;,Landroid/view/ViewRootImpl$ViewRootHandler; HSPLandroid/os/Handler;->postDelayed(Ljava/lang/Runnable;Ljava/lang/Object;J)Z -HSPLandroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V +HSPLandroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V+]Landroid/os/MessageQueue;Landroid/os/MessageQueue; 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;->removeMessages(I)V+]Landroid/os/MessageQueue;Landroid/os/MessageQueue; +HSPLandroid/os/Handler;->removeMessages(ILjava/lang/Object;)V+]Landroid/os/MessageQueue;Landroid/os/MessageQueue; 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 +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;megamorphic_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/HandlerExecutor;->execute(Ljava/lang/Runnable;)V+]Landroid/os/Handler;Landroid/os/Handler; HSPLandroid/os/HandlerThread;-><init>(Ljava/lang/String;)V HSPLandroid/os/HandlerThread;-><init>(Ljava/lang/String;I)V HSPLandroid/os/HandlerThread;->getLooper()Landroid/os/Looper; @@ -12088,7 +12107,7 @@ HSPLandroid/os/IBatteryPropertiesRegistrar$Stub$Proxy;-><init>(Landroid/os/IBind HSPLandroid/os/IBatteryPropertiesRegistrar$Stub$Proxy;->asBinder()Landroid/os/IBinder; HSPLandroid/os/IBatteryPropertiesRegistrar$Stub$Proxy;->getProperty(ILandroid/os/BatteryProperty;)I HSPLandroid/os/IBatteryPropertiesRegistrar$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IBatteryPropertiesRegistrar; -HSPLandroid/os/IBinder$DeathRecipient;->binderDied(Landroid/os/IBinder;)V +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; @@ -12128,7 +12147,7 @@ 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$Proxy;->updateWakeLockWorkSource(Landroid/os/IBinder;Landroid/os/WorkSource;Ljava/lang/String;)V+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/IPowerManager$Stub$Proxy;Landroid/os/IPowerManager$Stub$Proxy;]Landroid/os/Parcel;Landroid/os/Parcel; 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 @@ -12156,7 +12175,7 @@ HSPLandroid/os/IThermalStatusListener$Stub;->onTransact(ILandroid/os/Parcel;Land 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;->getApplicationRestrictionsForUser(Ljava/lang/String;I)Landroid/os/Bundle;+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/IUserManager$Stub$Proxy;Landroid/os/IUserManager$Stub$Proxy;]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -12198,15 +12217,15 @@ HSPLandroid/os/IpcDataCache;-><init>(Landroid/os/IpcDataCache$Config;Landroid/os 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;-><init>([Ljava/util/Locale;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/util/Locale;Ljava/util/Locale;]Ljava/util/HashSet;Ljava/util/HashSet;]Ljava/util/ArrayList;Ljava/util/ArrayList; 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 HSPLandroid/os/LocaleList;->findFirstMatchIndex(Ljava/util/Locale;)I -HSPLandroid/os/LocaleList;->forLanguageTags(Ljava/lang/String;)Landroid/os/LocaleList; +HSPLandroid/os/LocaleList;->forLanguageTags(Ljava/lang/String;)Landroid/os/LocaleList;+]Ljava/lang/String;Ljava/lang/String; HSPLandroid/os/LocaleList;->get(I)Ljava/util/Locale; HSPLandroid/os/LocaleList;->getAdjustedDefault()Landroid/os/LocaleList; -HSPLandroid/os/LocaleList;->getDefault()Landroid/os/LocaleList; +HSPLandroid/os/LocaleList;->getDefault()Landroid/os/LocaleList;+]Ljava/util/Locale;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; @@ -12226,9 +12245,9 @@ HSPLandroid/os/Looper;->getMainLooper()Landroid/os/Looper; HSPLandroid/os/Looper;->getQueue()Landroid/os/MessageQueue; HSPLandroid/os/Looper;->getThread()Ljava/lang/Thread; HSPLandroid/os/Looper;->isCurrentThread()Z -HSPLandroid/os/Looper;->loop()V -HSPLandroid/os/Looper;->loopOnce(Landroid/os/Looper;JI)Z+]Landroid/os/Handler;missing_types]Landroid/os/Message;Landroid/os/Message;]Landroid/os/MessageQueue;Landroid/os/MessageQueue; -HSPLandroid/os/Looper;->myLooper()Landroid/os/Looper; +HSPLandroid/os/Looper;->loop()V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/Thread;Landroid/os/HandlerThread;,Landroid/net/ConnectivityThread; +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 @@ -12286,12 +12305,12 @@ HSPLandroid/os/MessageQueue;->postSyncBarrier(J)I+]Landroid/os/Message;Landroid/ 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;->removeCallbacksAndMessages(Landroid/os/Handler;Ljava/lang/Object;)V+]Landroid/os/Message;Landroid/os/Message; HSPLandroid/os/MessageQueue;->removeIdleHandler(Landroid/os/MessageQueue$IdleHandler;)V -HSPLandroid/os/MessageQueue;->removeMessages(Landroid/os/Handler;ILjava/lang/Object;)V -HSPLandroid/os/MessageQueue;->removeMessages(Landroid/os/Handler;Ljava/lang/Runnable;Ljava/lang/Object;)V +HSPLandroid/os/MessageQueue;->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 +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; @@ -12304,15 +12323,15 @@ HSPLandroid/os/Messenger;->send(Landroid/os/Message;)V HSPLandroid/os/Messenger;->writeMessengerOrNullToParcel(Landroid/os/Messenger;Landroid/os/Parcel;)V HSPLandroid/os/Messenger;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/os/Parcel$2;-><init>(Landroid/os/Parcel;Ljava/io/InputStream;Ljava/lang/ClassLoader;)V -HSPLandroid/os/Parcel$2;->resolveClass(Ljava/io/ObjectStreamClass;)Ljava/lang/Class; +HSPLandroid/os/Parcel$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; +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; HSPLandroid/os/Parcel$LazyValue;->writeToParcel(Landroid/os/Parcel;)V -HSPLandroid/os/Parcel$ReadWriteHelper;->readString16(Landroid/os/Parcel;)Ljava/lang/String; -HSPLandroid/os/Parcel$ReadWriteHelper;->readString8(Landroid/os/Parcel;)Ljava/lang/String; -HSPLandroid/os/Parcel$ReadWriteHelper;->writeString16(Landroid/os/Parcel;Ljava/lang/String;)V -HSPLandroid/os/Parcel$ReadWriteHelper;->writeString8(Landroid/os/Parcel;Ljava/lang/String;)V +HSPLandroid/os/Parcel$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 @@ -12326,26 +12345,26 @@ 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 -HSPLandroid/os/Parcel;->createLongArray()[J -HSPLandroid/os/Parcel;->createString16Array()[Ljava/lang/String; -HSPLandroid/os/Parcel;->createString8Array()[Ljava/lang/String; +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; -HSPLandroid/os/Parcel;->createTypedArray(Landroid/os/Parcelable$Creator;)[Ljava/lang/Object; -HSPLandroid/os/Parcel;->createTypedArrayList(Landroid/os/Parcelable$Creator;)Ljava/util/ArrayList; +HSPLandroid/os/Parcel;->createStringArrayList()Ljava/util/ArrayList;+]Landroid/os/Parcel;Landroid/os/Parcel;]Ljava/util/ArrayList;Ljava/util/ArrayList; +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 +HSPLandroid/os/Parcel;->enforceNoDataAvail()V+]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/os/Parcel;->ensureReadSquashableParcelables()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;->getValueType(Ljava/lang/Object;)I+]Ljava/lang/Object;Ljava/util/Random;]Ljava/lang/Class;Ljava/lang/Class; HSPLandroid/os/Parcel;->hasFileDescriptors()Z HSPLandroid/os/Parcel;->hasReadWriteHelper()Z HSPLandroid/os/Parcel;->init(J)V @@ -12360,37 +12379,37 @@ 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; -HSPLandroid/os/Parcel;->readArrayMap(Landroid/util/ArrayMap;IZZLjava/lang/ClassLoader;)I +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 +HSPLandroid/os/Parcel;->readBoolean()Z+]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/os/Parcel;->readBooleanArray([Z)V -HSPLandroid/os/Parcel;->readBundle()Landroid/os/Bundle; -HSPLandroid/os/Parcel;->readBundle(Ljava/lang/ClassLoader;)Landroid/os/Bundle; -HSPLandroid/os/Parcel;->readByte()B +HSPLandroid/os/Parcel;->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; +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()V+]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/os/Parcel;->readException(ILjava/lang/String;)V -HSPLandroid/os/Parcel;->readExceptionCode()I +HSPLandroid/os/Parcel;->readExceptionCode()I+]Landroid/os/Parcel;Landroid/os/Parcel; 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; +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;->readList(Ljava/util/List;Ljava/lang/ClassLoader;Ljava/lang/Class;)V+]Landroid/os/Parcel;Landroid/os/Parcel; 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;->readListInternal(Ljava/util/List;ILjava/lang/ClassLoader;Ljava/lang/Class;)V+]Ljava/util/List;Ljava/util/ArrayList; HSPLandroid/os/Parcel;->readLong()J HSPLandroid/os/Parcel;->readLongArray([J)V HSPLandroid/os/Parcel;->readMap(Ljava/util/Map;Ljava/lang/ClassLoader;)V @@ -12400,18 +12419,18 @@ HSPLandroid/os/Parcel;->readParcelable(Ljava/lang/ClassLoader;)Landroid/os/Parce HSPLandroid/os/Parcel;->readParcelable(Ljava/lang/ClassLoader;Ljava/lang/Class;)Ljava/lang/Object; HSPLandroid/os/Parcel;->readParcelableArray(Ljava/lang/ClassLoader;)[Landroid/os/Parcelable; HSPLandroid/os/Parcel;->readParcelableArray(Ljava/lang/ClassLoader;Ljava/lang/Class;)[Ljava/lang/Object; -HSPLandroid/os/Parcel;->readParcelableArrayInternal(Ljava/lang/ClassLoader;Ljava/lang/Class;)[Ljava/lang/Object; +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; -HSPLandroid/os/Parcel;->readParcelableInternal(Ljava/lang/ClassLoader;Ljava/lang/Class;)Ljava/lang/Object; +HSPLandroid/os/Parcel;->readParcelableCreatorInternal(Ljava/lang/ClassLoader;Ljava/lang/Class;)Landroid/os/Parcelable$Creator;+]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel;]Ljava/lang/Object;Landroid/os/Parcel;]Ljava/lang/reflect/Field;Ljava/lang/reflect/Field; +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; HSPLandroid/os/Parcel;->readPersistableBundle()Landroid/os/PersistableBundle; -HSPLandroid/os/Parcel;->readPersistableBundle(Ljava/lang/ClassLoader;)Landroid/os/PersistableBundle; +HSPLandroid/os/Parcel;->readPersistableBundle(Ljava/lang/ClassLoader;)Landroid/os/PersistableBundle;+]Landroid/os/PersistableBundle;Landroid/os/PersistableBundle;]Landroid/os/Parcel;Landroid/os/Parcel; 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; +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; @@ -12419,21 +12438,21 @@ HSPLandroid/os/Parcel;->readSparseArrayInternal(Ljava/lang/ClassLoader;Ljava/lan 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; -HSPLandroid/os/Parcel;->readString()Ljava/lang/String; -HSPLandroid/os/Parcel;->readString16()Ljava/lang/String; +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; +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; +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;->readTypedArray([Ljava/lang/Object;Landroid/os/Parcelable$Creator;)V+]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/os/Parcel;->readTypedList(Ljava/util/List;Landroid/os/Parcelable$Creator;)V -HSPLandroid/os/Parcel;->readTypedObject(Landroid/os/Parcelable$Creator;)Ljava/lang/Object; +HSPLandroid/os/Parcel;->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; +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; HSPLandroid/os/Parcel;->recycle()V @@ -12445,16 +12464,16 @@ 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 -HSPLandroid/os/Parcel;->writeArraySet(Landroid/util/ArraySet;)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+]Landroid/util/ArraySet;Landroid/util/ArraySet;]Landroid/os/Parcel;Landroid/os/Parcel; 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 +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;->writeByteArray([BII)V+]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/os/Parcel;->writeCharSequence(Ljava/lang/CharSequence;)V HSPLandroid/os/Parcel;->writeDouble(D)V HSPLandroid/os/Parcel;->writeException(Ljava/lang/Exception;)V @@ -12470,39 +12489,39 @@ 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 -HSPLandroid/os/Parcel;->writeParcelableArray([Landroid/os/Parcelable;I)V -HSPLandroid/os/Parcel;->writeParcelableCreator(Landroid/os/Parcelable;)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;megamorphic_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 -HSPLandroid/os/Parcel;->writeString16(Ljava/lang/String;)V -HSPLandroid/os/Parcel;->writeString16Array([Ljava/lang/String;)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 -HSPLandroid/os/Parcel;->writeString8Array([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+]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/os/Parcel;->writeString8NoHelper(Ljava/lang/String;)V -HSPLandroid/os/Parcel;->writeStringArray([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 +HSPLandroid/os/Parcel;->writeStrongInterface(Landroid/os/IInterface;)V+]Landroid/os/IInterface;Landroid/database/ContentObserver$Transport;,Landroid/app/LoadedApk$ServiceDispatcher$InnerConnection;,Landroid/app/ActivityThread$ApplicationThread;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/os/Parcel;->writeTypedArray([Landroid/os/Parcelable;I)V HSPLandroid/os/Parcel;->writeTypedArrayMap(Landroid/util/ArrayMap;I)V HSPLandroid/os/Parcel;->writeTypedList(Ljava/util/List;)V -HSPLandroid/os/Parcel;->writeTypedList(Ljava/util/List;I)V -HSPLandroid/os/Parcel;->writeTypedObject(Landroid/os/Parcelable;I)V -HSPLandroid/os/Parcel;->writeValue(ILjava/lang/Object;)V -HSPLandroid/os/Parcel;->writeValue(Ljava/lang/Object;)V +HSPLandroid/os/Parcel;->writeTypedList(Ljava/util/List;I)V+]Ljava/util/List;Ljava/util/ArrayList;]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/os/Parcel;->writeTypedObject(Landroid/os/Parcelable;I)V+]Landroid/os/Parcelable;megamorphic_types]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/Double;Ljava/lang/Double;]Ljava/lang/Long;Ljava/lang/Long;]Ljava/lang/Byte;Ljava/lang/Byte;]Landroid/os/Parcel;Landroid/os/Parcel;]Ljava/lang/Float;Ljava/lang/Float; +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$AutoCloseInputStream;->read([BII)I+]Landroid/os/ParcelFileDescriptor;Landroid/content/ContentResolver$ParcelFileDescriptorInner;,Landroid/os/ParcelFileDescriptor; HSPLandroid/os/ParcelFileDescriptor$AutoCloseOutputStream;-><init>(Landroid/os/ParcelFileDescriptor;)V HSPLandroid/os/ParcelFileDescriptor$AutoCloseOutputStream;->close()V HSPLandroid/os/ParcelFileDescriptor;-><init>(Landroid/os/ParcelFileDescriptor;)V @@ -12536,10 +12555,10 @@ HSPLandroid/os/ParcelUuid$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Ob 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;->equals(Ljava/lang/Object;)Z+]Ljava/util/UUID;Ljava/util/UUID; 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;->hashCode()I+]Ljava/util/UUID;Ljava/util/UUID; HSPLandroid/os/ParcelUuid;->toString()Ljava/lang/String; HSPLandroid/os/ParcelUuid;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/os/ParcelableException;-><init>(Ljava/lang/Throwable;)V @@ -12580,7 +12599,7 @@ HSPLandroid/os/PowerManager$1;-><init>(Landroid/os/PowerManager;ILjava/lang/Stri 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/Integer;)Ljava/lang/Boolean;+]Landroid/os/IPowerManager;Landroid/os/IPowerManager$Stub$Proxy; 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 @@ -12590,13 +12609,13 @@ 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;->acquireLocked()V+]Landroid/os/Handler;Landroid/app/ActivityThread$H;]Landroid/os/IPowerManager;Landroid/os/IPowerManager$Stub$Proxy; 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$WakeLock;->setWorkSource(Landroid/os/WorkSource;)V+]Landroid/os/WorkSource;Landroid/os/WorkSource;]Landroid/os/IPowerManager;Landroid/os/IPowerManager$Stub$Proxy; 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 @@ -12649,7 +12668,7 @@ 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/RemoteCallback;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/IRemoteCallback;Landroid/os/RemoteCallback$1;]Landroid/os/Parcel;Landroid/os/Parcel; 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 @@ -12733,23 +12752,23 @@ 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$5;->onPathAccess(Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String; 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;->handleViolationWithTimingAttempt(Landroid/os/StrictMode$ViolationInfo;)V+]Landroid/os/Handler;Landroid/os/Handler;]Landroid/os/StrictMode$AndroidBlockGuardPolicy;Landroid/os/StrictMode$AndroidBlockGuardPolicy;]Ljava/lang/ThreadLocal;Landroid/os/StrictMode$2;,Landroid/os/StrictMode$3;]Landroid/os/StrictMode$ViolationInfo;Landroid/os/StrictMode$ViolationInfo;]Ljava/util/ArrayList;Ljava/util/ArrayList; +HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->lambda$handleViolationWithTimingAttempt$0(Landroid/view/IWindowManager;Ljava/util/ArrayList;)V+]Landroid/os/StrictMode$AndroidBlockGuardPolicy;Landroid/os/StrictMode$AndroidBlockGuardPolicy;]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onCustomSlowCall(Ljava/lang/String;)V HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onNetwork()V HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onReadFromDisk()V -HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onThreadPolicyViolation(Landroid/os/StrictMode$ViolationInfo;)V +HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onThreadPolicyViolation(Landroid/os/StrictMode$ViolationInfo;)V+]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;]Landroid/os/StrictMode$ViolationLogger;Landroid/os/StrictMode$$ExternalSyntheticLambda1;]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/Integer;Ljava/lang/Integer;]Ljava/lang/ThreadLocal;Landroid/os/StrictMode$1;,Ljava/lang/ThreadLocal;]Ljava/lang/Long;Ljava/lang/Long;]Landroid/os/StrictMode$ViolationInfo;Landroid/os/StrictMode$ViolationInfo;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr; 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$AndroidBlockGuardPolicy;->startHandlingViolationException(Landroid/os/strictmode/Violation;)V+]Landroid/os/StrictMode$AndroidBlockGuardPolicy;Landroid/os/StrictMode$AndroidBlockGuardPolicy; 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 @@ -12786,12 +12805,12 @@ HSPLandroid/os/StrictMode$ThreadSpanState;-><init>(Landroid/os/StrictMode$Thread 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 -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;-><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+]Ljava/lang/ThreadLocal;Landroid/os/StrictMode$8; +HSPLandroid/os/StrictMode$ViolationInfo;->getStackTrace()Ljava/lang/String;+]Ljava/util/Deque;Ljava/util/ArrayDeque;]Ljava/io/PrintWriter;Lcom/android/internal/util/FastPrintWriter;]Ljava/lang/StackTraceElement;Ljava/lang/StackTraceElement;]Ljava/util/Iterator;Ljava/util/ArrayDeque$DeqIterator;]Ljava/io/StringWriter;Ljava/io/StringWriter;]Landroid/os/strictmode/Violation;Landroid/os/strictmode/UnbufferedIoViolation;,Landroid/os/strictmode/DiskReadViolation;,Landroid/os/strictmode/CustomViolation; +HSPLandroid/os/StrictMode$ViolationInfo;->hashCode()I+]Landroid/os/strictmode/Violation;Landroid/os/strictmode/DiskReadViolation;,Landroid/os/strictmode/LeakedClosableViolation; HSPLandroid/os/StrictMode$ViolationInfo;->penaltyEnabled(I)Z -HSPLandroid/os/StrictMode$ViolationInfo;->writeToParcel(Landroid/os/Parcel;I)V +HSPLandroid/os/StrictMode$ViolationInfo;->writeToParcel(Landroid/os/Parcel;I)V+]Ljava/util/Deque;Ljava/util/ArrayDeque;]Ljava/lang/StackTraceElement;Ljava/lang/StackTraceElement;]Ljava/util/Iterator;Ljava/util/ArrayDeque$DeqIterator;]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -12830,13 +12849,13 @@ 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 +HSPLandroid/os/StrictMode;->assertConfigurationContext(Landroid/content/Context;Ljava/lang/String;)V+]Landroid/content/Context;missing_types +HSPLandroid/os/StrictMode;->clampViolationTimeMap(Landroid/util/SparseLongArray;J)V+]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray; +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;->getThreadPolicy()Landroid/os/StrictMode$ThreadPolicy;+]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal; HSPLandroid/os/StrictMode;->getThreadPolicyMask()I HSPLandroid/os/StrictMode;->getVmPolicy()Landroid/os/StrictMode$VmPolicy; HSPLandroid/os/StrictMode;->handleApplicationStrictModeViolation(ILandroid/os/StrictMode$ViolationInfo;)V @@ -12852,15 +12871,15 @@ 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;->onVmPolicyViolation(Landroid/os/strictmode/Violation;Z)V+]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;]Landroid/os/StrictMode$ViolationLogger;Landroid/os/StrictMode$$ExternalSyntheticLambda1;]Ljava/lang/Integer;Ljava/lang/Integer;]Landroid/os/StrictMode$ViolationInfo;Landroid/os/StrictMode$ViolationInfo; +HSPLandroid/os/StrictMode;->readAndHandleBinderCallViolations(Landroid/os/Parcel;)V+]Landroid/os/StrictMode$AndroidBlockGuardPolicy;Landroid/os/StrictMode$AndroidBlockGuardPolicy;]Landroid/os/StrictMode$ViolationInfo;Landroid/os/StrictMode$ViolationInfo;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/os/StrictMode;->registerIntentMatchingRestrictionCallback()V -HSPLandroid/os/StrictMode;->setBlockGuardPolicy(I)V +HSPLandroid/os/StrictMode;->setBlockGuardPolicy(I)V+]Landroid/os/StrictMode$AndroidBlockGuardPolicy;Landroid/os/StrictMode$AndroidBlockGuardPolicy;]Ljava/lang/ThreadLocal;Landroid/os/StrictMode$4; HSPLandroid/os/StrictMode;->setBlockGuardVmPolicy(I)V HSPLandroid/os/StrictMode;->setCloseGuardEnabled(Z)V -HSPLandroid/os/StrictMode;->setThreadPolicy(Landroid/os/StrictMode$ThreadPolicy;)V +HSPLandroid/os/StrictMode;->setThreadPolicy(Landroid/os/StrictMode$ThreadPolicy;)V+]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal; HSPLandroid/os/StrictMode;->setThreadPolicyMask(I)V -HSPLandroid/os/StrictMode;->setVmPolicy(Landroid/os/StrictMode$VmPolicy;)V +HSPLandroid/os/StrictMode;->setVmPolicy(Landroid/os/StrictMode$VmPolicy;)V+]Ljava/util/HashMap;Ljava/util/HashMap;]Landroid/os/MessageQueue;Landroid/os/MessageQueue;]Landroid/os/INetworkManagementService;Landroid/os/INetworkManagementService$Stub$Proxy; HSPLandroid/os/StrictMode;->tooManyViolationsThisLoop()Z HSPLandroid/os/StrictMode;->trackActivity(Ljava/lang/Object;)Ljava/lang/Object; HSPLandroid/os/StrictMode;->vmClosableObjectLeaksEnabled()Z @@ -12921,7 +12940,7 @@ 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 +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 @@ -12933,7 +12952,7 @@ 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;)Landroid/os/UserHandle;+]Landroid/os/Parcel;Landroid/os/Parcel; 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 @@ -13099,7 +13118,7 @@ HSPLandroid/os/storage/IStorageManager$Stub$Proxy;-><init>(Landroid/os/IBinder;) 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;->getVolumeList(ILjava/lang/String;I)[Landroid/os/storage/StorageVolume;+]Landroid/os/storage/IStorageManager$Stub$Proxy;Landroid/os/storage/IStorageManager$Stub$Proxy;]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel; 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 @@ -13132,7 +13151,7 @@ HSPLandroid/os/storage/StorageVolume$1;->createFromParcel(Landroid/os/Parcel;)La 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;)V+]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -13154,9 +13173,9 @@ HSPLandroid/os/strictmode/CredentialProtectedWhileLockedViolation;-><init>(Ljava 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;->calcStackTraceHashCode([Ljava/lang/StackTraceElement;)I+]Ljava/lang/StackTraceElement;Ljava/lang/StackTraceElement; HSPLandroid/os/strictmode/Violation;->fillInStackTrace()Ljava/lang/Throwable; -HSPLandroid/os/strictmode/Violation;->hashCode()I +HSPLandroid/os/strictmode/Violation;->hashCode()I+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/Object;Landroid/os/strictmode/DiskReadViolation;,Ljava/lang/Class;]Ljava/lang/Throwable;Ljava/lang/Throwable;]Landroid/os/strictmode/Violation;Landroid/os/strictmode/DiskReadViolation;,Landroid/os/strictmode/LeakedClosableViolation; HSPLandroid/os/strictmode/Violation;->initCause(Ljava/lang/Throwable;)Ljava/lang/Throwable; HSPLandroid/os/vibrator/PrebakedSegment;->getDuration()J HSPLandroid/os/vibrator/PrebakedSegment;->isValidEffectStrength(I)Z @@ -13177,7 +13196,7 @@ HSPLandroid/permission/IPermissionManager$Stub$Proxy;-><init>(Landroid/os/IBinde 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;->getSplitPermissions()Ljava/util/List;+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/permission/IPermissionManager$Stub$Proxy;Landroid/permission/IPermissionManager$Stub$Proxy;]Landroid/os/Parcel;Landroid/os/Parcel; 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 @@ -13201,7 +13220,7 @@ 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$SplitPermissionInfo;->getTargetSdk()I+]Landroid/content/pm/permission/SplitPermissionInfoParcelable;Landroid/content/pm/permission/SplitPermissionInfoParcelable; HSPLandroid/permission/PermissionManager;-><init>(Landroid/content/Context;)V HSPLandroid/permission/PermissionManager;->addOnPermissionsChangeListener(Landroid/content/pm/PackageManager$OnPermissionsChangedListener;)V HSPLandroid/permission/PermissionManager;->getPermissionFlags(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)I @@ -13246,11 +13265,11 @@ HSPLandroid/provider/SearchIndexablesProvider;->queryDynamicRawData([Ljava/lang/ 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;->createCompositeName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; 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;->createPrefix(Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; 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(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/util/List;)Ljava/util/Map;+]Landroid/provider/Settings$NameValueCache;Landroid/provider/Settings$NameValueCache;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/String;Ljava/lang/String;]Ljava/util/List;Ljava/util/Arrays$ArrayList;,Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/Arrays$ArrayItr; 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; @@ -13259,7 +13278,7 @@ HSPLandroid/provider/Settings$GenerationTracker;-><init>(Ljava/lang/String;Landr 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$GenerationTracker;->readCurrentGeneration()I+]Landroid/util/MemoryIntArray;Landroid/util/MemoryIntArray; 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 @@ -13273,7 +13292,7 @@ HSPLandroid/provider/Settings$Global;->putString(Landroid/content/ContentResolve 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; -HSPLandroid/provider/Settings$NameValueCache;->getStringsForPrefix(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/util/List;)Landroid/util/ArrayMap; +HSPLandroid/provider/Settings$NameValueCache;->getStringsForPrefix(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/util/List;)Landroid/util/ArrayMap;+]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/Map;Ljava/util/HashMap;]Ljava/util/Set;Ljava/util/HashMap$EntrySet;]Ljava/lang/String;Ljava/lang/String;]Landroid/content/IContentProvider;Landroid/content/ContentProviderProxy;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/content/ContentResolver;Landroid/app/ContextImpl$ApplicationContentResolver;]Ljava/util/Iterator;Ljava/util/HashMap$EntryIterator;,Ljava/util/ArrayList$Itr;]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; @@ -13285,7 +13304,7 @@ HSPLandroid/provider/Settings$Secure;->getIntForUser(Landroid/content/ContentRes 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; -HSPLandroid/provider/Settings$Secure;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String; +HSPLandroid/provider/Settings$Secure;->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$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 @@ -13299,7 +13318,7 @@ HSPLandroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;L HSPLandroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I HSPLandroid/provider/Settings$System;->getIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)I HSPLandroid/provider/Settings$System;->getIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;II)I -HSPLandroid/provider/Settings$System;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String; +HSPLandroid/provider/Settings$System;->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$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 @@ -13678,14 +13697,14 @@ HSPLandroid/service/notification/NotificationListenerService$NotificationListene 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 +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 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 +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 @@ -13714,7 +13733,7 @@ HSPLandroid/service/notification/NotificationRankingUpdate;-><init>(Landroid/os/ HSPLandroid/service/notification/NotificationRankingUpdate;->getRankingMap()Landroid/service/notification/NotificationListenerService$RankingMap; HSPLandroid/service/notification/StatusBarNotification$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/notification/StatusBarNotification; HSPLandroid/service/notification/StatusBarNotification$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/service/notification/StatusBarNotification;-><init>(Landroid/os/Parcel;)V +HSPLandroid/service/notification/StatusBarNotification;-><init>(Landroid/os/Parcel;)V+]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; @@ -13729,11 +13748,11 @@ HSPLandroid/service/notification/StatusBarNotification;->getTag()Ljava/lang/Stri 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;->groupKey()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/os/UserHandle;Landroid/os/UserHandle; 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; +HSPLandroid/service/notification/StatusBarNotification;->key()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Landroid/app/Notification;Landroid/app/Notification;]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 @@ -13794,7 +13813,7 @@ HSPLandroid/speech/tts/TtsEngines;->isSystemEngine(Landroid/content/pm/ServiceIn 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;->tryParseBoolean(Ljava/lang/String;)Ljava/lang/Boolean;+]Ljava/lang/String;Ljava/lang/String; 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; @@ -13851,7 +13870,7 @@ HSPLandroid/system/Os;->getpeername(Ljava/io/FileDescriptor;)Ljava/net/SocketAdd HSPLandroid/system/Os;->getpgid(I)I HSPLandroid/system/Os;->getpid()I HSPLandroid/system/Os;->gettid()I -HSPLandroid/system/Os;->getuid()I +HSPLandroid/system/Os;->getuid()I+]Llibcore/io/Os;Landroid/app/ActivityThread$AndroidOs; 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 @@ -13860,7 +13879,7 @@ 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;->poll([Landroid/system/StructPollfd;I)I+]Llibcore/io/Os;Landroid/app/ActivityThread$AndroidOs; 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 @@ -13871,7 +13890,7 @@ 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;->stat(Ljava/lang/String;)Landroid/system/StructStat;+]Llibcore/io/Os;Landroid/app/ActivityThread$AndroidOs; 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 @@ -13899,7 +13918,7 @@ HSPLandroid/system/keystore2/Authorization$1;->newArray(I)[Landroid/system/keyst 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/Authorization;->readFromParcel(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -13941,7 +13960,7 @@ HSPLandroid/system/keystore2/KeyMetadata$1;->createFromParcel(Landroid/os/Parcel 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/KeyMetadata;->readFromParcel(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -14118,7 +14137,7 @@ 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;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/telephony/CellSignalStrengthLte;->equals(Ljava/lang/Object;)Z HSPLandroid/telephony/CellSignalStrengthLte;->getDbm()I HSPLandroid/telephony/CellSignalStrengthLte;->getLevel()I @@ -14127,7 +14146,7 @@ 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;-><init>(Landroid/os/Parcel;)V+]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -14144,7 +14163,7 @@ HSPLandroid/telephony/CellSignalStrengthWcdma;->writeToParcel(Landroid/os/Parcel 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/os/Parcel;)V+]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/telephony/DataSpecificRegistrationInfo;-><init>(Landroid/telephony/DataSpecificRegistrationInfo;)V HSPLandroid/telephony/DataSpecificRegistrationInfo;->toString()Ljava/lang/String; HSPLandroid/telephony/DataSpecificRegistrationInfo;->writeToParcel(Landroid/os/Parcel;I)V @@ -14182,7 +14201,7 @@ HSPLandroid/telephony/ModemActivityInfo;->toString()Ljava/lang/String; HSPLandroid/telephony/NetworkRegistrationInfo$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object; HSPLandroid/telephony/NetworkRegistrationInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/NetworkRegistrationInfo; HSPLandroid/telephony/NetworkRegistrationInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telephony/NetworkRegistrationInfo;-><init>(Landroid/os/Parcel;)V +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 @@ -14238,7 +14257,7 @@ HSPLandroid/telephony/Rlog;->d(Ljava/lang/String;Ljava/lang/String;)I HSPLandroid/telephony/ServiceState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/ServiceState; HSPLandroid/telephony/ServiceState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/telephony/ServiceState;-><init>()V -HSPLandroid/telephony/ServiceState;-><init>(Landroid/os/Parcel;)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; @@ -14272,13 +14291,13 @@ 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;-><init>(Landroid/os/Parcel;)V+]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel; 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; +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 @@ -14539,7 +14558,7 @@ HSPLandroid/telephony/UiccAccessRule$1;->newArray(I)[Landroid/telephony/UiccAcce 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/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/telephony/VoiceSpecificRegistrationInfo;-><init>(Landroid/telephony/VoiceSpecificRegistrationInfo;)V HSPLandroid/telephony/VoiceSpecificRegistrationInfo;->toString()Ljava/lang/String; HSPLandroid/telephony/VoiceSpecificRegistrationInfo;->writeToParcel(Landroid/os/Parcel;I)V @@ -14599,26 +14618,26 @@ HSPLandroid/telephony/ims/RegistrationManager$RegistrationCallback;->getBinder() 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;->bidi(I[C[B)I+]Landroid/icu/text/Bidi;Landroid/icu/text/Bidi; 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;->clearWithReleasingLargeArray()V+]Landroid/text/AutoGrowArray$ByteArray;Landroid/text/AutoGrowArray$ByteArray; 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;->clearWithReleasingLargeArray()V+]Landroid/text/AutoGrowArray$FloatArray;Landroid/text/AutoGrowArray$FloatArray; 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;->clearWithReleasingLargeArray()V+]Landroid/text/AutoGrowArray$IntArray;Landroid/text/AutoGrowArray$IntArray; HSPLandroid/text/AutoGrowArray$IntArray;->ensureCapacity(I)V HSPLandroid/text/AutoGrowArray$IntArray;->getRawArray()[I HSPLandroid/text/AutoGrowArray;->computeNewCapacity(II)I @@ -14635,7 +14654,7 @@ 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;-><init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFLandroid/text/BoringLayout$Metrics;ZLandroid/text/TextUtils$TruncateAt;IZ)V+]Landroid/text/BoringLayout;Landroid/text/BoringLayout; 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 @@ -14647,18 +14666,18 @@ 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;->getLineStart(I)I+]Landroid/text/BoringLayout;Landroid/text/BoringLayout;]Ljava/lang/CharSequence;Ljava/lang/String;,Landroid/text/SpannableString; 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 +HSPLandroid/text/BoringLayout;->init(Ljava/lang/CharSequence;Landroid/text/TextPaint;Landroid/text/Layout$Alignment;Landroid/text/BoringLayout$Metrics;ZZZ)V+]Landroid/text/TextLine;Landroid/text/TextLine;]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/text/BoringLayout$Metrics;)Landroid/text/BoringLayout$Metrics; +HSPLandroid/text/BoringLayout;->isBoring(Ljava/lang/CharSequence;Landroid/text/TextPaint;Landroid/text/TextDirectionHeuristic;ZLandroid/text/BoringLayout$Metrics;)Landroid/text/BoringLayout$Metrics;+]Landroid/text/TextLine;Landroid/text/TextLine;]Landroid/text/Spanned;missing_types]Ljava/lang/CharSequence;missing_types]Landroid/text/TextDirectionHeuristic;Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicLocale;,Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicInternal; 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;Z)Landroid/text/BoringLayout;+]Landroid/text/BoringLayout;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 @@ -14668,7 +14687,7 @@ HSPLandroid/text/CharSequenceCharacterIterator;->getEndIndex()I HSPLandroid/text/CharSequenceCharacterIterator;->getIndex()I HSPLandroid/text/CharSequenceCharacterIterator;->next()C HSPLandroid/text/CharSequenceCharacterIterator;->setIndex(I)C -HSPLandroid/text/DynamicLayout$Builder;->obtain(Ljava/lang/CharSequence;Landroid/text/TextPaint;I)Landroid/text/DynamicLayout$Builder; +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 @@ -14676,29 +14695,29 @@ HSPLandroid/text/DynamicLayout$ChangeWatcher;->onSpanChanged(Landroid/text/Spann HSPLandroid/text/DynamicLayout$ChangeWatcher;->onSpanRemoved(Landroid/text/Spannable;Ljava/lang/Object;II)V HSPLandroid/text/DynamicLayout$ChangeWatcher;->onTextChanged(Ljava/lang/CharSequence;III)V HSPLandroid/text/DynamicLayout;-><init>(Landroid/text/DynamicLayout$Builder;)V -HSPLandroid/text/DynamicLayout;->addBlockAtOffset(I)V -HSPLandroid/text/DynamicLayout;->contentMayProtrudeFromLineTopOrBottom(Ljava/lang/CharSequence;II)Z -HSPLandroid/text/DynamicLayout;->createBlocks()V -HSPLandroid/text/DynamicLayout;->generate(Landroid/text/DynamicLayout$Builder;)V +HSPLandroid/text/DynamicLayout;->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+]Ljava/lang/CharSequence;Landroid/text/SpannableString; +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;missing_types]Landroid/text/Spannable;missing_types HSPLandroid/text/DynamicLayout;->getBlockEndLines()[I HSPLandroid/text/DynamicLayout;->getBlockIndices()[I HSPLandroid/text/DynamicLayout;->getBlocksAlwaysNeedToBeRedrawn()Landroid/util/ArraySet; HSPLandroid/text/DynamicLayout;->getEllipsisCount(I)I HSPLandroid/text/DynamicLayout;->getEllipsisStart(I)I HSPLandroid/text/DynamicLayout;->getEllipsizedWidth()I -HSPLandroid/text/DynamicLayout;->getEndHyphenEdit(I)I +HSPLandroid/text/DynamicLayout;->getEndHyphenEdit(I)I+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector; HSPLandroid/text/DynamicLayout;->getIndexFirstChangedBlock()I -HSPLandroid/text/DynamicLayout;->getLineContainsTab(I)Z -HSPLandroid/text/DynamicLayout;->getLineCount()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 -HSPLandroid/text/DynamicLayout;->getLineDirections(I)Landroid/text/Layout$Directions; +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 -HSPLandroid/text/DynamicLayout;->getLineTop(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 -HSPLandroid/text/DynamicLayout;->getStartHyphenEdit(I)I -HSPLandroid/text/DynamicLayout;->reflow(Ljava/lang/CharSequence;III)V +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;missing_types]Ljava/lang/CharSequence;missing_types]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 @@ -14753,47 +14772,47 @@ HSPLandroid/text/Layout;-><init>(Ljava/lang/CharSequence;Landroid/text/TextPaint HSPLandroid/text/Layout;->addSelection(IIIIILandroid/text/Layout$SelectionRectangleConsumer;)V HSPLandroid/text/Layout;->draw(Landroid/graphics/Canvas;)V HSPLandroid/text/Layout;->draw(Landroid/graphics/Canvas;Landroid/graphics/Path;Landroid/graphics/Paint;I)V -HSPLandroid/text/Layout;->draw(Landroid/graphics/Canvas;Ljava/util/List;Ljava/util/List;Landroid/graphics/Path;Landroid/graphics/Paint;I)V +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/StaticLayout; HSPLandroid/text/Layout;->drawBackground(Landroid/graphics/Canvas;II)V -HSPLandroid/text/Layout;->drawText(Landroid/graphics/Canvas;II)V -HSPLandroid/text/Layout;->drawWithoutText(Landroid/graphics/Canvas;Ljava/util/List;Ljava/util/List;Landroid/graphics/Path;Landroid/graphics/Paint;III)V -HSPLandroid/text/Layout;->ellipsize(III[CILandroid/text/TextUtils$TruncateAt;)V +HSPLandroid/text/Layout;->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;missing_types]Ljava/lang/CharSequence;missing_types +HSPLandroid/text/Layout;->drawWithoutText(Landroid/graphics/Canvas;Ljava/util/List;Ljava/util/List;Landroid/graphics/Path;Landroid/graphics/Paint;III)V+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;,Landroid/text/StaticLayout;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas; +HSPLandroid/text/Layout;->ellipsize(III[CILandroid/text/TextUtils$TruncateAt;)V+]Ljava/lang/String;Ljava/lang/String;]Landroid/text/Layout;Landroid/text/StaticLayout; 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;->getHeight()I+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/StaticLayout; +HSPLandroid/text/Layout;->getHeight(Z)I+]Landroid/text/Layout;Landroid/text/DynamicLayout; HSPLandroid/text/Layout;->getHorizontal(IZ)F -HSPLandroid/text/Layout;->getHorizontal(IZIZ)F +HSPLandroid/text/Layout;->getHorizontal(IZIZ)F+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;]Landroid/text/TextLine;Landroid/text/TextLine; HSPLandroid/text/Layout;->getIndentAdjust(ILandroid/text/Layout$Alignment;)I -HSPLandroid/text/Layout;->getLineBaseline(I)I +HSPLandroid/text/Layout;->getLineBaseline(I)I+]Landroid/text/Layout;Landroid/text/BoringLayout;,Landroid/text/StaticLayout; HSPLandroid/text/Layout;->getLineBottom(I)I HSPLandroid/text/Layout;->getLineBottom(IZ)I -HSPLandroid/text/Layout;->getLineEnd(I)I -HSPLandroid/text/Layout;->getLineExtent(ILandroid/text/Layout$TabStops;Z)F -HSPLandroid/text/Layout;->getLineExtent(IZ)F -HSPLandroid/text/Layout;->getLineForOffset(I)I +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+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;]Landroid/text/TextLine;Landroid/text/TextLine;]Landroid/text/TextPaint;Landroid/text/TextPaint; +HSPLandroid/text/Layout;->getLineExtent(IZ)F+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/StaticLayout;]Landroid/text/TextLine;Landroid/text/TextLine;]Landroid/text/TextPaint;Landroid/text/TextPaint; +HSPLandroid/text/Layout;->getLineForOffset(I)I+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;,Landroid/text/StaticLayout; HSPLandroid/text/Layout;->getLineForVertical(I)I -HSPLandroid/text/Layout;->getLineLeft(I)F +HSPLandroid/text/Layout;->getLineLeft(I)F+]Landroid/text/Layout$Alignment;Landroid/text/Layout$Alignment;]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/StaticLayout;,Landroid/text/BoringLayout; HSPLandroid/text/Layout;->getLineMax(I)F -HSPLandroid/text/Layout;->getLineRangeForDraw(Landroid/graphics/Canvas;)J -HSPLandroid/text/Layout;->getLineRight(I)F -HSPLandroid/text/Layout;->getLineStartPos(III)I -HSPLandroid/text/Layout;->getLineVisibleEnd(I)I -HSPLandroid/text/Layout;->getLineVisibleEnd(III)I +HSPLandroid/text/Layout;->getLineRangeForDraw(Landroid/graphics/Canvas;)J+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;,Landroid/text/StaticLayout;]Landroid/graphics/Canvas;missing_types +HSPLandroid/text/Layout;->getLineRight(I)F+]Landroid/text/Layout$Alignment;Landroid/text/Layout$Alignment;]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout; +HSPLandroid/text/Layout;->getLineStartPos(III)I+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout; +HSPLandroid/text/Layout;->getLineVisibleEnd(I)I+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;,Landroid/text/StaticLayout; +HSPLandroid/text/Layout;->getLineVisibleEnd(III)I+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;,Landroid/text/StaticLayout; HSPLandroid/text/Layout;->getLineWidth(I)F HSPLandroid/text/Layout;->getOffsetAtStartOf(I)I HSPLandroid/text/Layout;->getOffsetForHorizontal(IF)I HSPLandroid/text/Layout;->getOffsetForHorizontal(IFZ)I HSPLandroid/text/Layout;->getPaint()Landroid/text/TextPaint; -HSPLandroid/text/Layout;->getParagraphAlignment(I)Landroid/text/Layout$Alignment; -HSPLandroid/text/Layout;->getParagraphLeadingMargin(I)I -HSPLandroid/text/Layout;->getParagraphLeft(I)I -HSPLandroid/text/Layout;->getParagraphRight(I)I -HSPLandroid/text/Layout;->getParagraphSpans(Landroid/text/Spanned;IILjava/lang/Class;)[Ljava/lang/Object; +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;Landroid/text/SpannableString; +HSPLandroid/text/Layout;->getParagraphLeft(I)I+]Landroid/text/Layout;Landroid/text/DynamicLayout; +HSPLandroid/text/Layout;->getParagraphRight(I)I+]Landroid/text/Layout;Landroid/text/DynamicLayout; +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;->getPrimaryHorizontal(IZ)F+]Landroid/text/Layout;Landroid/text/DynamicLayout; HSPLandroid/text/Layout;->getSelection(IILandroid/text/Layout$SelectionRectangleConsumer;)V HSPLandroid/text/Layout;->getSelectionPath(IILandroid/graphics/Path;)V HSPLandroid/text/Layout;->getSpacingAdd()F @@ -14806,7 +14825,7 @@ 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;->primaryIsTrailingPrevious(I)Z+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout; 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 @@ -14815,30 +14834,30 @@ HSPLandroid/text/MeasuredParagraph;->buildForBidi(Ljava/lang/CharSequence;IILand 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;->getDirections(II)Landroid/text/Layout$Directions;+]Landroid/text/AutoGrowArray$ByteArray;Landroid/text/AutoGrowArray$ByteArray; 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/MeasuredParagraph;->obtain()Landroid/text/MeasuredParagraph;+]Landroid/util/Pools$SynchronizedPool;Landroid/util/Pools$SynchronizedPool; +HSPLandroid/text/MeasuredParagraph;->recycle()V+]Landroid/text/MeasuredParagraph;Landroid/text/MeasuredParagraph;]Landroid/util/Pools$SynchronizedPool;Landroid/util/Pools$SynchronizedPool; +HSPLandroid/text/MeasuredParagraph;->release()V+]Landroid/text/AutoGrowArray$FloatArray;Landroid/text/AutoGrowArray$FloatArray;]Landroid/text/AutoGrowArray$ByteArray;Landroid/text/AutoGrowArray$ByteArray;]Landroid/text/AutoGrowArray$IntArray;Landroid/text/AutoGrowArray$IntArray; +HSPLandroid/text/MeasuredParagraph;->reset()V+]Landroid/text/AutoGrowArray$FloatArray;Landroid/text/AutoGrowArray$FloatArray;]Landroid/text/AutoGrowArray$ByteArray;Landroid/text/AutoGrowArray$ByteArray;]Landroid/text/AutoGrowArray$IntArray;Landroid/text/AutoGrowArray$IntArray; +HSPLandroid/text/MeasuredParagraph;->resetAndAnalyzeBidi(Ljava/lang/CharSequence;IILandroid/text/TextDirectionHeuristic;)V+]Landroid/text/AutoGrowArray$ByteArray;Landroid/text/AutoGrowArray$ByteArray;]Landroid/text/Spanned;missing_types +HSPLandroid/text/PackedIntVector;->adjustValuesBelow(III)V+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector; +HSPLandroid/text/PackedIntVector;->deleteAt(II)V+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector; HSPLandroid/text/PackedIntVector;->getValue(II)I+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector; -HSPLandroid/text/PackedIntVector;->growBuffer()V -HSPLandroid/text/PackedIntVector;->insertAt(I[I)V +HSPLandroid/text/PackedIntVector;->growBuffer()V+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector; +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;->deleteAt(II)V+]Landroid/text/PackedObjectVector;Landroid/text/PackedObjectVector; HSPLandroid/text/PackedObjectVector;->getValue(II)Ljava/lang/Object; -HSPLandroid/text/PackedObjectVector;->growBuffer()V -HSPLandroid/text/PackedObjectVector;->insertAt(I[Ljava/lang/Object;)V +HSPLandroid/text/PackedObjectVector;->growBuffer()V+]Landroid/text/PackedObjectVector;Landroid/text/PackedObjectVector; +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 @@ -14848,23 +14867,23 @@ 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 -HSPLandroid/text/Selection;->removeMemory(Landroid/text/Spannable;)V +HSPLandroid/text/Selection;->getSelectionEnd(Ljava/lang/CharSequence;)I+]Landroid/text/Spanned;Landroid/text/SpannableString;,Landroid/text/SpannableStringBuilder; +HSPLandroid/text/Selection;->getSelectionStart(Ljava/lang/CharSequence;)I+]Landroid/text/Spanned;Landroid/text/SpannableString;,Landroid/text/SpannableStringBuilder; +HSPLandroid/text/Selection;->removeMemory(Landroid/text/Spannable;)V+]Landroid/text/Spannable;Landroid/text/SpannableStringBuilder;,Landroid/text/SpannableString; 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;->setSelection(Landroid/text/Spannable;III)V+]Landroid/text/Spannable;Landroid/text/SpannableStringBuilder;,Landroid/text/SpannableString; 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 +HSPLandroid/text/SpanSet;->init(Landroid/text/Spanned;II)V+]Landroid/text/Spanned;missing_types 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;-><init>(Ljava/lang/CharSequence;Z)V+]Ljava/lang/CharSequence;Ljava/lang/String;,Landroid/text/SpannableString; HSPLandroid/text/SpannableString;->equals(Ljava/lang/Object;)Z HSPLandroid/text/SpannableString;->getSpanEnd(Ljava/lang/Object;)I HSPLandroid/text/SpannableString;->getSpanFlags(Ljava/lang/Object;)I @@ -14882,12 +14901,12 @@ 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; +HSPLandroid/text/SpannableStringBuilder;->append(Ljava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;+]Ljava/lang/CharSequence;Ljava/lang/String;]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 -HSPLandroid/text/SpannableStringBuilder;->charAt(I)C -HSPLandroid/text/SpannableStringBuilder;->checkRange(Ljava/lang/String;II)V +HSPLandroid/text/SpannableStringBuilder;->change(IILjava/lang/CharSequence;II)V+]Landroid/text/Spanned;Landroid/text/SpannableStringBuilder; +HSPLandroid/text/SpannableStringBuilder;->charAt(I)C+]Landroid/text/SpannableStringBuilder;Landroid/text/SpannableStringBuilder; +HSPLandroid/text/SpannableStringBuilder;->checkRange(Ljava/lang/String;II)V+]Landroid/text/SpannableStringBuilder;Landroid/text/SpannableStringBuilder; HSPLandroid/text/SpannableStringBuilder;->checkSortBuffer([II)[I HSPLandroid/text/SpannableStringBuilder;->clear()V HSPLandroid/text/SpannableStringBuilder;->compareSpans(II[I[I)I @@ -14899,8 +14918,8 @@ HSPLandroid/text/SpannableStringBuilder;->equals(Ljava/lang/Object;)Z HSPLandroid/text/SpannableStringBuilder;->getChars(II[CI)V HSPLandroid/text/SpannableStringBuilder;->getSpanEnd(Ljava/lang/Object;)I HSPLandroid/text/SpannableStringBuilder;->getSpanFlags(Ljava/lang/Object;)I -HSPLandroid/text/SpannableStringBuilder;->getSpanStart(Ljava/lang/Object;)I -HSPLandroid/text/SpannableStringBuilder;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object; +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;Landroid/text/SpannableStringBuilder; 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 HSPLandroid/text/SpannableStringBuilder;->getTextWatcherDepth()I @@ -14910,7 +14929,7 @@ 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;->moveGapTo(I)V+]Landroid/text/SpannableStringBuilder;Landroid/text/SpannableStringBuilder; HSPLandroid/text/SpannableStringBuilder;->nextSpanTransition(IILjava/lang/Class;)I HSPLandroid/text/SpannableStringBuilder;->nextSpanTransitionRec(IILjava/lang/Class;I)I HSPLandroid/text/SpannableStringBuilder;->obtain(I)[I @@ -14920,8 +14939,8 @@ 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; +HSPLandroid/text/SpannableStringBuilder;->replace(IILjava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;+]Ljava/lang/CharSequence;Ljava/lang/String;]Landroid/text/SpannableStringBuilder;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 @@ -14942,13 +14961,13 @@ HSPLandroid/text/SpannableStringBuilder;->subSequence(II)Ljava/lang/CharSequence HSPLandroid/text/SpannableStringBuilder;->toString()Ljava/lang/String; HSPLandroid/text/SpannableStringBuilder;->treeRoot()I HSPLandroid/text/SpannableStringBuilder;->updatedIntervalBound(IIIIZZ)I -HSPLandroid/text/SpannableStringInternal;-><init>(Ljava/lang/CharSequence;IIZ)V -HSPLandroid/text/SpannableStringInternal;->charAt(I)C -HSPLandroid/text/SpannableStringInternal;->checkRange(Ljava/lang/String;II)V -HSPLandroid/text/SpannableStringInternal;->copySpansFromInternal(Landroid/text/SpannableStringInternal;IIZ)V +HSPLandroid/text/SpannableStringInternal;-><init>(Ljava/lang/CharSequence;IIZ)V+]Ljava/lang/CharSequence;Ljava/lang/String;,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/SpannableString; +HSPLandroid/text/SpannableStringInternal;->copySpansFromInternal(Landroid/text/SpannableStringInternal;IIZ)V+]Landroid/text/SpannableStringInternal;Landroid/text/SpannableString; HSPLandroid/text/SpannableStringInternal;->copySpansFromSpanned(Landroid/text/Spanned;IIZ)V HSPLandroid/text/SpannableStringInternal;->equals(Ljava/lang/Object;)Z -HSPLandroid/text/SpannableStringInternal;->getChars(II[CI)V +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 @@ -14956,8 +14975,8 @@ HSPLandroid/text/SpannableStringInternal;->getSpans(IILjava/lang/Class;)[Ljava/l HSPLandroid/text/SpannableStringInternal;->length()I+]Ljava/lang/String;Ljava/lang/String; HSPLandroid/text/SpannableStringInternal;->nextSpanTransition(IILjava/lang/Class;)I+]Ljava/lang/Class;Ljava/lang/Class; HSPLandroid/text/SpannableStringInternal;->removeSpan(Ljava/lang/Object;I)V -HSPLandroid/text/SpannableStringInternal;->sendSpanAdded(Ljava/lang/Object;II)V -HSPLandroid/text/SpannableStringInternal;->sendSpanChanged(Ljava/lang/Object;IIII)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+]Landroid/text/SpanWatcher;Landroid/widget/Editor$SpanController;,Landroid/widget/TextView$ChangeWatcher;]Landroid/text/SpannableStringInternal;Landroid/text/SpannableString; 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; @@ -14991,8 +15010,8 @@ HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmTextDir(Landroid/text/Stati 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;->obtain(Ljava/lang/CharSequence;IILandroid/text/TextPaint;I)Landroid/text/StaticLayout$Builder;+]Landroid/util/Pools$SynchronizedPool;Landroid/util/Pools$SynchronizedPool; +HSPLandroid/text/StaticLayout$Builder;->recycle(Landroid/text/StaticLayout$Builder;)V+]Landroid/util/Pools$SynchronizedPool;Landroid/util/Pools$SynchronizedPool; 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; @@ -15006,7 +15025,7 @@ HSPLandroid/text/StaticLayout$Builder;->setMaxLines(I)Landroid/text/StaticLayout 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;->calculateEllipsis(IILandroid/text/MeasuredParagraph;IFLandroid/text/TextUtils$TruncateAt;IFLandroid/text/TextPaint;Z)V -HSPLandroid/text/StaticLayout;->generate(Landroid/text/StaticLayout$Builder;ZZ)V +HSPLandroid/text/StaticLayout;->generate(Landroid/text/StaticLayout$Builder;ZZ)V+]Landroid/text/MeasuredParagraph;Landroid/text/MeasuredParagraph;]Landroid/graphics/text/LineBreaker$Builder;Landroid/graphics/text/LineBreaker$Builder;]Landroid/graphics/text/LineBreaker;Landroid/graphics/text/LineBreaker;]Landroid/text/Spanned;Landroid/text/SpannableString;]Ljava/lang/CharSequence;missing_types]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;]Landroid/text/StaticLayout;Landroid/text/StaticLayout;]Landroid/text/TextPaint;Landroid/text/TextPaint; HSPLandroid/text/StaticLayout;->getBottomPadding()I HSPLandroid/text/StaticLayout;->getEllipsisCount(I)I HSPLandroid/text/StaticLayout;->getEllipsisStart(I)I @@ -15016,7 +15035,7 @@ HSPLandroid/text/StaticLayout;->getIndentAdjust(ILandroid/text/Layout$Alignment; HSPLandroid/text/StaticLayout;->getLineContainsTab(I)Z HSPLandroid/text/StaticLayout;->getLineCount()I HSPLandroid/text/StaticLayout;->getLineDescent(I)I -HSPLandroid/text/StaticLayout;->getLineDirections(I)Landroid/text/Layout$Directions; +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 @@ -15025,13 +15044,13 @@ 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 +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;Ljava/lang/String;,Landroid/text/SpannableString;,Landroid/text/SpannedString; 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(Ljava/lang/CharSequence;II)Z+]Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicImpl;Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicInternal;]Ljava/lang/CharSequence;missing_types HSPLandroid/text/TextDirectionHeuristics$TextDirectionHeuristicImpl;->isRtl([CII)Z HSPLandroid/text/TextDirectionHeuristics$TextDirectionHeuristicInternal;->defaultIsRtl()Z HSPLandroid/text/TextDirectionHeuristics$TextDirectionHeuristicLocale;->defaultIsRtl()Z @@ -15042,21 +15061,21 @@ 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 +HSPLandroid/text/TextLine;->draw(Landroid/graphics/Canvas;FIII)V+]Landroid/text/Layout$Directions;Landroid/text/Layout$Directions; HSPLandroid/text/TextLine;->drawRun(Landroid/graphics/Canvas;IIZFIIIZ)F HSPLandroid/text/TextLine;->drawStroke(Landroid/text/TextPaint;Landroid/graphics/Canvas;IFFFFF)V HSPLandroid/text/TextLine;->drawTextRun(Landroid/graphics/Canvas;Landroid/text/TextPaint;IIIIZFI)V HSPLandroid/text/TextLine;->equalAttributes(Landroid/text/TextPaint;Landroid/text/TextPaint;)Z -HSPLandroid/text/TextLine;->expandMetricsFromPaint(Landroid/graphics/Paint$FontMetricsInt;Landroid/text/TextPaint;)V -HSPLandroid/text/TextLine;->expandMetricsFromPaint(Landroid/text/TextPaint;IIIIZLandroid/graphics/Paint$FontMetricsInt;)V -HSPLandroid/text/TextLine;->extractDecorationInfo(Landroid/text/TextPaint;Landroid/text/TextLine$DecorationInfo;)V +HSPLandroid/text/TextLine;->expandMetricsFromPaint(Landroid/graphics/Paint$FontMetricsInt;Landroid/text/TextPaint;)V+]Landroid/text/TextPaint;Landroid/text/TextPaint; +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 HSPLandroid/text/TextLine;->getOffsetToLeftRightOf(IZ)I HSPLandroid/text/TextLine;->handleReplacement(Landroid/text/style/ReplacementSpan;Landroid/text/TextPaint;IIZLandroid/graphics/Canvas;FIIILandroid/graphics/Paint$FontMetricsInt;Z)F HSPLandroid/text/TextLine;->isLineEndSpace(C)Z HSPLandroid/text/TextLine;->obtain()Landroid/text/TextLine; -HSPLandroid/text/TextLine;->recycle(Landroid/text/TextLine;)Landroid/text/TextLine; -HSPLandroid/text/TextLine;->set(Landroid/text/TextPaint;Ljava/lang/CharSequence;IIILandroid/text/Layout$Directions;ZLandroid/text/Layout$TabStops;IIZ)V +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 @@ -15064,8 +15083,8 @@ HSPLandroid/text/TextPaint;-><init>(Landroid/graphics/Paint;)V HSPLandroid/text/TextPaint;->getUnderlineThickness()F HSPLandroid/text/TextPaint;->set(Landroid/text/TextPaint;)V HSPLandroid/text/TextPaint;->setUnderlineText(IF)V -HSPLandroid/text/TextUtils$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/CharSequence; -HSPLandroid/text/TextUtils$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; +HSPLandroid/text/TextUtils$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; @@ -15081,25 +15100,25 @@ HSPLandroid/text/TextUtils;->ellipsize(Ljava/lang/CharSequence;Landroid/text/Tex HSPLandroid/text/TextUtils;->ellipsize(Ljava/lang/CharSequence;Landroid/text/TextPaint;FLandroid/text/TextUtils$TruncateAt;ZLandroid/text/TextUtils$EllipsizeCallback;)Ljava/lang/CharSequence; HSPLandroid/text/TextUtils;->ellipsize(Ljava/lang/CharSequence;Landroid/text/TextPaint;FLandroid/text/TextUtils$TruncateAt;ZLandroid/text/TextUtils$EllipsizeCallback;Landroid/text/TextDirectionHeuristic;Ljava/lang/String;)Ljava/lang/CharSequence; HSPLandroid/text/TextUtils;->emptyIfNull(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z +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; +HSPLandroid/text/TextUtils;->formatSimple(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/Long;Ljava/lang/Long;]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 +HSPLandroid/text/TextUtils;->getChars(Ljava/lang/CharSequence;II[CI)V+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/Object;Ljava/lang/String;,Landroid/text/SpannableString;,Landroid/text/Layout$Ellipsizer;]Landroid/text/GetChars;Landroid/text/SpannableString;,Landroid/text/Layout$Ellipsizer; HSPLandroid/text/TextUtils;->getEllipsisString(Landroid/text/TextUtils$TruncateAt;)Ljava/lang/String; -HSPLandroid/text/TextUtils;->getLayoutDirectionFromLocale(Ljava/util/Locale;)I +HSPLandroid/text/TextUtils;->getLayoutDirectionFromLocale(Ljava/util/Locale;)I+]Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;]Ljava/util/Optional;Ljava/util/Optional;]Ljava/util/Locale;Ljava/util/Locale;]Ljava/lang/Boolean;Ljava/lang/Boolean; 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;CI)I+]Ljava/lang/Object;Landroid/text/SpannableString;]Ljava/lang/CharSequence;Landroid/text/SpannableString; +HSPLandroid/text/TextUtils;->indexOf(Ljava/lang/CharSequence;CII)I+]Ljava/lang/Object;Landroid/text/SpannedString;,Landroid/text/SpannableString;,Ljava/lang/String; 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 +HSPLandroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z+]Ljava/lang/CharSequence;missing_types HSPLandroid/text/TextUtils;->isGraphic(Ljava/lang/CharSequence;)Z -HSPLandroid/text/TextUtils;->join(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String; +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;CI)I+]Ljava/lang/Object;Landroid/text/SpannableString; 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; @@ -15110,8 +15129,8 @@ HSPLandroid/text/TextUtils;->removeEmptySpans([Ljava/lang/Object;Landroid/text/S HSPLandroid/text/TextUtils;->safeIntern(Ljava/lang/String;)Ljava/lang/String; HSPLandroid/text/TextUtils;->split(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String; HSPLandroid/text/TextUtils;->stringOrSpannedString(Ljava/lang/CharSequence;)Ljava/lang/CharSequence; -HSPLandroid/text/TextUtils;->substring(Ljava/lang/CharSequence;II)Ljava/lang/String; -HSPLandroid/text/TextUtils;->toUpperCase(Ljava/util/Locale;Ljava/lang/CharSequence;Z)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;+]Landroid/icu/text/CaseMap$Upper;Landroid/icu/text/CaseMap$Upper;]Landroid/icu/text/Edits;Landroid/icu/text/Edits; 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; @@ -15119,7 +15138,7 @@ HSPLandroid/text/TextUtils;->unpackRangeEndFromLong(J)I HSPLandroid/text/TextUtils;->unpackRangeStartFromLong(J)I HSPLandroid/text/TextUtils;->writeToParcel(Ljava/lang/CharSequence;Landroid/os/Parcel;I)V HSPLandroid/text/format/DateFormat;->format(Ljava/lang/CharSequence;J)Ljava/lang/CharSequence; -HSPLandroid/text/format/DateFormat;->format(Ljava/lang/CharSequence;Ljava/util/Calendar;)Ljava/lang/CharSequence; +HSPLandroid/text/format/DateFormat;->format(Ljava/lang/CharSequence;Ljava/util/Calendar;)Ljava/lang/CharSequence;+]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/text/DateFormatSymbols;Landroid/icu/text/DateFormatSymbols;]Ljava/util/Calendar;Ljava/util/GregorianCalendar;]Ljava/lang/CharSequence;Ljava/lang/String;]Landroid/text/SpannableStringBuilder;Landroid/text/SpannableStringBuilder; 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; @@ -15129,16 +15148,16 @@ HSPLandroid/text/format/DateFormat;->getTimeFormatString(Landroid/content/Contex 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/DateFormat;->is24HourFormat(Landroid/content/Context;I)Z+]Landroid/content/res/Resources;Landroid/content/res/Resources; +HSPLandroid/text/format/DateFormat;->is24HourLocale(Ljava/util/Locale;)Z+]Ljava/util/Locale;Ljava/util/Locale; +HSPLandroid/text/format/DateFormat;->zeroPad(II)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; 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/DateIntervalFormat;->formatDateRange(Landroid/icu/util/ULocale;Landroid/icu/util/TimeZone;JJI)Ljava/lang/String;+]Ljava/lang/StringBuffer;Ljava/lang/StringBuffer;]Landroid/icu/text/DateIntervalFormat;Landroid/icu/text/DateIntervalFormat; +HSPLandroid/text/format/DateIntervalFormat;->getFormatter(Ljava/lang/String;Landroid/icu/util/ULocale;Landroid/icu/util/TimeZone;)Landroid/icu/text/DateIntervalFormat;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/util/LruCache;Landroid/util/LruCache; +HSPLandroid/text/format/DateIntervalFormat;->isExactlyMidnight(Landroid/icu/util/Calendar;)Z+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar; +HSPLandroid/text/format/DateUtils;->formatDateRange(Landroid/content/Context;JJI)Ljava/lang/String;+]Ljava/util/Formatter;Ljava/util/Formatter; +HSPLandroid/text/format/DateUtils;->formatDateRange(Landroid/content/Context;Ljava/util/Formatter;JJILjava/lang/String;)Ljava/util/Formatter;+]Ljava/util/Formatter;Ljava/util/Formatter;]Ljava/lang/Appendable;Ljava/lang/StringBuilder; 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; @@ -15147,20 +15166,20 @@ 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;->createIcuCalendar(Landroid/icu/util/TimeZone;Landroid/icu/util/ULocale;J)Landroid/icu/util/Calendar;+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar; +HSPLandroid/text/format/DateUtilsBridge;->fallInSameMonth(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;)Z+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar; 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;->fallOnDifferentDates(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;)Z+]Landroid/icu/util/Calendar;Landroid/icu/util/GregorianCalendar; +HSPLandroid/text/format/DateUtilsBridge;->icuTimeZone(Ljava/util/TimeZone;)Landroid/icu/util/TimeZone;+]Landroid/icu/util/TimeZone;Landroid/icu/impl/OlsonTimeZone;]Ljava/util/TimeZone;Llibcore/util/ZoneInfo; 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/DateUtilsBridge;->toSkeleton(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;I)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; 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;->copyFieldsFromTime(Landroid/text/format/Time;)V+]Lcom/android/i18n/timezone/WallTime;Lcom/android/i18n/timezone/WallTime; 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 @@ -15243,7 +15262,7 @@ HSPLandroid/text/style/ClickableSpan;->updateDrawState(Landroid/text/TextPaint;) 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 +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; @@ -15264,7 +15283,7 @@ 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/content/Context;II)V+]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; 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; @@ -15309,7 +15328,7 @@ HSPLandroid/transition/Transition$2;->onAnimationEnd(Landroid/animation/Animator HSPLandroid/transition/Transition$2;->onAnimationStart(Landroid/animation/Animator;)V HSPLandroid/transition/Transition$3;->onAnimationEnd(Landroid/animation/Animator;)V HSPLandroid/transition/Transition;-><init>()V -HSPLandroid/transition/Transition;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V +HSPLandroid/transition/Transition;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V+]Landroid/transition/Transition;Landroid/transition/TransitionSet;,Landroid/transition/ChangeTransform;,Landroid/transition/ChangeBounds;]Ljava/lang/Object;megamorphic_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 @@ -15340,7 +15359,7 @@ HSPLandroid/transition/Transition;->setEpicenterCallback(Landroid/transition/Tra 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;->createTransitionFromXml(Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/transition/Transition;)Landroid/transition/Transition;+]Ljava/lang/String;Ljava/lang/String;]Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/XmlBlock$Parser;]Landroid/transition/TransitionSet;Landroid/transition/TransitionSet; HSPLandroid/transition/TransitionInflater;->from(Landroid/content/Context;)Landroid/transition/TransitionInflater; HSPLandroid/transition/TransitionInflater;->inflateTransition(I)Landroid/transition/Transition; HSPLandroid/transition/TransitionListenerAdapter;-><init>()V @@ -15403,34 +15422,34 @@ 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 +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;->containsKey(Ljava/lang/Object;)Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; 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;->equals(Ljava/lang/Object;)Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/Object;Ljava/lang/String;,Ljava/lang/Integer;,Ljava/lang/Long;]Ljava/util/Map;Landroid/util/ArrayMap; 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;->hashCode()I+]Ljava/lang/Object;Ljava/lang/String;,Ljava/lang/Integer;,Ljava/lang/Long; 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; -HSPLandroid/util/ArrayMap;->put(Ljava/lang/Object;Ljava/lang/Object;)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;missing_types HSPLandroid/util/ArrayMap;->putAll(Landroid/util/ArrayMap;)V -HSPLandroid/util/ArrayMap;->putAll(Ljava/util/Map;)V +HSPLandroid/util/ArrayMap;->putAll(Ljava/util/Map;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/Map$Entry;Landroid/util/MapCollections$MapIterator;,Ljava/util/HashMap$Node;]Ljava/util/Map;missing_types]Ljava/util/Iterator;missing_types]Ljava/util/Set;missing_types 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;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/util/ArrayMap;Landroid/util/ArrayMap; HSPLandroid/util/ArrayMap;->validate()V HSPLandroid/util/ArrayMap;->valueAt(I)Ljava/lang/Object; HSPLandroid/util/ArrayMap;->values()Ljava/util/Collection; @@ -15444,7 +15463,7 @@ HSPLandroid/util/ArraySet;-><init>(IZ)V HSPLandroid/util/ArraySet;-><init>(Landroid/util/ArraySet;)V HSPLandroid/util/ArraySet;-><init>(Ljava/util/Collection;)V HSPLandroid/util/ArraySet;-><init>([Ljava/lang/Object;)V -HSPLandroid/util/ArraySet;->add(Ljava/lang/Object;)Z +HSPLandroid/util/ArraySet;->add(Ljava/lang/Object;)Z+]Ljava/lang/Object;Landroid/app/PendingIntent; HSPLandroid/util/ArraySet;->addAll(Landroid/util/ArraySet;)V HSPLandroid/util/ArraySet;->addAll(Ljava/util/Collection;)Z HSPLandroid/util/ArraySet;->allocArrays(I)V @@ -15470,7 +15489,7 @@ 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;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/util/ArraySet;Landroid/util/ArraySet; HSPLandroid/util/ArraySet;->valueAt(I)Ljava/lang/Object; HSPLandroid/util/ArraySet;->valueAtUnchecked(I)Ljava/lang/Object; HSPLandroid/util/AtomicFile;-><init>(Ljava/io/File;)V @@ -15486,11 +15505,11 @@ 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(Ljava/lang/String;I)[B+]Ljava/lang/String;Ljava/lang/String; HSPLandroid/util/Base64;->decode([BI)[B -HSPLandroid/util/Base64;->decode([BIII)[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;->encode([BIII)[B+]Landroid/util/Base64$Encoder;Landroid/util/Base64$Encoder; HSPLandroid/util/Base64;->encodeToString([BI)Ljava/lang/String; HSPLandroid/util/Base64;->encodeToString([BIII)Ljava/lang/String; HSPLandroid/util/CloseGuard;-><init>()V @@ -15506,9 +15525,9 @@ 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; -HSPLandroid/util/EventLog$Event;->getData()Ljava/lang/Object; -HSPLandroid/util/EventLog$Event;->getHeaderSize()I +HSPLandroid/util/EventLog$Event;->decodeObject()Ljava/lang/Object;+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; +HSPLandroid/util/EventLog$Event;->getData()Ljava/lang/Object;+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; +HSPLandroid/util/EventLog$Event;->getHeaderSize()I+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; HSPLandroid/util/EventLog$Event;->getUid()I HSPLandroid/util/EventLog;->getTagCode(Ljava/lang/String;)I HSPLandroid/util/EventLog;->readTagsFile()V @@ -15547,35 +15566,35 @@ 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;->advance()Landroid/util/JsonToken;+]Landroid/util/JsonReader;Landroid/util/JsonReader; 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;->decodeLiteral()Landroid/util/JsonToken;+]Lcom/android/internal/util/StringPool;Lcom/android/internal/util/StringPool; 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;->expect(Landroid/util/JsonToken;)V+]Landroid/util/JsonReader;Landroid/util/JsonReader; +HSPLandroid/util/JsonReader;->fillBuffer(I)Z+]Ljava/io/Reader;Ljava/io/InputStreamReader; +HSPLandroid/util/JsonReader;->hasNext()Z+]Landroid/util/JsonReader;Landroid/util/JsonReader; 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;->nextName()Ljava/lang/String;+]Landroid/util/JsonReader;Landroid/util/JsonReader; HSPLandroid/util/JsonReader;->nextNonWhitespace()I -HSPLandroid/util/JsonReader;->nextString()Ljava/lang/String; -HSPLandroid/util/JsonReader;->nextString(C)Ljava/lang/String; +HSPLandroid/util/JsonReader;->nextString()Ljava/lang/String;+]Landroid/util/JsonReader;Landroid/util/JsonReader; +HSPLandroid/util/JsonReader;->nextString(C)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/internal/util/StringPool;Lcom/android/internal/util/StringPool; 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;->peek()Landroid/util/JsonToken;+]Landroid/util/JsonScope;Landroid/util/JsonScope; +HSPLandroid/util/JsonReader;->peekStack()Landroid/util/JsonScope;+]Ljava/util/List;Ljava/util/ArrayList; 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;->replaceTop(Landroid/util/JsonScope;)V+]Ljava/util/List;Ljava/util/ArrayList; HSPLandroid/util/JsonReader;->skipValue()V HSPLandroid/util/JsonToken;->values()[Landroid/util/JsonToken; HSPLandroid/util/JsonWriter;-><init>(Ljava/io/Writer;)V @@ -15593,7 +15612,7 @@ 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; HSPLandroid/util/JsonWriter;->replaceTop(Landroid/util/JsonScope;)V -HSPLandroid/util/JsonWriter;->string(Ljava/lang/String;)V +HSPLandroid/util/JsonWriter;->string(Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String;]Ljava/io/Writer;Ljava/io/StringWriter; 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; @@ -15621,7 +15640,7 @@ 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;->printlns(IILjava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I+]Ljava/lang/String;Ljava/lang/String;]Landroid/util/Log$ImmediateLogWriter;Landroid/util/Log$ImmediateLogWriter;]Lcom/android/internal/util/LineBreakBufferedWriter;Lcom/android/internal/util/LineBreakBufferedWriter;]Ljava/lang/Throwable;missing_types 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 @@ -15643,7 +15662,7 @@ HSPLandroid/util/LongSparseArray;->append(JLjava/lang/Object;)V HSPLandroid/util/LongSparseArray;->clear()V HSPLandroid/util/LongSparseArray;->delete(J)V HSPLandroid/util/LongSparseArray;->gc()V -HSPLandroid/util/LongSparseArray;->get(J)Ljava/lang/Object; +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 @@ -15666,7 +15685,7 @@ 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; +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 @@ -15680,11 +15699,11 @@ HSPLandroid/util/LruCache;->snapshot()Ljava/util/Map; HSPLandroid/util/LruCache;->trimToSize(I)V+]Ljava/util/Map$Entry;Ljava/util/LinkedHashMap$LinkedHashMapEntry;]Ljava/util/LinkedHashMap;Ljava/util/LinkedHashMap;]Landroid/util/LruCache;Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache; HSPLandroid/util/MapCollections$ArrayIterator;-><init>(Landroid/util/MapCollections;I)V HSPLandroid/util/MapCollections$ArrayIterator;->hasNext()Z -HSPLandroid/util/MapCollections$ArrayIterator;->next()Ljava/lang/Object; +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$EntrySet;->size()I+]Landroid/util/MapCollections;Landroid/util/ArrayMap$1; 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 @@ -15692,8 +15711,8 @@ 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;-><init>(Landroid/util/MapCollections;)V+]Landroid/util/MapCollections;Landroid/util/ArrayMap$1; +HSPLandroid/util/MapCollections$MapIterator;->getKey()Ljava/lang/Object;+]Landroid/util/MapCollections;Landroid/util/ArrayMap$1; HSPLandroid/util/MapCollections$MapIterator;->getValue()Ljava/lang/Object; HSPLandroid/util/MapCollections$MapIterator;->hasNext()Z HSPLandroid/util/MapCollections$MapIterator;->next()Ljava/lang/Object; @@ -15707,7 +15726,7 @@ 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/MapCollections;->toArrayHelper([Ljava/lang/Object;I)[Ljava/lang/Object;+]Ljava/lang/Object;[Ljava/lang/String;]Landroid/util/MapCollections;Landroid/util/ArrayMap$1;]Ljava/lang/Class;Ljava/lang/Class; HSPLandroid/util/MathUtils;->addOrThrow(II)I HSPLandroid/util/MathUtils;->constrain(FFF)F HSPLandroid/util/MathUtils;->constrain(III)I @@ -15721,8 +15740,8 @@ HSPLandroid/util/MemoryIntArray$1;->createFromParcel(Landroid/os/Parcel;)Ljava/l 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;->enforceNotClosed()V+]Landroid/util/MemoryIntArray;Landroid/util/MemoryIntArray; +HSPLandroid/util/MemoryIntArray;->enforceValidIndex(I)V+]Landroid/util/MemoryIntArray;Landroid/util/MemoryIntArray; HSPLandroid/util/MemoryIntArray;->finalize()V HSPLandroid/util/MemoryIntArray;->get(I)I HSPLandroid/util/MemoryIntArray;->isClosed()Z @@ -15743,7 +15762,7 @@ 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;->hashCode()I+]Ljava/lang/Object;missing_types 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 @@ -15798,20 +15817,20 @@ 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 +HSPLandroid/util/SparseArray;->append(ILjava/lang/Object;)V+]Landroid/util/SparseArray;missing_types 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;->contentEquals(Landroid/util/SparseArray;)Z+]Landroid/util/SparseArray;Landroid/util/SparseArray; HSPLandroid/util/SparseArray;->delete(I)V HSPLandroid/util/SparseArray;->gc()V -HSPLandroid/util/SparseArray;->get(I)Ljava/lang/Object; +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;->remove(I)V+]Landroid/util/SparseArray;Landroid/util/SparseArray; HSPLandroid/util/SparseArray;->removeAt(I)V HSPLandroid/util/SparseArray;->removeReturnOld(I)Ljava/lang/Object; HSPLandroid/util/SparseArray;->setValueAt(ILjava/lang/Object;)V @@ -15842,7 +15861,7 @@ HSPLandroid/util/SparseIntArray;->clear()V HSPLandroid/util/SparseIntArray;->clone()Landroid/util/SparseIntArray; HSPLandroid/util/SparseIntArray;->copyKeys()[I HSPLandroid/util/SparseIntArray;->delete(I)V -HSPLandroid/util/SparseIntArray;->get(I)I +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 @@ -15855,7 +15874,7 @@ 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(I)J+]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray; HSPLandroid/util/SparseLongArray;->get(IJ)J HSPLandroid/util/SparseLongArray;->indexOfKey(I)I HSPLandroid/util/SparseLongArray;->keyAt(I)I @@ -15989,8 +16008,8 @@ HSPLandroid/view/Choreographer$CallbackQueue;->extractDueCallbacksLocked(J)Landr HSPLandroid/view/Choreographer$CallbackQueue;->removeCallbacksLocked(Ljava/lang/Object;Ljava/lang/Object;)V HSPLandroid/view/Choreographer$CallbackRecord;-><init>()V HSPLandroid/view/Choreographer$CallbackRecord;-><init>(Landroid/view/Choreographer$CallbackRecord-IA;)V -HSPLandroid/view/Choreographer$CallbackRecord;->run(J)V -HSPLandroid/view/Choreographer$CallbackRecord;->run(Landroid/view/Choreographer$FrameData;)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 @@ -16003,8 +16022,8 @@ 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;+]Landroid/view/DisplayEventReceiver;Landroid/view/Choreographer$FrameDisplayEventReceiver;]Landroid/view/Choreographer$FrameData;Landroid/view/Choreographer$FrameData; HSPLandroid/view/Choreographer$FrameDisplayEventReceiver;-><init>(Landroid/view/Choreographer;Landroid/os/Looper;IJ)V -HSPLandroid/view/Choreographer$FrameDisplayEventReceiver;->onVsync(JJILandroid/view/DisplayEventReceiver$VsyncEventData;)V -HSPLandroid/view/Choreographer$FrameDisplayEventReceiver;->run()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 @@ -16020,8 +16039,8 @@ HSPLandroid/view/Choreographer;->-$$Nest$sfputmMainInstance(Landroid/view/Choreo 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; -HSPLandroid/view/Choreographer;->doFrame(JILandroid/view/DisplayEventReceiver$VsyncEventData;)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 @@ -16034,17 +16053,17 @@ HSPLandroid/view/Choreographer;->getSfInstance()Landroid/view/Choreographer; HSPLandroid/view/Choreographer;->getVsyncId()J HSPLandroid/view/Choreographer;->isRunningOnLooperThreadLocked()Z HSPLandroid/view/Choreographer;->obtainCallbackLocked(JLjava/lang/Object;Ljava/lang/Object;)Landroid/view/Choreographer$CallbackRecord; -HSPLandroid/view/Choreographer;->postCallback(ILjava/lang/Runnable;Ljava/lang/Object;)V +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 +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 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;->removeCallbacksInternal(ILjava/lang/Object;Ljava/lang/Object;)V+]Landroid/view/Choreographer$CallbackQueue;Landroid/view/Choreographer$CallbackQueue;]Landroid/view/Choreographer$FrameHandler;Landroid/view/Choreographer$FrameHandler; HSPLandroid/view/Choreographer;->removeFrameCallback(Landroid/view/Choreographer$FrameCallback;)V -HSPLandroid/view/Choreographer;->scheduleFrameLocked(J)V -HSPLandroid/view/Choreographer;->scheduleVsyncLocked()V +HSPLandroid/view/Choreographer;->scheduleFrameLocked(J)V+]Landroid/os/Message;Landroid/os/Message;]Landroid/view/Choreographer$FrameHandler;Landroid/view/Choreographer$FrameHandler; +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 @@ -16054,8 +16073,8 @@ HSPLandroid/view/ContextThemeWrapper;->getAssets()Landroid/content/res/AssetMana 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; +HSPLandroid/view/ContextThemeWrapper;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;+]Ljava/lang/String;Ljava/lang/String;]Landroid/view/LayoutInflater;Lcom/android/internal/policy/PhoneLayoutInflater;]Landroid/content/Context;missing_types]Landroid/view/ContextThemeWrapper;missing_types +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 @@ -16086,7 +16105,7 @@ HSPLandroid/view/Display;-><init>(Landroid/hardware/display/DisplayManagerGlobal 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;->getDisplayAdjustments()Landroid/view/DisplayAdjustments;+]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/view/DisplayAdjustments;Landroid/view/DisplayAdjustments; HSPLandroid/view/Display;->getDisplayId()I HSPLandroid/view/Display;->getDisplayInfo(Landroid/view/DisplayInfo;)Z HSPLandroid/view/Display;->getFlags()I @@ -16176,7 +16195,7 @@ HSPLandroid/view/DisplayEventReceiver$VsyncEventData;->copyFrom(Landroid/view/Di 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 +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; @@ -16192,12 +16211,12 @@ HSPLandroid/view/DisplayInfo;->getAppMetrics(Landroid/util/DisplayMetrics;Landro 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 +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;]Landroid/graphics/Rect;Landroid/graphics/Rect; 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;->readFromParcel(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/view/Display$Mode$1;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/view/DisplayInfo;->toString()Ljava/lang/String; HSPLandroid/view/DisplayInfo;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/view/DisplayShape$1;-><init>()V @@ -16262,7 +16281,7 @@ 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 +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 @@ -16333,7 +16352,7 @@ HSPLandroid/view/ImeFocusController;->onPostWindowFocus(Landroid/view/View;ZLand 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;->onViewDetachedFromWindow(Landroid/view/View;)V+]Landroid/view/ImeFocusController$InputMethodManagerDelegate;Landroid/view/inputmethod/InputMethodManager$DelegateImpl; 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 @@ -16356,7 +16375,7 @@ 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;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/view/KeyCharacterMap$1;,Landroid/hardware/input/HostUsiVersion$1;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/view/InputDevice;->addMotionRange(IIFFFFF)V HSPLandroid/view/InputDevice;->getDevice(I)Landroid/view/InputDevice; HSPLandroid/view/InputDevice;->getDeviceIds()[I @@ -16366,7 +16385,7 @@ HSPLandroid/view/InputDevice;->isVirtual()Z HSPLandroid/view/InputEvent;-><init>()V HSPLandroid/view/InputEvent;->getSequenceNumber()I HSPLandroid/view/InputEvent;->isFromSource(I)Z -HSPLandroid/view/InputEvent;->prepareForReuse()V +HSPLandroid/view/InputEvent;->prepareForReuse()V+]Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicInteger; HSPLandroid/view/InputEvent;->recycle()V HSPLandroid/view/InputEvent;->recycleIfNeededAfterDispatch()V HSPLandroid/view/InputEventAssigner;-><init>()V @@ -16485,7 +16504,7 @@ 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;->getAnimationType(I)I+]Landroid/view/InsetsAnimationControlRunner;Landroid/view/InsetsAnimationThreadControlRunner;]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/view/InsetsController;->getHost()Landroid/view/InsetsController$Host; HSPLandroid/view/InsetsController;->getLastDispatchedState()Landroid/view/InsetsState; HSPLandroid/view/InsetsController;->getRequestedVisibleTypes()I @@ -16499,7 +16518,8 @@ HSPLandroid/view/InsetsController;->lambda$static$1(FLandroid/graphics/Insets;La 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;->onAnimationStateChanged(IZ)V+]Landroid/view/InsetsSourceConsumer;Landroid/view/InsetsSourceConsumer;,Landroid/view/ImeInsetsSourceConsumer;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/view/InsetsController;Landroid/view/InsetsController; +HSPLandroid/view/InsetsController;->onControlsChanged([Landroid/view/InsetsSourceControl;)V+]Landroid/view/InsetsAnimationControlRunner;Landroid/view/InsetsAnimationThreadControlRunner;]Landroid/view/InsetsSourceConsumer;Landroid/view/InsetsSourceConsumer;,Landroid/view/ImeInsetsSourceConsumer;]Landroid/view/InsetsSourceControl;Landroid/view/InsetsSourceControl;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/view/InsetsController;Landroid/view/InsetsController;]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/view/InsetsController;->onFrameChanged(Landroid/graphics/Rect;)V HSPLandroid/view/InsetsController;->onStateChanged(Landroid/view/InsetsState;)Z HSPLandroid/view/InsetsController;->onWindowFocusGained(Z)V @@ -16510,18 +16530,18 @@ 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/InsetsController;->updateState(Landroid/view/InsetsState;)V+]Landroid/view/InsetsState;Landroid/view/InsetsState;]Landroid/view/InsetsSourceConsumer;Landroid/view/InsetsSourceConsumer;,Landroid/view/ImeInsetsSourceConsumer;]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Landroid/view/InsetsController;Landroid/view/InsetsController; 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$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;+]Landroid/view/InsetsSource$1;Landroid/view/InsetsSource$1; HSPLandroid/view/InsetsSource;-><init>(II)V -HSPLandroid/view/InsetsSource;-><init>(Landroid/os/Parcel;)V +HSPLandroid/view/InsetsSource;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/graphics/Rect$1;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/view/InsetsSource;-><init>(Landroid/view/InsetsSource;)V -HSPLandroid/view/InsetsSource;->calculateInsets(Landroid/graphics/Rect;Landroid/graphics/Rect;Z)Landroid/graphics/Insets; +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;->equals(Ljava/lang/Object;)Z+]Landroid/view/InsetsSource;Landroid/view/InsetsSource; +HSPLandroid/view/InsetsSource;->equals(Ljava/lang/Object;Z)Z+]Ljava/lang/Object;Landroid/view/InsetsSource;]Landroid/graphics/Rect;Landroid/graphics/Rect; HSPLandroid/view/InsetsSource;->getFlags()I HSPLandroid/view/InsetsSource;->getFrame()Landroid/graphics/Rect; HSPLandroid/view/InsetsSource;->getId()I @@ -16533,7 +16553,7 @@ 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;->applyLocalVisibilityOverride()Z+]Landroid/view/InsetsState;Landroid/view/InsetsState;]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Landroid/view/InsetsController;Landroid/view/InsetsController; HSPLandroid/view/InsetsSourceConsumer;->applyRequestedVisibilityToControl()V HSPLandroid/view/InsetsSourceConsumer;->getControl()Landroid/view/InsetsSourceControl; HSPLandroid/view/InsetsSourceConsumer;->getId()I @@ -16543,8 +16563,8 @@ 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/InsetsSourceConsumer;->setControl(Landroid/view/InsetsSourceControl;[I[I)Z+]Landroid/view/InsetsState;Landroid/view/InsetsState;]Landroid/view/InsetsSourceConsumer;Landroid/view/InsetsSourceConsumer;,Landroid/view/ImeInsetsSourceConsumer;]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Landroid/view/InsetsSourceControl;Landroid/view/InsetsSourceControl;]Landroid/view/InsetsController;Landroid/view/InsetsController; +HSPLandroid/view/InsetsSourceConsumer;->updateSource(Landroid/view/InsetsSource;I)V+]Landroid/view/InsetsState;Landroid/view/InsetsState;]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Landroid/graphics/Rect;Landroid/graphics/Rect; 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; @@ -16582,12 +16602,12 @@ HSPLandroid/view/InsetsState;->calculateRelativeCutout(Landroid/graphics/Rect;)L 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;->calculateUncontrollableInsetsFromFrame(Landroid/graphics/Rect;)I+]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Landroid/util/SparseArray;Landroid/util/SparseArray; 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;->equals(Ljava/lang/Object;ZZ)Z+]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Ljava/lang/Object;Landroid/view/InsetsState;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/view/DisplayShape;Landroid/view/DisplayShape;]Landroid/view/DisplayCutout$ParcelableWrapper;Landroid/view/DisplayCutout$ParcelableWrapper;]Landroid/view/RoundedCorners;Landroid/view/RoundedCorners;]Landroid/view/PrivacyIndicatorBounds;Landroid/view/PrivacyIndicatorBounds; HSPLandroid/view/InsetsState;->getDisplayCutout()Landroid/view/DisplayCutout; HSPLandroid/view/InsetsState;->getDisplayCutoutSafe(Landroid/graphics/Rect;)V HSPLandroid/view/InsetsState;->getDisplayFrame()Landroid/graphics/Rect; @@ -16596,20 +16616,20 @@ HSPLandroid/view/InsetsState;->getInsetSide(Landroid/graphics/Insets;)I 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;->processSource(Landroid/view/InsetsSource;Landroid/graphics/Rect;Z[Landroid/graphics/Insets;Landroid/util/SparseIntArray;[Z)V -HSPLandroid/view/InsetsState;->processSourceAsPublicType(Landroid/view/InsetsSource;[Landroid/graphics/Insets;Landroid/util/SparseIntArray;[ZLandroid/graphics/Insets;I)V -HSPLandroid/view/InsetsState;->readFromParcel(Landroid/os/Parcel;)Landroid/util/SparseArray; +HSPLandroid/view/InsetsState;->peekSource(I)Landroid/view/InsetsSource;+]Landroid/util/SparseArray;Landroid/util/SparseArray; +HSPLandroid/view/InsetsState;->processSource(Landroid/view/InsetsSource;Landroid/graphics/Rect;Z[Landroid/graphics/Insets;Landroid/util/SparseIntArray;[Z)V+]Landroid/view/InsetsSource;Landroid/view/InsetsSource; +HSPLandroid/view/InsetsState;->processSourceAsPublicType(Landroid/view/InsetsSource;[Landroid/graphics/Insets;Landroid/util/SparseIntArray;[ZLandroid/graphics/Insets;I)V+]Landroid/view/InsetsSource;Landroid/view/InsetsSource; +HSPLandroid/view/InsetsState;->readFromParcel(Landroid/os/Parcel;)Landroid/util/SparseArray;+]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/view/DisplayCutout$ParcelableWrapper;Landroid/view/DisplayCutout$ParcelableWrapper;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/view/InsetsState;->set(Landroid/view/InsetsState;I)V -HSPLandroid/view/InsetsState;->set(Landroid/view/InsetsState;Z)V +HSPLandroid/view/InsetsState;->set(Landroid/view/InsetsState;Z)V+]Landroid/view/InsetsState;Landroid/view/InsetsState;]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/view/DisplayCutout$ParcelableWrapper;Landroid/view/DisplayCutout$ParcelableWrapper; 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;->sourceAt(I)Landroid/view/InsetsSource;+]Landroid/util/SparseArray;Landroid/util/SparseArray; +HSPLandroid/view/InsetsState;->sourceIdAt(I)I+]Landroid/util/SparseArray;Landroid/util/SparseArray; HSPLandroid/view/InsetsState;->sourceSize()I -HSPLandroid/view/InsetsState;->traverse(Landroid/view/InsetsState;Landroid/view/InsetsState;Landroid/view/InsetsState$OnTraverseCallbacks;)V +HSPLandroid/view/InsetsState;->traverse(Landroid/view/InsetsState;Landroid/view/InsetsState;Landroid/view/InsetsState$OnTraverseCallbacks;)V+]Landroid/view/InsetsState;Landroid/view/InsetsState;]Landroid/view/InsetsState$OnTraverseCallbacks;Landroid/view/InsetsController$2; 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; @@ -16657,31 +16677,34 @@ 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;-><init>(Landroid/view/LayoutInflater;Landroid/content/Context;)V+]Landroid/view/LayoutInflater;Lcom/android/internal/policy/PhoneLayoutInflater; +HSPLandroid/view/LayoutInflater;->advanceToRootNode(Lorg/xmlpull/v1/XmlPullParser;)V+]Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/XmlBlock$Parser; 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;->createView(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View;+]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/lang/Class;Ljava/lang/Class;]Ljava/lang/reflect/Constructor;Ljava/lang/reflect/Constructor;]Landroid/view/LayoutInflater;missing_types]Landroid/view/ViewStub;Landroid/view/ViewStub;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/Context;missing_types +HSPLandroid/view/LayoutInflater;->createView(Ljava/lang/String;Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View;+]Landroid/view/LayoutInflater;Lcom/android/internal/policy/PhoneLayoutInflater; +HSPLandroid/view/LayoutInflater;->createViewFromTag(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;+]Landroid/view/LayoutInflater;missing_types +HSPLandroid/view/LayoutInflater;->createViewFromTag(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;Z)Landroid/view/View;+]Ljava/lang/String;Ljava/lang/String;]Landroid/view/LayoutInflater;missing_types]Landroid/content/Context;missing_types]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Landroid/util/AttributeSet;Landroid/content/res/XmlBlock$Parser; 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;->inflate(ILandroid/view/ViewGroup;Z)Landroid/view/View;+]Landroid/view/LayoutInflater;missing_types]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/content/res/XmlResourceParser;Landroid/content/res/XmlBlock$Parser;]Landroid/content/Context;missing_types +HSPLandroid/view/LayoutInflater;->inflate(Lorg/xmlpull/v1/XmlPullParser;Landroid/view/ViewGroup;Z)Landroid/view/View;+]Ljava/lang/String;Ljava/lang/String;]Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/XmlBlock$Parser;]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types]Landroid/view/LayoutInflater;missing_types]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; +HSPLandroid/view/LayoutInflater;->initPrecompiledViews()V +HSPLandroid/view/LayoutInflater;->initPrecompiledViews(Z)V +HSPLandroid/view/LayoutInflater;->onCreateView(Landroid/content/Context;Landroid/view/View;Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View;+]Landroid/view/LayoutInflater;Lcom/android/internal/policy/PhoneLayoutInflater; +HSPLandroid/view/LayoutInflater;->onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View;+]Landroid/view/LayoutInflater;Lcom/android/internal/policy/PhoneLayoutInflater; HSPLandroid/view/LayoutInflater;->onCreateView(Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View; HSPLandroid/view/LayoutInflater;->parseInclude(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/Context;Landroid/view/View;Landroid/util/AttributeSet;)V -HSPLandroid/view/LayoutInflater;->rInflate(Lorg/xmlpull/v1/XmlPullParser;Landroid/view/View;Landroid/content/Context;Landroid/util/AttributeSet;Z)V -HSPLandroid/view/LayoutInflater;->rInflateChildren(Lorg/xmlpull/v1/XmlPullParser;Landroid/view/View;Landroid/util/AttributeSet;Z)V +HSPLandroid/view/LayoutInflater;->rInflate(Lorg/xmlpull/v1/XmlPullParser;Landroid/view/View;Landroid/content/Context;Landroid/util/AttributeSet;Z)V+]Ljava/lang/String;Ljava/lang/String;]Landroid/view/View;missing_types]Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/XmlBlock$Parser;]Landroid/view/ViewGroup;missing_types]Landroid/view/LayoutInflater;missing_types +HSPLandroid/view/LayoutInflater;->rInflateChildren(Lorg/xmlpull/v1/XmlPullParser;Landroid/view/View;Landroid/util/AttributeSet;Z)V+]Landroid/view/View;missing_types]Landroid/view/LayoutInflater;missing_types 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/LayoutInflater;->tryCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;+]Ljava/lang/String;Ljava/lang/String;]Landroid/view/LayoutInflater$Factory2;missing_types +HSPLandroid/view/LayoutInflater;->tryInflatePrecompiled(ILandroid/content/res/Resources;Landroid/view/ViewGroup;Z)Landroid/view/View; +HSPLandroid/view/LayoutInflater;->verifyClassLoader(Ljava/lang/reflect/Constructor;)Z+]Ljava/lang/Class;Ljava/lang/Class;]Ljava/lang/reflect/Constructor;Ljava/lang/reflect/Constructor;]Landroid/content/Context;missing_types HSPLandroid/view/MenuInflater;-><init>(Landroid/content/Context;)V HSPLandroid/view/MotionEvent$PointerCoords;-><init>()V HSPLandroid/view/MotionEvent$PointerProperties;-><init>()V @@ -16770,12 +16793,12 @@ HSPLandroid/view/RemoteAccessibilityController;->setRemoteAccessibilityEmbeddedC 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$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/RoundedCorner;+]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/view/RoundedCorner$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;+]Landroid/view/RoundedCorner$1;Landroid/view/RoundedCorner$1; 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;->equals(Ljava/lang/Object;)Z+]Landroid/graphics/Point;Landroid/graphics/Point; HSPLandroid/view/RoundedCorner;->getCenter()Landroid/graphics/Point; HSPLandroid/view/RoundedCorner;->getRadius()I HSPLandroid/view/RoundedCorner;->isEmpty()Z @@ -16939,7 +16962,7 @@ HSPLandroid/view/SurfaceView;->updateBackgroundVisibility(Landroid/view/SurfaceC 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/SurfaceView;->vriDrawStarted(Z)V+]Landroid/view/SurfaceView;Landroid/view/SurfaceView;]Landroid/util/ArraySet;Landroid/util/ArraySet; 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; @@ -16948,10 +16971,10 @@ HSPLandroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder;->withVis 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;->applyUpdate()V+]Landroid/graphics/TextureLayer;Landroid/graphics/TextureLayer; HSPLandroid/view/TextureView;->destroyHardwareLayer()V HSPLandroid/view/TextureView;->destroyHardwareResources()V -HSPLandroid/view/TextureView;->draw(Landroid/graphics/Canvas;)V +HSPLandroid/view/TextureView;->draw(Landroid/graphics/Canvas;)V+]Landroid/graphics/TextureLayer;Landroid/graphics/TextureLayer;]Landroid/graphics/RecordingCanvas;Landroid/graphics/RecordingCanvas;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas; HSPLandroid/view/TextureView;->getLayerType()I HSPLandroid/view/TextureView;->getTextureLayer()Landroid/graphics/TextureLayer; HSPLandroid/view/TextureView;->isOpaque()Z @@ -16981,7 +17004,7 @@ HSPLandroid/view/ThreadedRenderer;->create(Landroid/content/Context;ZLjava/lang/ HSPLandroid/view/ThreadedRenderer;->destroy()V HSPLandroid/view/ThreadedRenderer;->destroyHardwareResources(Landroid/view/View;)V HSPLandroid/view/ThreadedRenderer;->destroyResources(Landroid/view/View;)V -HSPLandroid/view/ThreadedRenderer;->draw(Landroid/view/View;Landroid/view/View$AttachInfo;Landroid/view/ThreadedRenderer$DrawCallbacks;)V +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 @@ -17002,9 +17025,9 @@ HSPLandroid/view/ThreadedRenderer;->setSurfaceControl(Landroid/view/SurfaceContr 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 +HSPLandroid/view/ThreadedRenderer;->updateRootDisplayList(Landroid/view/View;Landroid/view/ThreadedRenderer$DrawCallbacks;)V+]Landroid/view/View;Lcom/android/internal/policy/DecorView;,Landroid/widget/FrameLayout;]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer;]Landroid/view/ThreadedRenderer$DrawCallbacks;Landroid/view/ViewRootImpl;]Landroid/graphics/RecordingCanvas;Landroid/graphics/RecordingCanvas;]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; HSPLandroid/view/ThreadedRenderer;->updateSurface(Landroid/view/Surface;)V -HSPLandroid/view/ThreadedRenderer;->updateViewTreeDisplayList(Landroid/view/View;)V +HSPLandroid/view/ThreadedRenderer;->updateViewTreeDisplayList(Landroid/view/View;)V+]Landroid/view/View;Lcom/android/internal/policy/DecorView;,Landroid/widget/FrameLayout; HSPLandroid/view/ThreadedRenderer;->updateWebViewOverlayCallbacks()V HSPLandroid/view/TouchDelegate;-><init>(Landroid/graphics/Rect;Landroid/view/View;)V HSPLandroid/view/VelocityTracker;-><init>(I)V @@ -17056,7 +17079,7 @@ HSPLandroid/view/View$AccessibilityDelegate;->getAccessibilityNodeProvider(Landr 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$AttachInfo;->ensureEvents(Landroid/view/contentcapture/ContentCaptureSession;)Ljava/util/ArrayList;+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/view/contentcapture/ContentCaptureSession;Landroid/view/contentcapture/MainContentCaptureSession; 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 @@ -17080,21 +17103,21 @@ 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;-><init>(Landroid/view/ViewConfiguration;Landroid/view/View;)V+]Landroid/graphics/Paint;Landroid/graphics/Paint;]Landroid/view/ViewConfiguration;Landroid/view/ViewConfiguration; HSPLandroid/view/View$ScrollabilityCache;->run()V 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/view/ViewConfiguration;Landroid/view/ViewConfiguration;]Landroid/content/Context;missing_types]Ljava/lang/Class;Ljava/lang/Class; +HSPLandroid/view/View;-><init>(Landroid/content/Context;)V+]Landroid/view/View;megamorphic_types]Ljava/lang/Object;megamorphic_types]Landroid/view/ViewConfiguration;Landroid/view/ViewConfiguration;]Landroid/content/Context;missing_types]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;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V+]Landroid/view/View;megamorphic_types]Landroid/content/Context;missing_types]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; 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;->addOnLayoutChangeListener(Landroid/view/View$OnLayoutChangeListener;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/view/View;->animate()Landroid/view/ViewPropertyAnimator; HSPLandroid/view/View;->announceForAccessibility(Ljava/lang/CharSequence;)V HSPLandroid/view/View;->appendId(Ljava/lang/StringBuilder;)V @@ -17105,18 +17128,18 @@ HSPLandroid/view/View;->applyLegacyAnimation(Landroid/view/ViewGroup;JLandroid/v HSPLandroid/view/View;->areDrawablesResolved()Z HSPLandroid/view/View;->assignParent(Landroid/view/ViewParent;)V HSPLandroid/view/View;->awakenScrollBars()Z -HSPLandroid/view/View;->awakenScrollBars(IZ)Z +HSPLandroid/view/View;->awakenScrollBars(IZ)Z+]Landroid/os/Handler;Landroid/view/ViewRootImpl$ViewRootHandler; HSPLandroid/view/View;->bringToFront()V HSPLandroid/view/View;->buildDrawingCache(Z)V -HSPLandroid/view/View;->buildDrawingCacheImpl(Z)V +HSPLandroid/view/View;->buildDrawingCacheImpl(Z)V+]Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;]Landroid/view/ViewConfiguration;Landroid/view/ViewConfiguration;]Landroid/graphics/Canvas;Landroid/graphics/Canvas; HSPLandroid/view/View;->buildLayer()V HSPLandroid/view/View;->calculateAccessibilityDataSensitive()V -HSPLandroid/view/View;->calculateIsImportantForContentCapture()Z +HSPLandroid/view/View;->calculateIsImportantForContentCapture()Z+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types]Landroid/view/ViewParent;missing_types HSPLandroid/view/View;->canHaveDisplayList()Z HSPLandroid/view/View;->canNotifyAutofillEnterExitEvent()Z HSPLandroid/view/View;->canReceivePointerEvents()Z -HSPLandroid/view/View;->canResolveLayoutDirection()Z -HSPLandroid/view/View;->canResolveTextDirection()Z +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 @@ -17125,17 +17148,17 @@ 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;->cleanupDraw()V+]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; +HSPLandroid/view/View;->clearAccessibilityFocus()V+]Landroid/view/View;missing_types]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; 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;->clearTranslationState()V+]Landroid/view/View;missing_types HSPLandroid/view/View;->clearViewTranslationResponse()V -HSPLandroid/view/View;->collectPreferKeepClearRects()Ljava/util/List; +HSPLandroid/view/View;->collectPreferKeepClearRects()Ljava/util/List;+]Landroid/view/View;missing_types]Landroid/view/ViewConfiguration;Landroid/view/ViewConfiguration; HSPLandroid/view/View;->collectUnrestrictedPreferKeepClearRects()Ljava/util/List; HSPLandroid/view/View;->combineMeasuredStates(II)I HSPLandroid/view/View;->combineVisibility(II)I @@ -17143,21 +17166,21 @@ HSPLandroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/ HSPLandroid/view/View;->computeHorizontalScrollExtent()I HSPLandroid/view/View;->computeHorizontalScrollOffset()I HSPLandroid/view/View;->computeHorizontalScrollRange()I -HSPLandroid/view/View;->computeOpaqueFlags()V +HSPLandroid/view/View;->computeOpaqueFlags()V+]Landroid/graphics/drawable/Drawable;megamorphic_types HSPLandroid/view/View;->computeScroll()V HSPLandroid/view/View;->computeSystemWindowInsets(Landroid/view/WindowInsets;Landroid/graphics/Rect;)Landroid/view/WindowInsets; HSPLandroid/view/View;->computeVerticalScrollExtent()I HSPLandroid/view/View;->computeVerticalScrollOffset()I HSPLandroid/view/View;->computeVerticalScrollRange()I -HSPLandroid/view/View;->damageInParent()V +HSPLandroid/view/View;->damageInParent()V+]Landroid/view/ViewParent;missing_types HSPLandroid/view/View;->destroyDrawingCache()V HSPLandroid/view/View;->destroyHardwareResources()V -HSPLandroid/view/View;->dispatchApplyWindowInsets(Landroid/view/WindowInsets;)Landroid/view/WindowInsets; -HSPLandroid/view/View;->dispatchAttachedToWindow(Landroid/view/View$AttachInfo;I)V +HSPLandroid/view/View;->dispatchApplyWindowInsets(Landroid/view/WindowInsets;)Landroid/view/WindowInsets;+]Landroid/view/View;missing_types +HSPLandroid/view/View;->dispatchAttachedToWindow(Landroid/view/View$AttachInfo;I)V+]Landroid/view/View;missing_types]Landroid/view/HandlerActionQueue;Landroid/view/HandlerActionQueue;]Landroid/view/ViewTreeObserver;Landroid/view/ViewTreeObserver;]Ljava/util/concurrent/CopyOnWriteArrayList;Ljava/util/concurrent/CopyOnWriteArrayList;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/concurrent/CopyOnWriteArrayList$COWIterator;]Landroid/view/ViewOverlay;Landroid/view/ViewGroupOverlay;]Landroid/view/ViewGroup;Landroid/view/ViewOverlay$OverlayViewGroup; HSPLandroid/view/View;->dispatchCancelPendingInputEvents()V -HSPLandroid/view/View;->dispatchCollectViewAttributes(Landroid/view/View$AttachInfo;I)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 +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/concurrent/CopyOnWriteArrayList;Ljava/util/concurrent/CopyOnWriteArrayList;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/view/View$OnAttachStateChangeListener;missing_types]Ljava/util/Iterator;Ljava/util/concurrent/CopyOnWriteArrayList$COWIterator;]Landroid/view/ViewOverlay;Landroid/view/ViewGroupOverlay;]Landroid/view/ViewGroup;Landroid/view/ViewOverlay$OverlayViewGroup; HSPLandroid/view/View;->dispatchDraw(Landroid/graphics/Canvas;)V HSPLandroid/view/View;->dispatchDrawableHotspotChanged(FF)V HSPLandroid/view/View;->dispatchFinishTemporaryDetach()V @@ -17181,7 +17204,7 @@ 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+]Landroid/view/MotionEvent;Landroid/view/MotionEvent; -HSPLandroid/view/View;->dispatchVisibilityAggregated(Z)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 @@ -17190,10 +17213,10 @@ HSPLandroid/view/View;->dispatchWindowVisibilityChanged(I)V HSPLandroid/view/View;->draw(Landroid/graphics/Canvas;)V HSPLandroid/view/View;->draw(Landroid/graphics/Canvas;Landroid/view/ViewGroup;J)Z+]Landroid/view/View;missing_types]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;]Landroid/graphics/RecordingCanvas;Landroid/graphics/RecordingCanvas;]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas; HSPLandroid/view/View;->drawAutofilledHighlight(Landroid/graphics/Canvas;)V+]Landroid/view/View;missing_types -HSPLandroid/view/View;->drawBackground(Landroid/graphics/Canvas;)V +HSPLandroid/view/View;->drawBackground(Landroid/graphics/Canvas;)V+]Landroid/view/View;missing_types]Landroid/graphics/RecordingCanvas;Landroid/graphics/RecordingCanvas;]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;]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 +HSPLandroid/view/View;->drawableStateChanged()V+]Landroid/animation/StateListAnimator;Landroid/animation/StateListAnimator;]Landroid/view/View;missing_types]Landroid/graphics/drawable/Drawable;missing_types 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; @@ -17203,7 +17226,7 @@ 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;->findViewById(I)Landroid/view/View;+]Landroid/view/View;megamorphic_types 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; @@ -17223,7 +17246,7 @@ HSPLandroid/view/View;->getAndCacheContentCaptureSession()Landroid/view/contentc 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;->getAutofillId()Landroid/view/autofill/AutofillId;+]Landroid/view/View;missing_types HSPLandroid/view/View;->getAutofillType()I HSPLandroid/view/View;->getAutofillViewId()I HSPLandroid/view/View;->getBackground()Landroid/graphics/drawable/Drawable; @@ -17238,12 +17261,12 @@ HSPLandroid/view/View;->getContentDescription()Ljava/lang/CharSequence; HSPLandroid/view/View;->getContext()Landroid/content/Context; HSPLandroid/view/View;->getDefaultSize(II)I HSPLandroid/view/View;->getDisplay()Landroid/view/Display; -HSPLandroid/view/View;->getDrawableRenderNode(Landroid/graphics/drawable/Drawable;Landroid/graphics/RenderNode;)Landroid/graphics/RenderNode; -HSPLandroid/view/View;->getDrawableState()[I +HSPLandroid/view/View;->getDrawableRenderNode(Landroid/graphics/drawable/Drawable;Landroid/graphics/RenderNode;)Landroid/graphics/RenderNode;+]Ljava/lang/Object;megamorphic_types]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/RecordingCanvas;Landroid/graphics/RecordingCanvas;]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;]Ljava/lang/Class;Ljava/lang/Class;]Landroid/graphics/drawable/Drawable;megamorphic_types +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;->getElevation()F+]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; HSPLandroid/view/View;->getFilterTouchesWhenObscured()Z HSPLandroid/view/View;->getFinalAlpha()F HSPLandroid/view/View;->getFitsSystemWindows()Z @@ -17253,7 +17276,7 @@ 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;->getGlobalVisibleRect(Landroid/graphics/Rect;Landroid/graphics/Point;)Z+]Landroid/graphics/Point;Landroid/graphics/Point;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/view/ViewParent;Landroid/widget/FrameLayout; HSPLandroid/view/View;->getHandler()Landroid/os/Handler; HSPLandroid/view/View;->getHasOverlappingRendering()Z+]Landroid/view/View;missing_types HSPLandroid/view/View;->getHeight()I @@ -17268,7 +17291,7 @@ HSPLandroid/view/View;->getImportantForContentCapture()I HSPLandroid/view/View;->getInverseMatrix()Landroid/graphics/Matrix; HSPLandroid/view/View;->getKeyDispatcherState()Landroid/view/KeyEvent$DispatcherState; HSPLandroid/view/View;->getLayerType()I -HSPLandroid/view/View;->getLayoutDirection()I+]Landroid/view/View;missing_types]Landroid/content/Context;missing_types +HSPLandroid/view/View;->getLayoutDirection()I+]Landroid/view/View;megamorphic_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; @@ -17277,7 +17300,7 @@ HSPLandroid/view/View;->getLocationInSurface([I)V HSPLandroid/view/View;->getLocationInWindow([I)V HSPLandroid/view/View;->getLocationOnScreen()[I HSPLandroid/view/View;->getLocationOnScreen([I)V+]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; -HSPLandroid/view/View;->getMatrix()Landroid/graphics/Matrix;+]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; +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 @@ -17289,14 +17312,14 @@ 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;->getPaddingLeft()I+]Landroid/view/View;missing_types +HSPLandroid/view/View;->getPaddingRight()I+]Landroid/view/View;missing_types 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;->getProjectionReceiver()Landroid/view/View;+]Landroid/view/View;missing_types]Landroid/view/ViewParent;missing_types HSPLandroid/view/View;->getRawLayoutDirection()I HSPLandroid/view/View;->getRawTextAlignment()I HSPLandroid/view/View;->getRawTextDirection()I @@ -17315,9 +17338,9 @@ 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 -HSPLandroid/view/View;->getSuggestedMinimumHeight()I+]Landroid/graphics/drawable/Drawable;missing_types -HSPLandroid/view/View;->getSuggestedMinimumWidth()I+]Landroid/graphics/drawable/Drawable;missing_types +HSPLandroid/view/View;->getStraightVerticalScrollBarBounds(Landroid/graphics/Rect;Landroid/graphics/Rect;)V+]Landroid/view/View;missing_types +HSPLandroid/view/View;->getSuggestedMinimumHeight()I+]Landroid/graphics/drawable/Drawable;megamorphic_types +HSPLandroid/view/View;->getSuggestedMinimumWidth()I+]Landroid/graphics/drawable/Drawable;megamorphic_types HSPLandroid/view/View;->getSystemGestureExclusionRects()Ljava/util/List; HSPLandroid/view/View;->getSystemUiVisibility()I HSPLandroid/view/View;->getTag()Ljava/lang/Object; @@ -17330,7 +17353,7 @@ HSPLandroid/view/View;->getTransitionAlpha()F HSPLandroid/view/View;->getTransitionName()Ljava/lang/String; HSPLandroid/view/View;->getTranslationX()F HSPLandroid/view/View;->getTranslationY()F -HSPLandroid/view/View;->getTranslationZ()F +HSPLandroid/view/View;->getTranslationZ()F+]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; HSPLandroid/view/View;->getVerticalFadingEdgeLength()I HSPLandroid/view/View;->getVerticalScrollbarWidth()I HSPLandroid/view/View;->getViewRootImpl()Landroid/view/ViewRootImpl; @@ -17347,11 +17370,11 @@ 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;->getZ()F+]Landroid/view/View;megamorphic_types 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;->hasDefaultFocus()Z+]Landroid/view/View;missing_types HSPLandroid/view/View;->hasExplicitFocusable()Z HSPLandroid/view/View;->hasFocus()Z HSPLandroid/view/View;->hasFocusable()Z @@ -17362,7 +17385,7 @@ 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;->hasRtlSupport()Z+]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Landroid/content/Context;missing_types HSPLandroid/view/View;->hasSize()Z HSPLandroid/view/View;->hasTransientState()Z HSPLandroid/view/View;->hasTranslationTransientState()Z @@ -17375,22 +17398,22 @@ 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 +HSPLandroid/view/View;->initialAwakenScrollBars()Z+]Landroid/view/View;missing_types 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 -HSPLandroid/view/View;->invalidate(IIII)V +HSPLandroid/view/View;->initializeScrollbarsInternal(Landroid/content/res/TypedArray;)V+]Landroid/view/View;missing_types]Landroid/widget/ScrollBarDrawable;Landroid/widget/ScrollBarDrawable;]Landroid/view/ViewConfiguration;Landroid/view/ViewConfiguration;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/GradientDrawable; +HSPLandroid/view/View;->internalSetPadding(IIII)V+]Landroid/view/View;missing_types +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 -HSPLandroid/view/View;->invalidate(Z)V -HSPLandroid/view/View;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/view/View;->invalidateInternal(IIIIZZ)V -HSPLandroid/view/View;->invalidateOutline()V +HSPLandroid/view/View;->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;missing_types]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/view/ViewParent;missing_types]Landroid/graphics/drawable/Drawable;missing_types +HSPLandroid/view/View;->invalidateOutline()V+]Landroid/view/View;missing_types HSPLandroid/view/View;->invalidateParentCaches()V HSPLandroid/view/View;->invalidateParentIfNeeded()V HSPLandroid/view/View;->invalidateParentIfNeededAndWasQuickRejected()V -HSPLandroid/view/View;->invalidateViewProperty(ZZ)V +HSPLandroid/view/View;->invalidateViewProperty(ZZ)V+]Landroid/view/View;missing_types]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; HSPLandroid/view/View;->isAccessibilityFocused()Z HSPLandroid/view/View;->isAccessibilityFocusedViewOrHost()Z HSPLandroid/view/View;->isAccessibilityPane()Z @@ -17399,7 +17422,7 @@ HSPLandroid/view/View;->isActivated()Z HSPLandroid/view/View;->isAggregatedVisible()Z HSPLandroid/view/View;->isAttachedToWindow()Z HSPLandroid/view/View;->isAutoHandwritingEnabled()Z -HSPLandroid/view/View;->isAutofillable()Z +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 @@ -17417,7 +17440,7 @@ HSPLandroid/view/View;->isHardwareAccelerated()Z HSPLandroid/view/View;->isHorizontalFadingEdgeEnabled()Z HSPLandroid/view/View;->isHorizontalScrollBarEnabled()Z HSPLandroid/view/View;->isImportantForAccessibility()Z -HSPLandroid/view/View;->isImportantForAutofill()Z +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 @@ -17425,11 +17448,11 @@ 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;->isLayoutDirectionInherited()Z+]Landroid/view/View;missing_types 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;->isLayoutRtl()Z+]Landroid/view/View;missing_types HSPLandroid/view/View;->isLayoutValid()Z+]Landroid/view/View;missing_types HSPLandroid/view/View;->isLongClickable()Z HSPLandroid/view/View;->isNestedScrollingEnabled()Z @@ -17438,23 +17461,23 @@ 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;->isRtlCompatibilityMode()Z+]Landroid/view/View;missing_types]Landroid/content/Context;missing_types 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;->isTextAlignmentInherited()Z+]Landroid/view/View;missing_types HSPLandroid/view/View;->isTextAlignmentResolved()Z -HSPLandroid/view/View;->isTextDirectionInherited()Z +HSPLandroid/view/View;->isTextDirectionInherited()Z+]Landroid/view/View;missing_types 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;->isVisibleToUser(Landroid/graphics/Rect;)Z+]Landroid/view/View;missing_types +HSPLandroid/view/View;->jumpDrawablesToCurrentState()V+]Landroid/graphics/drawable/Drawable;megamorphic_types]Landroid/animation/StateListAnimator;Landroid/animation/StateListAnimator; 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 @@ -17464,32 +17487,32 @@ HSPLandroid/view/View;->measure(II)V+]Landroid/view/View;missing_types]Landroid/ 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;->notifyAppearedOrDisappearedForContentCaptureIfNeeded(Z)V+]Landroid/view/View;missing_types]Landroid/content/Context;missing_types HSPLandroid/view/View;->notifyAutofillManagerOnClick()V -HSPLandroid/view/View;->notifyEnterOrExitForAutoFillIfNeeded(Z)V +HSPLandroid/view/View;->notifyEnterOrExitForAutoFillIfNeeded(Z)V+]Landroid/view/View;missing_types]Landroid/view/autofill/AutofillManager;Landroid/view/autofill/AutofillManager; 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;->notifySubtreeAccessibilityStateChangedIfNeeded()V+]Landroid/view/accessibility/AccessibilityManager;Landroid/view/accessibility/AccessibilityManager; +HSPLandroid/view/View;->notifyViewAccessibilityStateChangedIfNeeded(I)V+]Landroid/view/accessibility/AccessibilityManager;Landroid/view/accessibility/AccessibilityManager; HSPLandroid/view/View;->offsetLeftAndRight(I)V -HSPLandroid/view/View;->offsetTopAndBottom(I)V +HSPLandroid/view/View;->offsetTopAndBottom(I)V+]Landroid/view/View;missing_types]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; 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 +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 +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 +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 +HSPLandroid/view/View;->onDrawForeground(Landroid/graphics/Canvas;)V+]Landroid/view/View;missing_types]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/drawable/Drawable;missing_types HSPLandroid/view/View;->onDrawHorizontalScrollBar(Landroid/graphics/Canvas;Landroid/graphics/drawable/Drawable;IIII)V -HSPLandroid/view/View;->onDrawScrollBars(Landroid/graphics/Canvas;)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 HSPLandroid/view/View;->onFilterTouchEventForSecurity(Landroid/view/MotionEvent;)Z @@ -17505,7 +17528,7 @@ HSPLandroid/view/View;->onMeasure(II)V HSPLandroid/view/View;->onProvideAutofillStructure(Landroid/view/ViewStructure;I)V HSPLandroid/view/View;->onProvideAutofillVirtualStructure(Landroid/view/ViewStructure;I)V HSPLandroid/view/View;->onProvideContentCaptureStructure(Landroid/view/ViewStructure;I)V -HSPLandroid/view/View;->onProvideStructure(Landroid/view/ViewStructure;II)V +HSPLandroid/view/View;->onProvideStructure(Landroid/view/ViewStructure;II)V+]Landroid/view/View;missing_types]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/view/ViewStructure;Landroid/view/contentcapture/ViewNode$ViewStructureImpl;,Landroid/app/assist/AssistStructure$ViewNodeBuilder;]Ljava/lang/CharSequence;Ljava/lang/String; HSPLandroid/view/View;->onResolveDrawables(I)V HSPLandroid/view/View;->onRestoreInstanceState(Landroid/os/Parcelable;)V HSPLandroid/view/View;->onRtlPropertiesChanged(I)V @@ -17516,7 +17539,7 @@ HSPLandroid/view/View;->onSetAlpha(I)Z HSPLandroid/view/View;->onSizeChanged(IIII)V HSPLandroid/view/View;->onStartTemporaryDetach()V HSPLandroid/view/View;->onTouchEvent(Landroid/view/MotionEvent;)Z -HSPLandroid/view/View;->onVisibilityAggregated(Z)V +HSPLandroid/view/View;->onVisibilityAggregated(Z)V+]Landroid/view/View;missing_types]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;]Landroid/graphics/drawable/Drawable;megamorphic_types]Landroid/view/autofill/AutofillManager;Landroid/view/autofill/AutofillManager;]Landroid/os/Handler;Landroid/view/View$VisibilityChangeForAutofillHandler;]Landroid/os/Message;Landroid/os/Message; HSPLandroid/view/View;->onVisibilityChanged(Landroid/view/View;I)V HSPLandroid/view/View;->onWindowFocusChanged(Z)V HSPLandroid/view/View;->onWindowSystemUiVisibilityChanged(I)V @@ -17537,20 +17560,20 @@ HSPLandroid/view/View;->post(Ljava/lang/Runnable;)Z HSPLandroid/view/View;->postDelayed(Ljava/lang/Runnable;J)Z HSPLandroid/view/View;->postInvalidate()V HSPLandroid/view/View;->postInvalidateDelayed(J)V -HSPLandroid/view/View;->postInvalidateOnAnimation()V +HSPLandroid/view/View;->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;->postSendViewScrolledAccessibilityEventCallback(II)V+]Landroid/view/accessibility/AccessibilityManager;Landroid/view/accessibility/AccessibilityManager; HSPLandroid/view/View;->postUpdate(Ljava/lang/Runnable;)V -HSPLandroid/view/View;->rebuildOutline()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;->refreshDrawableState()V+]Landroid/view/View;missing_types]Landroid/view/ViewParent;missing_types HSPLandroid/view/View;->registerPendingFrameMetricsObservers()V -HSPLandroid/view/View;->removeCallbacks(Ljava/lang/Runnable;)Z +HSPLandroid/view/View;->removeCallbacks(Ljava/lang/Runnable;)Z+]Landroid/os/Handler;Landroid/view/ViewRootImpl$ViewRootHandler;]Landroid/view/HandlerActionQueue;Landroid/view/HandlerActionQueue;]Landroid/view/Choreographer;Landroid/view/Choreographer; 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;->removeOnLayoutChangeListener(Landroid/view/View$OnLayoutChangeListener;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/view/View;->removePerformClickCallback()V HSPLandroid/view/View;->removeTapCallback()V HSPLandroid/view/View;->removeUnsetPressCallback()V @@ -17564,26 +17587,26 @@ HSPLandroid/view/View;->requestLayout()V+]Landroid/view/View;missing_types]Landr 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;->resetDisplayList()V+]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; HSPLandroid/view/View;->resetPressedState()V -HSPLandroid/view/View;->resetResolvedDrawables()V +HSPLandroid/view/View;->resetResolvedDrawables()V+]Landroid/view/View;missing_types HSPLandroid/view/View;->resetResolvedDrawablesInternal()V HSPLandroid/view/View;->resetResolvedLayoutDirection()V -HSPLandroid/view/View;->resetResolvedPadding()V +HSPLandroid/view/View;->resetResolvedPadding()V+]Landroid/view/View;missing_types HSPLandroid/view/View;->resetResolvedPaddingInternal()V HSPLandroid/view/View;->resetResolvedTextAlignment()V HSPLandroid/view/View;->resetResolvedTextDirection()V -HSPLandroid/view/View;->resetRtlProperties()V +HSPLandroid/view/View;->resetRtlProperties()V+]Landroid/view/View;missing_types HSPLandroid/view/View;->resetSubtreeAccessibilityStateChanged()V -HSPLandroid/view/View;->resolveDrawables()V -HSPLandroid/view/View;->resolveLayoutDirection()Z +HSPLandroid/view/View;->resolveDrawables()V+]Landroid/view/View;missing_types]Landroid/graphics/drawable/Drawable;megamorphic_types +HSPLandroid/view/View;->resolveLayoutDirection()Z+]Landroid/view/View;missing_types]Landroid/view/ViewParent;missing_types HSPLandroid/view/View;->resolveLayoutParams()V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup$LayoutParams;missing_types -HSPLandroid/view/View;->resolvePadding()V -HSPLandroid/view/View;->resolveRtlPropertiesIfNeeded()Z +HSPLandroid/view/View;->resolvePadding()V+]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal$SuppliedThreadLocal;]Landroid/graphics/drawable/Drawable;missing_types]Landroid/view/View;missing_types +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;->resolveTextAlignment()Z+]Landroid/view/View;missing_types +HSPLandroid/view/View;->resolveTextDirection()Z+]Landroid/view/View;missing_types]Landroid/view/ViewParent;missing_types 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 @@ -17595,7 +17618,7 @@ HSPLandroid/view/View;->scheduleDrawable(Landroid/graphics/drawable/Drawable;Lja 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;->sendAccessibilityEventInternal(I)V+]Landroid/view/accessibility/AccessibilityManager;Landroid/view/accessibility/AccessibilityManager; HSPLandroid/view/View;->setAccessibilityDelegate(Landroid/view/View$AccessibilityDelegate;)V HSPLandroid/view/View;->setAccessibilityHeading(Z)V HSPLandroid/view/View;->setAccessibilityLiveRegion(I)V @@ -17610,17 +17633,17 @@ 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 +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 -HSPLandroid/view/View;->setBackgroundRenderNodeProperties(Landroid/graphics/RenderNode;)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;megamorphic_types +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;->setContentDescription(Ljava/lang/CharSequence;)V+]Ljava/lang/CharSequence;Ljava/lang/String;,Ljava/lang/StringBuilder;]Landroid/view/View;missing_types]Ljava/lang/Object;Ljava/lang/StringBuilder;,Ljava/lang/String; 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; @@ -17628,7 +17651,7 @@ 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 +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 @@ -17641,7 +17664,7 @@ 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;->setImportantForAccessibility(I)V+]Landroid/view/View;missing_types HSPLandroid/view/View;->setImportantForAutofill(I)V HSPLandroid/view/View;->setImportantForContentCapture(I)V HSPLandroid/view/View;->setIsRootNamespace(Z)V @@ -17651,7 +17674,7 @@ HSPLandroid/view/View;->setKeyedTag(ILjava/lang/Object;)V HSPLandroid/view/View;->setLayerPaint(Landroid/graphics/Paint;)V HSPLandroid/view/View;->setLayerType(ILandroid/graphics/Paint;)V HSPLandroid/view/View;->setLayoutDirection(I)V -HSPLandroid/view/View;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V +HSPLandroid/view/View;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types HSPLandroid/view/View;->setLeft(I)V HSPLandroid/view/View;->setLeftTopRightBottom(IIII)V HSPLandroid/view/View;->setLongClickable(Z)V @@ -17676,7 +17699,7 @@ 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;->setPadding(IIII)V+]Landroid/view/View;missing_types HSPLandroid/view/View;->setPaddingRelative(IIII)V HSPLandroid/view/View;->setPivotX(F)V HSPLandroid/view/View;->setPivotY(F)V @@ -17705,7 +17728,7 @@ 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;->setTooltipText(Ljava/lang/CharSequence;)V+]Landroid/view/ViewConfiguration;Landroid/view/ViewConfiguration; HSPLandroid/view/View;->setTop(I)V HSPLandroid/view/View;->setTouchDelegate(Landroid/view/TouchDelegate;)V HSPLandroid/view/View;->setTransitionAlpha(F)V @@ -17715,23 +17738,24 @@ HSPLandroid/view/View;->setTranslationX(F)V HSPLandroid/view/View;->setTranslationY(F)V HSPLandroid/view/View;->setTranslationZ(F)V HSPLandroid/view/View;->setVerticalScrollBarEnabled(Z)V -HSPLandroid/view/View;->setVisibility(I)V +HSPLandroid/view/View;->setVisibility(I)V+]Landroid/view/View;missing_types 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 +HSPLandroid/view/View;->sizeChange(IIII)V+]Landroid/view/View;missing_types]Landroid/view/ViewOverlay;Landroid/view/ViewGroupOverlay;]Landroid/view/ViewGroup;missing_types +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;->transformFromViewToWindowSpace([I)V+]Landroid/view/View;megamorphic_types]Landroid/graphics/Matrix;Landroid/graphics/Matrix; +HSPLandroid/view/View;->transformMatrixToGlobal(Landroid/graphics/Matrix;)V+]Landroid/view/View;missing_types]Landroid/graphics/Matrix;Landroid/graphics/Matrix;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; 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;missing_types]Landroid/graphics/RecordingCanvas;Landroid/graphics/RecordingCanvas;]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; +HSPLandroid/view/View;->updateDisplayListIfDirty()Landroid/graphics/RenderNode;+]Landroid/view/ViewOverlay;Landroid/view/ViewGroupOverlay;]Landroid/view/View;missing_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 @@ -17747,7 +17771,7 @@ 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;->get(Landroid/content/Context;)Landroid/view/ViewConfiguration;+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/content/Context;missing_types HSPLandroid/view/ViewConfiguration;->getDoubleTapTimeout()I HSPLandroid/view/ViewConfiguration;->getLongPressTimeout()I HSPLandroid/view/ViewConfiguration;->getPressedStateDuration()I @@ -17794,7 +17818,7 @@ 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$LayoutParams;->setBaseAttributes(Landroid/content/res/TypedArray;II)V+]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; 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/Context;missing_types]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; HSPLandroid/view/ViewGroup$MarginLayoutParams;-><init>(Landroid/view/ViewGroup$LayoutParams;)V @@ -17820,14 +17844,14 @@ 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;I)V+]Landroid/view/View;missing_types 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;->addView(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V+]Landroid/view/ViewGroup;missing_types +HSPLandroid/view/ViewGroup;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V+]Landroid/view/ViewGroup;missing_types 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;->addViewInner(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;Z)V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types]Landroid/animation/LayoutTransition;Landroid/animation/LayoutTransition; +HSPLandroid/view/ViewGroup;->attachViewToParent(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V+]Landroid/view/View;missing_types HSPLandroid/view/ViewGroup;->bringChildToFront(Landroid/view/View;)V HSPLandroid/view/ViewGroup;->buildOrderedChildList()Ljava/util/ArrayList; HSPLandroid/view/ViewGroup;->buildTouchDispatchChildList()Ljava/util/ArrayList; @@ -17844,20 +17868,20 @@ 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;->destroyHardwareResources()V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types 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;->dispatchAttachedToWindow(Landroid/view/View$AttachInfo;I)V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types HSPLandroid/view/ViewGroup;->dispatchCancelPendingInputEvents()V -HSPLandroid/view/ViewGroup;->dispatchCollectViewAttributes(Landroid/view/View$AttachInfo;I)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;->dispatchDetachedFromWindow()V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types 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 +HSPLandroid/view/ViewGroup;->dispatchGetDisplayList()V+]Landroid/view/ViewOverlay;Landroid/view/ViewGroupOverlay;]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 @@ -17871,17 +17895,17 @@ 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/View;missing_types]Landroid/view/ViewGroup;missing_types]Landroid/view/MotionEvent;Landroid/view/MotionEvent;]Landroid/view/ViewGroup$TouchTarget;Landroid/view/ViewGroup$TouchTarget; +HSPLandroid/view/ViewGroup;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z+]Landroid/view/View;megamorphic_types]Landroid/view/ViewGroup;megamorphic_types]Landroid/view/MotionEvent;Landroid/view/MotionEvent;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/view/ViewGroup$TouchTarget;Landroid/view/ViewGroup$TouchTarget; 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;->dispatchViewAdded(Landroid/view/View;)V+]Landroid/view/ViewGroup;missing_types HSPLandroid/view/ViewGroup;->dispatchViewRemoved(Landroid/view/View;)V -HSPLandroid/view/ViewGroup;->dispatchVisibilityAggregated(Z)Z -HSPLandroid/view/ViewGroup;->dispatchVisibilityChanged(Landroid/view/View;I)V -HSPLandroid/view/ViewGroup;->dispatchWindowFocusChanged(Z)V +HSPLandroid/view/ViewGroup;->dispatchVisibilityAggregated(Z)Z+]Landroid/view/View;missing_types +HSPLandroid/view/ViewGroup;->dispatchVisibilityChanged(Landroid/view/View;I)V+]Landroid/view/View;missing_types +HSPLandroid/view/ViewGroup;->dispatchWindowFocusChanged(Z)V+]Landroid/view/View;missing_types HSPLandroid/view/ViewGroup;->dispatchWindowInsetsAnimationEnd(Landroid/view/WindowInsetsAnimation;)V HSPLandroid/view/ViewGroup;->dispatchWindowSystemUiVisiblityChanged(I)V -HSPLandroid/view/ViewGroup;->dispatchWindowVisibilityChanged(I)V +HSPLandroid/view/ViewGroup;->dispatchWindowVisibilityChanged(I)V+]Landroid/view/View;missing_types 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 @@ -17891,23 +17915,23 @@ 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;->findViewTraversal(I)Landroid/view/View;+]Landroid/view/View;missing_types 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;->gatherTransparentRegion(Landroid/graphics/Region;)Z+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types]Ljava/util/ArrayList;Ljava/util/ArrayList; 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; +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 +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;]Landroid/graphics/Matrix;Landroid/graphics/Matrix; HSPLandroid/view/ViewGroup;->getChildrenForAutofill(I)Landroid/view/ViewGroup$ChildListForAutoFillOrContentCapture; HSPLandroid/view/ViewGroup;->getChildrenForContentCapture()Landroid/view/ViewGroup$ChildListForAutoFillOrContentCapture; HSPLandroid/view/ViewGroup;->getClipChildren()Z @@ -17924,7 +17948,7 @@ HSPLandroid/view/ViewGroup;->getTouchTarget(Landroid/view/View;)Landroid/view/Vi 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;->hasChildWithZ()Z+]Landroid/view/View;missing_types HSPLandroid/view/ViewGroup;->hasDefaultFocus()Z HSPLandroid/view/ViewGroup;->hasFocus()Z HSPLandroid/view/ViewGroup;->hasFocusable(ZZ)Z @@ -17933,25 +17957,25 @@ 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;->initFromAttributes(Landroid/content/Context;Landroid/util/AttributeSet;II)V+]Landroid/view/ViewGroup;missing_types]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Landroid/content/Context;missing_types +HSPLandroid/view/ViewGroup;->initViewGroup()V+]Landroid/view/ViewGroup;missing_types]Landroid/content/Context;missing_types HSPLandroid/view/ViewGroup;->internalSetPadding(IIII)V -HSPLandroid/view/ViewGroup;->invalidateChild(Landroid/view/View;Landroid/graphics/Rect;)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;->jumpDrawablesToCurrentState()V+]Landroid/view/View;missing_types +HSPLandroid/view/ViewGroup;->layout(IIII)V+]Landroid/animation/LayoutTransition;Landroid/animation/LayoutTransition; 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;->notifySubtreeAccessibilityStateChangedIfNeeded()V+]Landroid/view/accessibility/AccessibilityManager;Landroid/view/accessibility/AccessibilityManager; 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 @@ -17979,7 +18003,7 @@ 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(ILandroid/view/View;)V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types 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 @@ -17988,20 +18012,20 @@ 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;->resetResolvedDrawables()V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types +HSPLandroid/view/ViewGroup;->resetResolvedLayoutDirection()V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types +HSPLandroid/view/ViewGroup;->resetResolvedPadding()V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types +HSPLandroid/view/ViewGroup;->resetResolvedTextAlignment()V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types +HSPLandroid/view/ViewGroup;->resetResolvedTextDirection()V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types +HSPLandroid/view/ViewGroup;->resetSubtreeAccessibilityStateChanged()V+]Landroid/view/View;missing_types HSPLandroid/view/ViewGroup;->resetTouchState()V -HSPLandroid/view/ViewGroup;->resolveDrawables()V -HSPLandroid/view/ViewGroup;->resolveLayoutDirection()Z +HSPLandroid/view/ViewGroup;->resolveDrawables()V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types +HSPLandroid/view/ViewGroup;->resolveLayoutDirection()Z+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types HSPLandroid/view/ViewGroup;->resolveLayoutParams()V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types -HSPLandroid/view/ViewGroup;->resolvePadding()V +HSPLandroid/view/ViewGroup;->resolvePadding()V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types 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;->resolveTextAlignment()Z+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types +HSPLandroid/view/ViewGroup;->resolveTextDirection()Z+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types HSPLandroid/view/ViewGroup;->restoreDefaultFocus()Z HSPLandroid/view/ViewGroup;->setAddStatesFromChildren(Z)V HSPLandroid/view/ViewGroup;->setAlwaysDrawnWithCacheEnabled(Z)V @@ -18019,13 +18043,13 @@ 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;->touchAccessibilityNodeProviderIfNeeded(Landroid/view/View;)V+]Landroid/content/Context;missing_types 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 +HSPLandroid/view/ViewOutlineProvider$1;->getOutline(Landroid/view/View;Landroid/graphics/Outline;)V+]Landroid/view/View;missing_types]Landroid/graphics/Outline;Landroid/graphics/Outline;]Landroid/graphics/drawable/Drawable;megamorphic_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 @@ -18051,7 +18075,7 @@ HSPLandroid/view/ViewPropertyAnimator$AnimatorEventListener;-><init>(Landroid/vi HSPLandroid/view/ViewPropertyAnimator$AnimatorEventListener;->onAnimationCancel(Landroid/animation/Animator;)V HSPLandroid/view/ViewPropertyAnimator$AnimatorEventListener;->onAnimationEnd(Landroid/animation/Animator;)V HSPLandroid/view/ViewPropertyAnimator$AnimatorEventListener;->onAnimationStart(Landroid/animation/Animator;)V -HSPLandroid/view/ViewPropertyAnimator$AnimatorEventListener;->onAnimationUpdate(Landroid/animation/ValueAnimator;)V +HSPLandroid/view/ViewPropertyAnimator$AnimatorEventListener;->onAnimationUpdate(Landroid/animation/ValueAnimator;)V+]Ljava/util/HashMap;Ljava/util/HashMap;]Landroid/view/View;Landroid/widget/LinearLayout;,Landroid/widget/FrameLayout;]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 @@ -18059,7 +18083,7 @@ 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;->cancel()V+]Ljava/util/HashMap;Ljava/util/HashMap;]Landroid/view/View;missing_types]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/view/ViewPropertyAnimator;->getValue(I)F HSPLandroid/view/ViewPropertyAnimator;->scaleX(F)Landroid/view/ViewPropertyAnimator; HSPLandroid/view/ViewPropertyAnimator;->scaleY(F)Landroid/view/ViewPropertyAnimator; @@ -18069,7 +18093,7 @@ HSPLandroid/view/ViewPropertyAnimator;->setListener(Landroid/animation/Animator$ 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;->startAnimation()V+]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/ValueAnimator;Landroid/animation/ValueAnimator; 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; @@ -18118,19 +18142,19 @@ HSPLandroid/view/ViewRootImpl$InputMetricsListener;-><init>(Landroid/view/ViewRo HSPLandroid/view/ViewRootImpl$InputMetricsListener;->onFrameMetricsAvailable(I)V 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;->deliver(Landroid/view/ViewRootImpl$QueuedInputEvent;)V+]Landroid/view/ViewRootImpl$InputStage;Landroid/view/ViewRootImpl$NativePostImeInputStage;,Landroid/view/ViewRootImpl$ViewPostImeInputStage;,Landroid/view/ViewRootImpl$EarlyPostImeInputStage;,Landroid/view/ViewRootImpl$SyntheticInputStage; 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$InputStage;->shouldDropInputEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)Z+]Landroid/view/InputEvent;Landroid/view/MotionEvent; +HSPLandroid/view/ViewRootImpl$InputStage;->traceEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;J)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/view/InputEvent;Landroid/view/MotionEvent; HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;-><init>(Landroid/view/ViewRootImpl;)V -HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->addView(Landroid/view/View;)V -HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->postIfNeededLocked()V -HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->removeView(Landroid/view/View;)V -HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->run()V +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+]Ljava/util/ArrayList;Ljava/util/ArrayList; +HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->run()V+]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 @@ -18154,7 +18178,7 @@ HSPLandroid/view/ViewRootImpl$SyntheticTrackballHandler;-><init>(Landroid/view/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 +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 @@ -18184,7 +18208,8 @@ HSPLandroid/view/ViewRootImpl$WindowInputEventReceiver;-><init>(Landroid/view/Vi 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$WindowInputEventReceiver;->onInputEvent(Landroid/view/InputEvent;)V+]Landroid/view/InputEventCompatProcessor;Landroid/view/InputEventCompatProcessor;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; +HSPLandroid/view/ViewRootImpl;->$r8$lambda$cb26dxdYlLa0pFTTRhgboKYoMu0(Landroid/view/ViewRootImpl;)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 @@ -18193,24 +18218,24 @@ HSPLandroid/view/ViewRootImpl;->-$$Nest$mprofileRendering(Landroid/view/ViewRoot 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 +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 HSPLandroid/view/ViewRootImpl;->canResolveTextDirection()Z -HSPLandroid/view/ViewRootImpl;->cancelInvalidate(Landroid/view/View;)V +HSPLandroid/view/ViewRootImpl;->cancelInvalidate(Landroid/view/View;)V+]Landroid/view/ViewRootImpl$ViewRootHandler;Landroid/view/ViewRootImpl$ViewRootHandler;]Landroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;Landroid/view/ViewRootImpl$InvalidateOnAnimationRunnable; 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 +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 -HSPLandroid/view/ViewRootImpl;->deliverInputEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)V+]Landroid/view/ViewRootImpl$InputStage;Landroid/view/ViewRootImpl$EarlyPostImeInputStage;]Landroid/view/ViewRootImpl$QueuedInputEvent;Landroid/view/ViewRootImpl$QueuedInputEvent;]Landroid/view/InputEvent;Landroid/view/MotionEvent; +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+]Landroid/view/ViewRootImpl$InputStage;Landroid/view/ViewRootImpl$EarlyPostImeInputStage;]Landroid/view/ViewRootImpl$QueuedInputEvent;Landroid/view/ViewRootImpl$QueuedInputEvent;]Landroid/view/InputEvent;Landroid/view/MotionEvent;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HSPLandroid/view/ViewRootImpl;->destroyHardwareRenderer()V HSPLandroid/view/ViewRootImpl;->destroyHardwareResources()V HSPLandroid/view/ViewRootImpl;->destroySurface()V @@ -18224,7 +18249,7 @@ 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 +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;->dispatchResized(Landroid/window/ClientWindowFrames;ZLandroid/util/MergedConfiguration;Landroid/view/InsetsState;ZZIIZ)V HSPLandroid/view/ViewRootImpl;->doConsumeBatchedInput(J)Z @@ -18237,7 +18262,7 @@ HSPLandroid/view/ViewRootImpl;->drawSoftware(Landroid/view/Surface;Landroid/view 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+]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;]Landroid/view/MotionEvent;Landroid/view/MotionEvent; +HSPLandroid/view/ViewRootImpl;->enqueueInputEvent(Landroid/view/InputEvent;Landroid/view/InputEventReceiver;IZ)V+]Ljava/lang/CharSequence;Ljava/lang/String;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;]Landroid/view/MotionEvent;Landroid/view/MotionEvent; HSPLandroid/view/ViewRootImpl;->ensureTouchMode(Z)Z HSPLandroid/view/ViewRootImpl;->ensureTouchModeLocally(Z)Z HSPLandroid/view/ViewRootImpl;->enterTouchMode()Z @@ -18254,9 +18279,9 @@ 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;->getDisplayId()I+]Landroid/view/Display;Landroid/view/Display; HSPLandroid/view/ViewRootImpl;->getHandwritingInitiator()Landroid/view/HandwritingInitiator; -HSPLandroid/view/ViewRootImpl;->getHostVisibility()I +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; @@ -18265,12 +18290,12 @@ HSPLandroid/view/ViewRootImpl;->getOnBackInvokedDispatcher()Landroid/window/Wind HSPLandroid/view/ViewRootImpl;->getOrCreateSurfaceSyncGroup()Landroid/window/SurfaceSyncGroup; HSPLandroid/view/ViewRootImpl;->getParent()Landroid/view/ViewParent; HSPLandroid/view/ViewRootImpl;->getRootMeasureSpec(III)I -HSPLandroid/view/ViewRootImpl;->getRunQueue()Landroid/view/HandlerActionQueue; +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; +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 @@ -18283,7 +18308,7 @@ HSPLandroid/view/ViewRootImpl;->handleContentCaptureFlush()V HSPLandroid/view/ViewRootImpl;->handleDispatchSystemUiVisibilityChanged()V HSPLandroid/view/ViewRootImpl;->handleResized(ILcom/android/internal/os/SomeArgs;)V HSPLandroid/view/ViewRootImpl;->handleWindowFocusChanged()V -HSPLandroid/view/ViewRootImpl;->invalidate()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 @@ -18308,14 +18333,14 @@ 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 HSPLandroid/view/ViewRootImpl;->mergeWithNextTransaction(Landroid/view/SurfaceControl$Transaction;J)V -HSPLandroid/view/ViewRootImpl;->notifyContentCaptureEvents()V -HSPLandroid/view/ViewRootImpl;->notifyDrawStarted(Z)V +HSPLandroid/view/ViewRootImpl;->notifyContentCaptureEvents()V+]Landroid/view/View;missing_types]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/view/contentcapture/ContentCaptureManager;Landroid/view/contentcapture/ContentCaptureManager;]Landroid/view/contentcapture/ContentCaptureSession;Landroid/view/contentcapture/MainContentCaptureSession;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/view/contentcapture/MainContentCaptureSession;Landroid/view/contentcapture/MainContentCaptureSession; +HSPLandroid/view/ViewRootImpl;->notifyDrawStarted(Z)V+]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/view/ViewRootImpl;->notifyInsetsChanged()V -HSPLandroid/view/ViewRootImpl;->notifyRendererOfFramePending()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 +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 @@ -18327,7 +18352,7 @@ HSPLandroid/view/ViewRootImpl;->performDraw(Landroid/window/SurfaceSyncGroup;)Z+ HSPLandroid/view/ViewRootImpl;->performHapticFeedback(IZ)Z HSPLandroid/view/ViewRootImpl;->performLayout(Landroid/view/WindowManager$LayoutParams;II)V HSPLandroid/view/ViewRootImpl;->performMeasure(II)V -HSPLandroid/view/ViewRootImpl;->performTraversals()V +HSPLandroid/view/ViewRootImpl;->performTraversals()V+]Landroid/view/ViewTreeObserver;Landroid/view/ViewTreeObserver;]Landroid/view/View;missing_types]Landroid/graphics/Point;Landroid/graphics/Point;]Landroid/content/res/CompatibilityInfo;Landroid/content/res/CompatibilityInfo$1;]Landroid/view/HandlerActionQueue;Landroid/view/HandlerActionQueue;]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer;]Landroid/content/Context;missing_types]Landroid/view/SurfaceControl;Landroid/view/SurfaceControl;]Lcom/android/internal/view/RootViewSurfaceTaker;Lcom/android/internal/policy/DecorView;]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;]Landroid/graphics/Region;Landroid/graphics/Region;]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;]Landroid/window/SurfaceSyncGroup;Landroid/window/SurfaceSyncGroup;]Landroid/content/res/Configuration;Landroid/content/res/Configuration;]Landroid/view/DisplayAdjustments;Landroid/view/DisplayAdjustments;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/window/WindowOnBackInvokedDispatcher;Landroid/window/WindowOnBackInvokedDispatcher;]Landroid/view/Display;Landroid/view/Display;]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction; HSPLandroid/view/ViewRootImpl;->playSoundEffect(I)V HSPLandroid/view/ViewRootImpl;->pokeDrawLockIfNeeded()V HSPLandroid/view/ViewRootImpl;->prepareSurfaces()V @@ -18352,7 +18377,7 @@ HSPLandroid/view/ViewRootImpl;->requestChildRectangleOnScreen(Landroid/view/View HSPLandroid/view/ViewRootImpl;->requestDisallowInterceptTouchEvent(Z)V HSPLandroid/view/ViewRootImpl;->requestFitSystemWindows()V HSPLandroid/view/ViewRootImpl;->requestLayout()V -HSPLandroid/view/ViewRootImpl;->requestLayoutDuringLayout(Landroid/view/View;)Z +HSPLandroid/view/ViewRootImpl;->requestLayoutDuringLayout(Landroid/view/View;)Z+]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/view/ViewRootImpl;->requestTransparentRegion(Landroid/view/View;)V HSPLandroid/view/ViewRootImpl;->scheduleConsumeBatchedInput()V+]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer;]Landroid/view/Choreographer;Landroid/view/Choreographer; 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; @@ -18363,7 +18388,7 @@ 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 -HSPLandroid/view/ViewRootImpl;->setLayoutParams(Landroid/view/WindowManager$LayoutParams;Z)V +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 @@ -18417,7 +18442,7 @@ 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;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V+]Landroid/content/Context;missing_types]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Landroid/view/ViewStub;Landroid/view/ViewStub; HSPLandroid/view/ViewStub;->inflate()Landroid/view/View; HSPLandroid/view/ViewStub;->setLayoutInflater(Landroid/view/LayoutInflater;)V HSPLandroid/view/ViewStub;->setLayoutResource(I)V @@ -18427,11 +18452,11 @@ 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;->add(Ljava/lang/Object;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList; +HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray;->addAll(Landroid/view/ViewTreeObserver$CopyOnWriteArray;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList; 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;->remove(Ljava/lang/Object;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList; 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 @@ -18442,9 +18467,9 @@ HSPLandroid/view/ViewTreeObserver$InternalInsetsInfo;->set(Landroid/view/ViewTre 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;->addOnDrawListener(Landroid/view/ViewTreeObserver$OnDrawListener;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/view/ViewTreeObserver;->addOnGlobalLayoutListener(Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V -HSPLandroid/view/ViewTreeObserver;->addOnPreDrawListener(Landroid/view/ViewTreeObserver$OnPreDrawListener;)V +HSPLandroid/view/ViewTreeObserver;->addOnPreDrawListener(Landroid/view/ViewTreeObserver$OnPreDrawListener;)V+]Landroid/view/ViewTreeObserver$CopyOnWriteArray;Landroid/view/ViewTreeObserver$CopyOnWriteArray; HSPLandroid/view/ViewTreeObserver;->addOnScrollChangedListener(Landroid/view/ViewTreeObserver$OnScrollChangedListener;)V HSPLandroid/view/ViewTreeObserver;->captureFrameCommitCallbacks()Ljava/util/ArrayList; HSPLandroid/view/ViewTreeObserver;->checkIsAlive()V @@ -18463,12 +18488,12 @@ 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;->merge(Landroid/view/ViewTreeObserver;)V+]Landroid/view/ViewTreeObserver$CopyOnWriteArray;Landroid/view/ViewTreeObserver$CopyOnWriteArray; 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;->removeOnDrawListener(Landroid/view/ViewTreeObserver$OnDrawListener;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/view/ViewTreeObserver;->removeOnGlobalLayoutListener(Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V -HSPLandroid/view/ViewTreeObserver;->removeOnPreDrawListener(Landroid/view/ViewTreeObserver$OnPreDrawListener;)V +HSPLandroid/view/ViewTreeObserver;->removeOnPreDrawListener(Landroid/view/ViewTreeObserver$OnPreDrawListener;)V+]Landroid/view/ViewTreeObserver$CopyOnWriteArray;Landroid/view/ViewTreeObserver$CopyOnWriteArray; HSPLandroid/view/ViewTreeObserver;->removeOnScrollChangedListener(Landroid/view/ViewTreeObserver$OnScrollChangedListener;)V HSPLandroid/view/Window;-><init>(Landroid/content/Context;)V HSPLandroid/view/Window;->addFlags(I)V @@ -18557,12 +18582,12 @@ 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;->getSystemWindowInsets()Landroid/graphics/Insets;+]Landroid/view/WindowInsets;Landroid/view/WindowInsets; +HSPLandroid/view/WindowInsets;->getSystemWindowInsetsAsRect()Landroid/graphics/Rect;+]Landroid/view/WindowInsets;Landroid/view/WindowInsets;]Landroid/graphics/Rect;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;->insetInsets([Landroid/graphics/Insets;IIII)[Landroid/graphics/Insets;+][Landroid/graphics/Insets;[Landroid/graphics/Insets; HSPLandroid/view/WindowInsets;->insetUnchecked(IIII)Landroid/view/WindowInsets; HSPLandroid/view/WindowInsets;->isConsumed()Z HSPLandroid/view/WindowInsets;->isRound()Z @@ -18582,7 +18607,7 @@ HSPLandroid/view/WindowManager$LayoutParams$1;->createFromParcel(Landroid/os/Par 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 +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 @@ -18597,7 +18622,7 @@ 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 +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 @@ -18658,7 +18683,7 @@ HSPLandroid/view/accessibility/AccessibilityManager;->getRecommendedTimeoutMilli HSPLandroid/view/accessibility/AccessibilityManager;->getServiceLocked()Landroid/view/accessibility/IAccessibilityManager; HSPLandroid/view/accessibility/AccessibilityManager;->hasAnyDirectConnection()Z HSPLandroid/view/accessibility/AccessibilityManager;->initialFocusAppearanceLocked(Landroid/content/res/Resources;)V -HSPLandroid/view/accessibility/AccessibilityManager;->isEnabled()Z +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 @@ -18674,8 +18699,8 @@ HSPLandroid/view/accessibility/AccessibilityManager;->updateFocusAppearanceLocke 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/AccessibilityNodeIdManager;->registerViewWithId(Landroid/view/View;I)V+]Landroid/view/accessibility/WeakSparseArray;Landroid/view/accessibility/WeakSparseArray; +HSPLandroid/view/accessibility/AccessibilityNodeIdManager;->unregisterViewWithId(I)V+]Landroid/view/accessibility/WeakSparseArray;Landroid/view/accessibility/WeakSparseArray; 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 @@ -18715,9 +18740,9 @@ HSPLandroid/view/accessibility/IAccessibilityManagerClient$Stub;->getTransaction 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/accessibility/WeakSparseArray;->append(ILjava/lang/Object;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray; +HSPLandroid/view/accessibility/WeakSparseArray;->remove(I)V+]Landroid/util/SparseArray;Landroid/util/SparseArray; +HSPLandroid/view/accessibility/WeakSparseArray;->removeUnreachableValues()V+]Ljava/lang/ref/ReferenceQueue;Ljava/lang/ref/ReferenceQueue; HSPLandroid/view/animation/AccelerateDecelerateInterpolator;-><init>()V HSPLandroid/view/animation/AccelerateDecelerateInterpolator;->createNativeInterpolator()J HSPLandroid/view/animation/AccelerateDecelerateInterpolator;->getInterpolation(F)F @@ -18745,12 +18770,12 @@ 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;->getInvalidateRegion(IIIILandroid/graphics/RectF;Landroid/view/animation/Transformation;)V+]Landroid/graphics/RectF;Landroid/graphics/RectF;]Landroid/graphics/Matrix;Landroid/graphics/Matrix;]Landroid/view/animation/Transformation;Landroid/view/animation/Transformation; 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;)Z+]Landroid/view/animation/Animation;missing_types]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard; 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;->getTransformationAt(FLandroid/view/animation/Transformation;)V+]Landroid/view/animation/Interpolator;missing_types HSPLandroid/view/animation/Animation;->hasAlpha()Z HSPLandroid/view/animation/Animation;->hasEnded()Z HSPLandroid/view/animation/Animation;->hasStarted()Z @@ -18785,7 +18810,7 @@ HSPLandroid/view/animation/AnimationSet;-><init>(Landroid/content/Context;Landro 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;->getTransformation(JLandroid/view/animation/Transformation;)Z+]Landroid/view/animation/AnimationSet;missing_types]Landroid/view/animation/Transformation;Landroid/view/animation/Transformation;]Landroid/view/animation/Animation;Landroid/view/animation/AnimationSet;,Landroid/view/animation/TranslateAnimation;]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/view/animation/AnimationSet;->hasAlpha()Z HSPLandroid/view/animation/AnimationSet;->init()V HSPLandroid/view/animation/AnimationSet;->initialize(IIII)V @@ -18807,12 +18832,12 @@ 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;->createInterpolatorFromXml(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Lorg/xmlpull/v1/XmlPullParser;)Landroid/view/animation/Interpolator;+]Ljava/lang/String;Ljava/lang/String;]Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/XmlBlock$Parser; +HSPLandroid/view/animation/AnimationUtils;->currentAnimationTimeMillis()J+]Ljava/lang/ThreadLocal;Landroid/view/animation/AnimationUtils$1; 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/Context;I)Landroid/view/animation/Interpolator;+]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/content/res/XmlResourceParser;Landroid/content/res/XmlBlock$Parser; HSPLandroid/view/animation/AnimationUtils;->loadInterpolator(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;I)Landroid/view/animation/Interpolator; -HSPLandroid/view/animation/AnimationUtils;->unlockAnimationClock()V +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 @@ -18827,12 +18852,12 @@ 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;-><init>(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;)V+]Landroid/view/animation/PathInterpolator;Landroid/view/animation/PathInterpolator;]Landroid/content/res/Resources$Theme;Landroid/content/res/Resources$Theme;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; HSPLandroid/view/animation/PathInterpolator;->createNativeInterpolator()J HSPLandroid/view/animation/PathInterpolator;->getInterpolation(F)F -HSPLandroid/view/animation/PathInterpolator;->initCubic(FFFF)V -HSPLandroid/view/animation/PathInterpolator;->initPath(Landroid/graphics/Path;)V -HSPLandroid/view/animation/PathInterpolator;->parseInterpolatorFromTypeArray(Landroid/content/res/TypedArray;)V +HSPLandroid/view/animation/PathInterpolator;->initCubic(FFFF)V+]Landroid/graphics/Path;Landroid/graphics/Path; +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+]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; 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 @@ -18840,16 +18865,16 @@ 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;->compose(Landroid/view/animation/Transformation;)V+]Landroid/graphics/Matrix;Landroid/graphics/Matrix;]Landroid/view/animation/Transformation;Landroid/view/animation/Transformation; 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;->set(Landroid/view/animation/Transformation;)V+]Landroid/graphics/Matrix;Landroid/graphics/Matrix;]Landroid/view/animation/Transformation;Landroid/view/animation/Transformation;]Landroid/graphics/Rect;Landroid/graphics/Rect; 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;->applyTransformation(FLandroid/view/animation/Transformation;)V+]Landroid/graphics/Matrix;Landroid/graphics/Matrix;]Landroid/view/animation/Transformation;Landroid/view/animation/Transformation; HSPLandroid/view/animation/TranslateAnimation;->initialize(IIII)V HSPLandroid/view/autofill/AutofillClientController;-><clinit>()V HSPLandroid/view/autofill/AutofillClientController;-><init>(Landroid/app/Activity;)V @@ -18895,7 +18920,8 @@ 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/AutofillId;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillId;]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/view/autofill/AutofillManager$$ExternalSyntheticLambda0;-><init>(Landroid/view/autofill/IAutoFillManager;Landroid/view/autofill/IAutoFillManagerClient;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; @@ -18922,7 +18948,7 @@ HSPLandroid/view/autofill/AutofillManager;->notifyViewEnteredForAugmentedAutofil 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;->notifyViewVisibilityChangedInternal(Landroid/view/View;IZZ)V+]Landroid/view/View;missing_types HSPLandroid/view/autofill/AutofillManager;->onActivityFinishing()V HSPLandroid/view/autofill/AutofillManager;->onInvisibleForAutofill(Z)V HSPLandroid/view/autofill/AutofillManager;->onSaveInstanceState(Landroid/os/Bundle;)V @@ -18955,7 +18981,7 @@ HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->getAutofillServiceCompon 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$Proxy;->updateSession(ILandroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;III)V+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel;]Landroid/view/autofill/IAutoFillManager$Stub$Proxy;Landroid/view/autofill/IAutoFillManager$Stub$Proxy; 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 @@ -18975,14 +19001,14 @@ HSPLandroid/view/contentcapture/ContentCaptureEvent;->setInsets(Landroid/graphic 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/ContentCaptureEvent;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; 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;->getMainContentCaptureSession()Landroid/view/contentcapture/MainContentCaptureSession; -HSPLandroid/view/contentcapture/ContentCaptureManager;->isContentCaptureEnabled()Z +HSPLandroid/view/contentcapture/ContentCaptureManager;->isContentCaptureEnabled()Z+]Landroid/view/contentcapture/MainContentCaptureSession;Landroid/view/contentcapture/MainContentCaptureSession; 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 @@ -19029,7 +19055,7 @@ HSPLandroid/view/contentcapture/MainContentCaptureSession$SessionStateReceiver;- 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;->flush(I)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/os/Handler;Landroid/os/Handler;]Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/atomic/AtomicBoolean;]Landroid/view/contentcapture/IContentCaptureDirectManager;Landroid/view/contentcapture/IContentCaptureDirectManager$Stub$Proxy;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/util/LocalLog;Landroid/util/LocalLog; HSPLandroid/view/contentcapture/MainContentCaptureSession;->flushIfNeeded(I)V HSPLandroid/view/contentcapture/MainContentCaptureSession;->getActivityName()Ljava/lang/String; HSPLandroid/view/contentcapture/MainContentCaptureSession;->getDebugState()Ljava/lang/String; @@ -19038,24 +19064,24 @@ HSPLandroid/view/contentcapture/MainContentCaptureSession;->hasStarted()Z HSPLandroid/view/contentcapture/MainContentCaptureSession;->internalNotifyViewAppeared(Landroid/view/contentcapture/ViewNode$ViewStructureImpl;)V HSPLandroid/view/contentcapture/MainContentCaptureSession;->internalNotifyViewTextChanged(Landroid/view/autofill/AutofillId;Ljava/lang/CharSequence;)V HSPLandroid/view/contentcapture/MainContentCaptureSession;->internalNotifyViewTreeEvent(Z)V -HSPLandroid/view/contentcapture/MainContentCaptureSession;->isContentCaptureEnabled()Z -HSPLandroid/view/contentcapture/MainContentCaptureSession;->isDisabled()Z -HSPLandroid/view/contentcapture/MainContentCaptureSession;->notifyViewAppeared(ILandroid/view/contentcapture/ViewNode$ViewStructureImpl;)V +HSPLandroid/view/contentcapture/MainContentCaptureSession;->isContentCaptureEnabled()Z+]Landroid/view/contentcapture/ContentCaptureManager;Landroid/view/contentcapture/ContentCaptureManager; +HSPLandroid/view/contentcapture/MainContentCaptureSession;->isDisabled()Z+]Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/atomic/AtomicBoolean; +HSPLandroid/view/contentcapture/MainContentCaptureSession;->notifyViewAppeared(ILandroid/view/contentcapture/ViewNode$ViewStructureImpl;)V+]Landroid/os/Handler;Landroid/os/Handler; HSPLandroid/view/contentcapture/MainContentCaptureSession;->notifyViewDisappeared(ILandroid/view/autofill/AutofillId;)V HSPLandroid/view/contentcapture/MainContentCaptureSession;->notifyViewInsetsChanged(ILandroid/graphics/Insets;)V -HSPLandroid/view/contentcapture/MainContentCaptureSession;->notifyViewTextChanged(ILandroid/view/autofill/AutofillId;Ljava/lang/CharSequence;)V +HSPLandroid/view/contentcapture/MainContentCaptureSession;->notifyViewTextChanged(ILandroid/view/autofill/AutofillId;Ljava/lang/CharSequence;)V+]Landroid/os/Handler;Landroid/os/Handler;]Ljava/lang/CharSequence;missing_types HSPLandroid/view/contentcapture/MainContentCaptureSession;->notifyViewTreeEvent(IZ)V 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;->scheduleFlush(IZ)V+]Landroid/os/Handler;Landroid/os/Handler;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/atomic/AtomicBoolean; 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;->sendEvent(Landroid/view/contentcapture/ContentCaptureEvent;Z)V+]Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/atomic/AtomicBoolean;]Landroid/view/contentcapture/ContentCaptureEvent;Landroid/view/contentcapture/ContentCaptureEvent;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/view/contentcapture/MainContentCaptureSession;Landroid/view/contentcapture/MainContentCaptureSession; 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$ViewNodeText;->writeToParcel(Landroid/os/Parcel;Z)V+]Ljava/lang/CharSequence;Ljava/lang/String;,Landroid/text/SpannableStringBuilder;]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;-><init>(Landroid/view/View;)V+]Landroid/view/View;missing_types 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 @@ -19086,7 +19112,7 @@ 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;->writeSelfToParcel(Landroid/os/Parcel;I)V+]Landroid/view/contentcapture/ViewNode$ViewNodeText;Landroid/view/contentcapture/ViewNode$ViewNodeText;]Landroid/os/Parcel;Landroid/os/Parcel; 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 @@ -19201,7 +19227,7 @@ HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;-><init>(Landroid/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;->onViewDetachedFromWindow(Landroid/view/View;Landroid/view/ViewRootImpl;)V+]Landroid/view/View;missing_types]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; 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 @@ -19228,7 +19254,7 @@ HSPLandroid/view/inputmethod/InputMethodManager;-><init>(Lcom/android/internal/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;->checkFocusInternalLocked(ZLandroid/view/ViewRootImpl;)Z+]Landroid/view/inputmethod/InputMethodManager;Landroid/view/inputmethod/InputMethodManager; HSPLandroid/view/inputmethod/InputMethodManager;->clearConnectionLocked()V HSPLandroid/view/inputmethod/InputMethodManager;->closeCurrentInput()V HSPLandroid/view/inputmethod/InputMethodManager;->createInputConnection(Landroid/view/View;)Landroid/util/Pair; @@ -19241,12 +19267,12 @@ 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;->forContext(Landroid/content/Context;)Landroid/view/inputmethod/InputMethodManager;+]Landroid/content/res/Resources;Landroid/content/res/Resources; +HSPLandroid/view/inputmethod/InputMethodManager;->forContextInternal(ILandroid/os/Looper;)Landroid/view/inputmethod/InputMethodManager;+]Landroid/util/SparseArray;Landroid/util/SparseArray; 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;->getFallbackInputMethodManagerIfNecessary(Landroid/view/View;)Landroid/view/inputmethod/InputMethodManager;+]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; 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 @@ -19255,7 +19281,7 @@ HSPLandroid/view/inputmethod/InputMethodManager;->hideSoftInputFromWindow(Landro 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;->isActive(Landroid/view/View;)Z+]Landroid/view/inputmethod/InputMethodManager;Landroid/view/inputmethod/InputMethodManager; HSPLandroid/view/inputmethod/InputMethodManager;->isCursorAnchorInfoEnabled()Z HSPLandroid/view/inputmethod/InputMethodManager;->isFullscreenMode()Z HSPLandroid/view/inputmethod/InputMethodManager;->isImeSessionAvailableLocked()Z @@ -19428,7 +19454,7 @@ HSPLandroid/webkit/IWebViewUpdateService$Stub$Proxy;->getCurrentWebViewPackage() 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;->getMimeTypeFromExtension(Ljava/lang/String;)Ljava/lang/String;+]Llibcore/content/type/MimeMap;Llibcore/content/type/MimeMap; HSPLandroid/webkit/MimeTypeMap;->getSingleton()Landroid/webkit/MimeTypeMap; HSPLandroid/webkit/URLUtil;->isFileUrl(Ljava/lang/String;)Z HSPLandroid/webkit/URLUtil;->isHttpUrl(Ljava/lang/String;)Z @@ -19548,12 +19574,12 @@ 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;->computeVerticalScrollExtent()I+]Landroid/widget/AbsListView;Lcom/android/internal/app/AlertController$RecycleListView; +HSPLandroid/widget/AbsListView;->computeVerticalScrollOffset()I+]Landroid/widget/AbsListView;Lcom/android/internal/app/AlertController$RecycleListView; 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;->draw(Landroid/graphics/Canvas;)V+]Landroid/widget/EdgeEffect;Landroid/widget/EdgeEffect;]Landroid/widget/AbsListView;Landroid/widget/ListView;,Lcom/android/internal/app/AlertController$RecycleListView;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas; HSPLandroid/widget/AbsListView;->drawableStateChanged()V HSPLandroid/widget/AbsListView;->generateDefaultLayoutParams()Landroid/view/ViewGroup$LayoutParams; HSPLandroid/widget/AbsListView;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/view/ViewGroup$LayoutParams; @@ -19684,7 +19710,7 @@ HSPLandroid/widget/AutoCompleteTextView$DropDownItemClickListener;-><init>(Landr 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;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;IILandroid/content/res/Resources$Theme;)V+]Landroid/widget/ListPopupWindow;Landroid/widget/ListPopupWindow;]Landroid/content/Context;Landroid/view/ContextThemeWrapper;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; HSPLandroid/widget/AutoCompleteTextView;->setCompletionHint(Ljava/lang/CharSequence;)V HSPLandroid/widget/BaseAdapter;-><init>()V HSPLandroid/widget/BaseAdapter;->areAllItemsEnabled()Z @@ -19711,7 +19737,7 @@ 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;->getCompoundPaddingLeft()I+]Landroid/widget/CompoundButton;Landroid/widget/Switch; HSPLandroid/widget/CompoundButton;->getCompoundPaddingRight()I HSPLandroid/widget/CompoundButton;->getHorizontalOffsetForDrawables()I HSPLandroid/widget/CompoundButton;->isChecked()Z @@ -19730,7 +19756,7 @@ 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 +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 @@ -19740,7 +19766,7 @@ HSPLandroid/widget/EdgeEffect;->onAbsorb(I)V HSPLandroid/widget/EdgeEffect;->onPull(FF)V HSPLandroid/widget/EdgeEffect;->onPullDistance(FF)F HSPLandroid/widget/EdgeEffect;->onRelease()V -HSPLandroid/widget/EdgeEffect;->setSize(II)V +HSPLandroid/widget/EdgeEffect;->setSize(II)V+]Landroid/graphics/Rect;Landroid/graphics/Rect; HSPLandroid/widget/EdgeEffect;->update()V HSPLandroid/widget/EdgeEffect;->updateSpring()V HSPLandroid/widget/EditText;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V @@ -19763,7 +19789,7 @@ HSPLandroid/widget/Editor$AccessibilitySmartActions;-><init>(Landroid/widget/Tex 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 +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 @@ -19806,10 +19832,10 @@ HSPLandroid/widget/Editor$InsertionPointCursorController;->isCursorBeingModified 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;->addSubscriber(Landroid/widget/Editor$TextViewPositionListener;Z)V+]Landroid/view/ViewTreeObserver;Landroid/view/ViewTreeObserver; HSPLandroid/widget/Editor$PositionListener;->onPreDraw()Z+]Landroid/widget/Editor$TextViewPositionListener;Landroid/widget/Editor$CursorAnchorInfoNotifier; HSPLandroid/widget/Editor$PositionListener;->onScrollChanged()V -HSPLandroid/widget/Editor$PositionListener;->removeSubscriber(Landroid/widget/Editor$TextViewPositionListener;)V +HSPLandroid/widget/Editor$PositionListener;->removeSubscriber(Landroid/widget/Editor$TextViewPositionListener;)V+]Landroid/view/ViewTreeObserver;Landroid/view/ViewTreeObserver; HSPLandroid/widget/Editor$PositionListener;->updatePosition()V HSPLandroid/widget/Editor$ProcessTextIntentActionsHandler;-><init>(Landroid/widget/Editor;)V HSPLandroid/widget/Editor$SelectionModifierCursorController;->getMinTouchOffset()I @@ -19838,8 +19864,8 @@ HSPLandroid/widget/Editor$UndoInputFilter;->restoreInstanceState(Landroid/os/Par 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;-><init>(Landroid/widget/TextView;)V+]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/content/UndoManager;Landroid/content/UndoManager;]Landroid/content/Context;missing_types +HSPLandroid/widget/Editor;->addSpanWatchers(Landroid/text/Spannable;)V+]Landroid/text/Spannable;Landroid/text/SpannableString; HSPLandroid/widget/Editor;->adjustInputType(ZZZZ)V HSPLandroid/widget/Editor;->beginBatchEdit()V HSPLandroid/widget/Editor;->clampHorizontalPosition(Landroid/graphics/drawable/Drawable;F)I @@ -19851,12 +19877,12 @@ HSPLandroid/widget/Editor;->drawHardwareAcceleratedInner(Landroid/graphics/Canva HSPLandroid/widget/Editor;->endBatchEdit()V HSPLandroid/widget/Editor;->ensureEndedBatchEdit()V HSPLandroid/widget/Editor;->ensureNoSelectionIfNonSelectable()V -HSPLandroid/widget/Editor;->extractedTextModeWillBeStarted()Z +HSPLandroid/widget/Editor;->extractedTextModeWillBeStarted()Z+]Landroid/view/inputmethod/InputMethodManager;Landroid/view/inputmethod/InputMethodManager; 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;->getInputMethodManager()Landroid/view/inputmethod/InputMethodManager;+]Landroid/content/Context;missing_types HSPLandroid/widget/Editor;->getInsertionController()Landroid/widget/Editor$InsertionPointCursorController; HSPLandroid/widget/Editor;->getLastTapPosition()I HSPLandroid/widget/Editor;->getPositionListener()Landroid/widget/Editor$PositionListener; @@ -19876,9 +19902,9 @@ 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;->onAttachedToWindow()V+]Landroid/widget/Editor$PositionListener;Landroid/widget/Editor$PositionListener;]Landroid/view/ViewTreeObserver;Landroid/view/ViewTreeObserver;]Ljava/lang/CharSequence;Landroid/text/SpannableString; +HSPLandroid/widget/Editor;->onDetachedFromWindow()V+]Landroid/widget/Editor$PositionListener;Landroid/widget/Editor$PositionListener;]Landroid/view/ViewTreeObserver;Landroid/view/ViewTreeObserver;]Landroid/widget/TextViewOnReceiveContentListener;Landroid/widget/TextViewOnReceiveContentListener;]Landroid/widget/Editor;Landroid/widget/Editor; +HSPLandroid/widget/Editor;->onDraw(Landroid/graphics/Canvas;Landroid/text/Layout;Ljava/util/List;Ljava/util/List;Landroid/graphics/Path;Landroid/graphics/Paint;I)V+]Landroid/view/inputmethod/InputMethodManager;Landroid/view/inputmethod/InputMethodManager;]Landroid/widget/SelectionActionModeHelper;Landroid/widget/SelectionActionModeHelper;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas; HSPLandroid/widget/Editor;->onFocusChanged(ZI)V HSPLandroid/widget/Editor;->onLocaleChanged()V HSPLandroid/widget/Editor;->onScreenStateChanged(I)V @@ -19886,14 +19912,14 @@ HSPLandroid/widget/Editor;->onScrollChanged()V HSPLandroid/widget/Editor;->onTouchEvent(Landroid/view/MotionEvent;)V HSPLandroid/widget/Editor;->onTouchUpEvent(Landroid/view/MotionEvent;)V HSPLandroid/widget/Editor;->onWindowFocusChanged(Z)V -HSPLandroid/widget/Editor;->prepareCursorControllers()V -HSPLandroid/widget/Editor;->refreshTextActionMode()V +HSPLandroid/widget/Editor;->prepareCursorControllers()V+]Landroid/view/View;missing_types]Landroid/widget/Editor;Landroid/widget/Editor; +HSPLandroid/widget/Editor;->refreshTextActionMode()V+]Landroid/widget/Editor;Landroid/widget/Editor; HSPLandroid/widget/Editor;->reportExtractedText()Z HSPLandroid/widget/Editor;->restoreInstanceState(Landroid/os/ParcelableParcel;)V -HSPLandroid/widget/Editor;->resumeBlink()V +HSPLandroid/widget/Editor;->resumeBlink()V+]Landroid/widget/Editor;Landroid/widget/Editor; HSPLandroid/widget/Editor;->saveInstanceState()Landroid/os/ParcelableParcel; HSPLandroid/widget/Editor;->scheduleRestartInputForSetText()V -HSPLandroid/widget/Editor;->sendOnTextChanged(III)V +HSPLandroid/widget/Editor;->sendOnTextChanged(III)V+]Landroid/widget/Editor;Landroid/widget/Editor;]Landroid/widget/SelectionActionModeHelper;Landroid/widget/SelectionActionModeHelper; HSPLandroid/widget/Editor;->sendUpdateSelection()V HSPLandroid/widget/Editor;->setFrame()V HSPLandroid/widget/Editor;->setTransformationMethod(Landroid/text/method/TransformationMethod;)V @@ -19918,12 +19944,12 @@ HSPLandroid/widget/ForwardingListener;->onViewAttachedToWindow(Landroid/view/Vie 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/content/Context;Landroid/util/AttributeSet;)V+]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; 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;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V+]Landroid/widget/FrameLayout;missing_types]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; 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; @@ -20014,7 +20040,7 @@ HSPLandroid/widget/HorizontalScrollView;->getAccessibilityClassName()Ljava/lang/ 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;->measureChildWithMargins(Landroid/view/View;IIII)V+]Landroid/view/View;Landroid/widget/LinearLayout; HSPLandroid/widget/HorizontalScrollView;->onInterceptTouchEvent(Landroid/view/MotionEvent;)Z HSPLandroid/widget/HorizontalScrollView;->onLayout(ZIIII)V HSPLandroid/widget/HorizontalScrollView;->onMeasure(II)V @@ -20034,13 +20060,13 @@ HSPLandroid/widget/ImageView$ScaleType;->values()[Landroid/widget/ImageView$Scal 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 +HSPLandroid/widget/ImageView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V+]Landroid/widget/ImageView;missing_types]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Landroid/content/Context;missing_types HSPLandroid/widget/ImageView;->applyAlpha()V -HSPLandroid/widget/ImageView;->applyColorFilter()V -HSPLandroid/widget/ImageView;->applyImageTint()V +HSPLandroid/widget/ImageView;->applyColorFilter()V+]Landroid/graphics/drawable/Drawable;missing_types +HSPLandroid/widget/ImageView;->applyImageTint()V+]Landroid/widget/ImageView;missing_types]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/VectorDrawable;,Landroid/graphics/drawable/BitmapDrawable; HSPLandroid/widget/ImageView;->applyXfermode()V HSPLandroid/widget/ImageView;->clearColorFilter()V -HSPLandroid/widget/ImageView;->configureBounds()V +HSPLandroid/widget/ImageView;->configureBounds()V+]Landroid/graphics/RectF;Landroid/graphics/RectF;]Landroid/graphics/Matrix;Landroid/graphics/Matrix;]Landroid/graphics/drawable/Drawable;missing_types]Landroid/widget/ImageView;missing_types HSPLandroid/widget/ImageView;->drawableHotspotChanged(FF)V HSPLandroid/widget/ImageView;->drawableStateChanged()V HSPLandroid/widget/ImageView;->getAccessibilityClassName()Ljava/lang/CharSequence; @@ -20049,18 +20075,18 @@ 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;->initImageView()V+]Landroid/widget/ImageView;missing_types +HSPLandroid/widget/ImageView;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V+]Landroid/widget/ImageView;missing_types]Landroid/graphics/drawable/Drawable;megamorphic_types HSPLandroid/widget/ImageView;->isFilledByImage()Z -HSPLandroid/widget/ImageView;->isOpaque()Z -HSPLandroid/widget/ImageView;->jumpDrawablesToCurrentState()V +HSPLandroid/widget/ImageView;->isOpaque()Z+]Landroid/graphics/drawable/Drawable;missing_types +HSPLandroid/widget/ImageView;->jumpDrawablesToCurrentState()V+]Landroid/graphics/drawable/Drawable;megamorphic_types 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;->onDraw(Landroid/graphics/Canvas;)V+]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas;,Landroid/graphics/Canvas;]Landroid/graphics/drawable/Drawable;missing_types +HSPLandroid/widget/ImageView;->onMeasure(II)V+]Landroid/widget/ImageView;missing_types HSPLandroid/widget/ImageView;->onRtlPropertiesChanged(I)V -HSPLandroid/widget/ImageView;->onVisibilityAggregated(Z)V +HSPLandroid/widget/ImageView;->onVisibilityAggregated(Z)V+]Landroid/graphics/drawable/Drawable;missing_types HSPLandroid/widget/ImageView;->resizeFromDrawable()V HSPLandroid/widget/ImageView;->resolveAdjustedSize(III)I HSPLandroid/widget/ImageView;->resolveUri()V @@ -20074,7 +20100,7 @@ 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;->setImageDrawable(Landroid/graphics/drawable/Drawable;)V+]Landroid/widget/ImageView;missing_types HSPLandroid/widget/ImageView;->setImageMatrix(Landroid/graphics/Matrix;)V HSPLandroid/widget/ImageView;->setImageResource(I)V HSPLandroid/widget/ImageView;->setImageTintBlendMode(Landroid/graphics/BlendMode;)V @@ -20084,24 +20110,24 @@ 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;->updateDrawable(Landroid/graphics/drawable/Drawable;)V+]Landroid/widget/ImageView;missing_types]Landroid/graphics/drawable/Drawable;megamorphic_types 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/content/Context;Landroid/util/AttributeSet;)V+]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Landroid/content/Context;missing_types 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 +HSPLandroid/widget/LinearLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V+]Landroid/content/Context;missing_types]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Landroid/widget/LinearLayout;missing_types 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/util/AttributeSet;)Landroid/view/ViewGroup$LayoutParams;+]Landroid/widget/LinearLayout;Landroid/widget/LinearLayout; +HSPLandroid/widget/LinearLayout;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/widget/LinearLayout$LayoutParams;+]Landroid/widget/LinearLayout;Landroid/widget/LinearLayout; 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; @@ -20115,20 +20141,20 @@ 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;->layoutHorizontal(IIII)V+]Landroid/view/View;missing_types]Landroid/widget/LinearLayout;missing_types 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 -HSPLandroid/widget/LinearLayout;->measureHorizontal(II)V +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;missing_types HSPLandroid/widget/LinearLayout;->measureVertical(II)V+]Landroid/view/View;missing_types]Landroid/widget/LinearLayout;missing_types HSPLandroid/widget/LinearLayout;->onDraw(Landroid/graphics/Canvas;)V -HSPLandroid/widget/LinearLayout;->onLayout(ZIIII)V -HSPLandroid/widget/LinearLayout;->onMeasure(II)V -HSPLandroid/widget/LinearLayout;->onRtlPropertiesChanged(I)V +HSPLandroid/widget/LinearLayout;->onLayout(ZIIII)V+]Landroid/widget/LinearLayout;Landroid/widget/LinearLayout; +HSPLandroid/widget/LinearLayout;->onMeasure(II)V+]Landroid/widget/LinearLayout;Landroid/widget/LinearLayout; +HSPLandroid/widget/LinearLayout;->onRtlPropertiesChanged(I)V+]Landroid/widget/LinearLayout;missing_types HSPLandroid/widget/LinearLayout;->setBaselineAligned(Z)V -HSPLandroid/widget/LinearLayout;->setChildFrame(Landroid/view/View;IIII)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;->setOrientation(I)V+]Landroid/widget/LinearLayout;Landroid/widget/LinearLayout; HSPLandroid/widget/LinearLayout;->shouldDelayChildPressedState()Z HSPLandroid/widget/ListPopupWindow;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V HSPLandroid/widget/ListPopupWindow;->isShowing()Z @@ -20195,7 +20221,7 @@ 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;->abortAnimation()V+]Landroid/widget/OverScroller$SplineOverScroller;Landroid/widget/OverScroller$SplineOverScroller; HSPLandroid/widget/OverScroller;->computeScrollOffset()Z HSPLandroid/widget/OverScroller;->fling(IIIIIIII)V HSPLandroid/widget/OverScroller;->fling(IIIIIIIIII)V @@ -20215,7 +20241,7 @@ 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/content/Context;Landroid/util/AttributeSet;II)V+]Landroid/widget/PopupWindow;Landroid/widget/PopupWindow;]Landroid/content/Context;Landroid/view/ContextThemeWrapper;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; 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 @@ -20286,7 +20312,7 @@ HSPLandroid/widget/ProgressBar;->getMin()I HSPLandroid/widget/ProgressBar;->getProgress()I HSPLandroid/widget/ProgressBar;->getProgressDrawable()Landroid/graphics/drawable/Drawable; HSPLandroid/widget/ProgressBar;->initProgressBar()V -HSPLandroid/widget/ProgressBar;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V +HSPLandroid/widget/ProgressBar;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V+]Landroid/widget/ProgressBar;missing_types]Landroid/graphics/drawable/Drawable;missing_types HSPLandroid/widget/ProgressBar;->isIndeterminate()Z HSPLandroid/widget/ProgressBar;->jumpDrawablesToCurrentState()V HSPLandroid/widget/ProgressBar;->needsTileify(Landroid/graphics/drawable/Drawable;)Z @@ -20326,8 +20352,8 @@ 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; -HSPLandroid/widget/RelativeLayout$DependencyGraph;->getSortedViews([Landroid/view/View;[I)V +HSPLandroid/widget/RelativeLayout$DependencyGraph;->findRoots([I)Ljava/util/ArrayDeque;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/view/View;missing_types]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+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/view/View;missing_types]Ljava/util/ArrayDeque;Ljava/util/ArrayDeque;]Landroid/util/SparseArray;Landroid/util/SparseArray; 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 @@ -20335,22 +20361,22 @@ HSPLandroid/widget/RelativeLayout$LayoutParams;->-$$Nest$fgetmTop(Landroid/widge HSPLandroid/widget/RelativeLayout$LayoutParams;->-$$Nest$fputmBottom(Landroid/widget/RelativeLayout$LayoutParams;I)V HSPLandroid/widget/RelativeLayout$LayoutParams;->-$$Nest$fputmTop(Landroid/widget/RelativeLayout$LayoutParams;I)V HSPLandroid/widget/RelativeLayout$LayoutParams;-><init>(II)V -HSPLandroid/widget/RelativeLayout$LayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)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;->getRules(I)[I+]Landroid/widget/RelativeLayout$LayoutParams;Landroid/widget/RelativeLayout$LayoutParams; 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$LayoutParams;->shouldResolveLayoutDirection(I)Z+]Landroid/widget/RelativeLayout$LayoutParams;Landroid/widget/RelativeLayout$LayoutParams; 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 +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 @@ -20362,21 +20388,21 @@ HSPLandroid/widget/RelativeLayout;->generateLayoutParams(Landroid/view/ViewGroup 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;->getRelatedView([II)Landroid/view/View;+]Landroid/view/View;missing_types]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/widget/RelativeLayout$LayoutParams;Landroid/widget/RelativeLayout$LayoutParams; 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 -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;->measureChild(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;II)V+]Landroid/view/View;missing_types +HSPLandroid/widget/RelativeLayout;->measureChildHorizontal(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;II)V+]Landroid/view/View;missing_types +HSPLandroid/widget/RelativeLayout;->onLayout(ZIIII)V+]Landroid/widget/RelativeLayout;missing_types]Landroid/view/View;missing_types +HSPLandroid/widget/RelativeLayout;->onMeasure(II)V+]Landroid/widget/RelativeLayout;missing_types]Landroid/view/View;missing_types]Landroid/widget/RelativeLayout$LayoutParams;Landroid/widget/RelativeLayout$LayoutParams; +HSPLandroid/widget/RelativeLayout;->positionAtEdge(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;I)V+]Landroid/widget/RelativeLayout;missing_types]Landroid/view/View;missing_types +HSPLandroid/widget/RelativeLayout;->positionChildHorizontal(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;IZ)Z+]Landroid/widget/RelativeLayout;missing_types]Landroid/view/View;Landroid/widget/Switch;]Landroid/widget/RelativeLayout$LayoutParams;Landroid/widget/RelativeLayout$LayoutParams; +HSPLandroid/widget/RelativeLayout;->positionChildVertical(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;IZ)Z+]Landroid/view/View;missing_types]Landroid/widget/RelativeLayout$LayoutParams;Landroid/widget/RelativeLayout$LayoutParams; HSPLandroid/widget/RelativeLayout;->queryCompatibilityModes(Landroid/content/Context;)V HSPLandroid/widget/RelativeLayout;->requestLayout()V HSPLandroid/widget/RelativeLayout;->shouldDelayChildPressedState()Z -HSPLandroid/widget/RelativeLayout;->sortChildren()V +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 @@ -20452,16 +20478,16 @@ 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 -HSPLandroid/widget/ScrollBarDrawable;->drawThumb(Landroid/graphics/Canvas;Landroid/graphics/Rect;IIZ)V +HSPLandroid/widget/ScrollBarDrawable;->draw(Landroid/graphics/Canvas;)V+]Landroid/widget/ScrollBarDrawable;Landroid/widget/ScrollBarDrawable;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas; +HSPLandroid/widget/ScrollBarDrawable;->drawThumb(Landroid/graphics/Canvas;Landroid/graphics/Rect;IIZ)V+]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/GradientDrawable; HSPLandroid/widget/ScrollBarDrawable;->getSize(Z)I -HSPLandroid/widget/ScrollBarDrawable;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/ScrollBarDrawable;->isStateful()Z +HSPLandroid/widget/ScrollBarDrawable;->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; HSPLandroid/widget/ScrollBarDrawable;->onBoundsChange(Landroid/graphics/Rect;)V -HSPLandroid/widget/ScrollBarDrawable;->onStateChange([I)Z -HSPLandroid/widget/ScrollBarDrawable;->propagateCurrentState(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/ScrollBarDrawable;->setAlpha(I)V +HSPLandroid/widget/ScrollBarDrawable;->onStateChange([I)Z+]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/GradientDrawable; +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 @@ -20510,11 +20536,11 @@ HSPLandroid/widget/SeekBar;->setOnSeekBarChangeListener(Landroid/widget/SeekBar$ 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$TextClassificationHelper;->init(Ljava/util/function/Supplier;Ljava/lang/CharSequence;IILandroid/os/LocaleList;)V+]Ljava/lang/CharSequence;Landroid/text/SpannableString; +HSPLandroid/widget/SelectionActionModeHelper;-><init>(Landroid/widget/Editor;)V+]Landroid/view/textclassifier/TextClassificationConstants;Landroid/view/textclassifier/TextClassificationConstants;]Landroid/widget/Editor;Landroid/widget/Editor; 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;->onTextChanged(II)V+]Landroid/widget/SelectionActionModeHelper$SelectionTracker;Landroid/widget/SelectionActionModeHelper$SelectionTracker; 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 @@ -20547,7 +20573,7 @@ HSPLandroid/widget/Switch;-><init>(Landroid/content/Context;Landroid/util/Attrib 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;->jumpDrawablesToCurrentState()V+]Landroid/animation/ObjectAnimator;Landroid/animation/ObjectAnimator;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/AnimatedStateListDrawable;,Landroid/graphics/drawable/LayerDrawable; HSPLandroid/widget/Switch;->onCreateDrawableState(I)[I HSPLandroid/widget/Switch;->setChecked(Z)V HSPLandroid/widget/Switch;->setSwitchTextAppearance(Landroid/content/Context;I)V @@ -20580,29 +20606,29 @@ 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;->applyTextAppearance(Landroid/widget/TextView$TextAppearanceAttributes;)V+]Landroid/widget/TextView;missing_types 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;->bringPointIntoView(IZ)Z+]Landroid/text/Layout$Alignment;Landroid/text/Layout$Alignment;]Landroid/text/Layout;Landroid/text/DynamicLayout; HSPLandroid/widget/TextView;->bringTextIntoView()Z HSPLandroid/widget/TextView;->canMarquee()Z HSPLandroid/widget/TextView;->cancelLongPress()V -HSPLandroid/widget/TextView;->checkForRelayout()V +HSPLandroid/widget/TextView;->checkForRelayout()V+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout; HSPLandroid/widget/TextView;->checkForResize()V HSPLandroid/widget/TextView;->cleanupAutoSizePresetSizes([I)[I -HSPLandroid/widget/TextView;->compressText(F)Z +HSPLandroid/widget/TextView;->compressText(F)Z+]Landroid/text/Layout;Landroid/text/BoringLayout;]Landroid/text/TextPaint;Landroid/text/TextPaint; HSPLandroid/widget/TextView;->computeHorizontalScrollRange()I HSPLandroid/widget/TextView;->computeScroll()V -HSPLandroid/widget/TextView;->computeVerticalScrollExtent()I +HSPLandroid/widget/TextView;->computeVerticalScrollExtent()I+]Landroid/widget/TextView;missing_types HSPLandroid/widget/TextView;->computeVerticalScrollRange()I 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;->drawableStateChanged()V+]Landroid/content/res/ColorStateList;Landroid/content/res/ColorStateList;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/VectorDrawable;,Landroid/graphics/drawable/BitmapDrawable; HSPLandroid/widget/TextView;->endBatchEdit()V HSPLandroid/widget/TextView;->findLargestTextSizeWhichFits(Landroid/graphics/RectF;)I HSPLandroid/widget/TextView;->fixFocusableAndClickableSettings()V @@ -20627,12 +20653,12 @@ HSPLandroid/widget/TextView;->getCurrentTextColor()I HSPLandroid/widget/TextView;->getDefaultEditable()Z HSPLandroid/widget/TextView;->getDefaultMovementMethod()Landroid/text/method/MovementMethod; HSPLandroid/widget/TextView;->getDesiredHeight()I -HSPLandroid/widget/TextView;->getDesiredHeight(Landroid/text/Layout;Z)I +HSPLandroid/widget/TextView;->getDesiredHeight(Landroid/text/Layout;Z)I+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;,Landroid/text/StaticLayout;]Landroid/widget/TextView;missing_types 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 -HSPLandroid/widget/TextView;->getExtendedPaddingTop()I +HSPLandroid/widget/TextView;->getExtendedPaddingBottom()I+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;,Landroid/text/StaticLayout;]Landroid/widget/TextView;missing_types +HSPLandroid/widget/TextView;->getExtendedPaddingTop()I+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;,Landroid/text/StaticLayout;]Landroid/widget/TextView;missing_types HSPLandroid/widget/TextView;->getFilters()[Landroid/text/InputFilter; HSPLandroid/widget/TextView;->getFocusedRect(Landroid/graphics/Rect;)V HSPLandroid/widget/TextView;->getFreezesText()Z @@ -20662,18 +20688,18 @@ 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;->getSelectionEnd()I+]Landroid/widget/TextView;missing_types HSPLandroid/widget/TextView;->getSelectionEndTransformed()I -HSPLandroid/widget/TextView;->getSelectionStart()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;->getTextDirectionHeuristic()Landroid/text/TextDirectionHeuristic;+]Landroid/widget/TextView;missing_types +HSPLandroid/widget/TextView;->getTextLocale()Ljava/util/Locale;+]Landroid/text/TextPaint;Landroid/text/TextPaint; +HSPLandroid/widget/TextView;->getTextLocales()Landroid/os/LocaleList;+]Landroid/text/TextPaint;Landroid/text/TextPaint; HSPLandroid/widget/TextView;->getTextSelectHandle()Landroid/graphics/drawable/Drawable; HSPLandroid/widget/TextView;->getTextSelectHandleLeft()Landroid/graphics/drawable/Drawable; HSPLandroid/widget/TextView;->getTextSelectHandleRight()Landroid/graphics/drawable/Drawable; @@ -20685,22 +20711,22 @@ 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;->getUpdatedHighlightPath()Landroid/graphics/Path;+]Landroid/graphics/Path;Landroid/graphics/Path;]Landroid/graphics/Paint;Landroid/graphics/Paint;]Landroid/text/Layout;Landroid/text/DynamicLayout;]Landroid/widget/Editor;Landroid/widget/Editor; +HSPLandroid/widget/TextView;->getVerticalOffset(Z)I+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;,Landroid/text/StaticLayout;]Ljava/lang/CharSequence;missing_types 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;->hasSelection()Z+]Landroid/widget/TextView;missing_types HSPLandroid/widget/TextView;->hideErrorIfUnchanged()V HSPLandroid/widget/TextView;->invalidateCursor()V -HSPLandroid/widget/TextView;->invalidateCursorPath()V -HSPLandroid/widget/TextView;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V +HSPLandroid/widget/TextView;->invalidateCursorPath()V+]Landroid/graphics/Path;Landroid/graphics/Path;]Landroid/text/TextPaint;Landroid/text/TextPaint; +HSPLandroid/widget/TextView;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V+]Landroid/widget/TextView;missing_types]Landroid/graphics/drawable/Drawable;megamorphic_types HSPLandroid/widget/TextView;->invalidateRegion(IIZ)V HSPLandroid/widget/TextView;->isAnyPasswordInputType()Z HSPLandroid/widget/TextView;->isAutoSizeEnabled()Z -HSPLandroid/widget/TextView;->isAutofillable()Z +HSPLandroid/widget/TextView;->isAutofillable()Z+]Landroid/widget/TextView;missing_types HSPLandroid/widget/TextView;->isFallbackLineSpacingForStaticLayout()Z HSPLandroid/widget/TextView;->isFromPrimePointer(Landroid/view/MotionEvent;Z)Z HSPLandroid/widget/TextView;->isInBatchEditMode()Z @@ -20709,29 +20735,29 @@ 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 +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+]Landroid/widget/TextView;missing_types HSPLandroid/widget/TextView;->isTextEditable()Z HSPLandroid/widget/TextView;->isTextSelectable()Z HSPLandroid/widget/TextView;->isVisibleToAccessibility()Z -HSPLandroid/widget/TextView;->jumpDrawablesToCurrentState()V +HSPLandroid/widget/TextView;->jumpDrawablesToCurrentState()V+]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/VectorDrawable;,Landroid/graphics/drawable/BitmapDrawable; HSPLandroid/widget/TextView;->length()I -HSPLandroid/widget/TextView;->makeNewLayout(IILandroid/text/BoringLayout$Metrics;Landroid/text/BoringLayout$Metrics;IZ)V -HSPLandroid/widget/TextView;->makeSingleLayout(ILandroid/text/BoringLayout$Metrics;ILandroid/text/Layout$Alignment;ZLandroid/text/TextUtils$TruncateAt;Z)Landroid/text/Layout; -HSPLandroid/widget/TextView;->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;->makeNewLayout(IILandroid/text/BoringLayout$Metrics;Landroid/text/BoringLayout$Metrics;IZ)V+]Landroid/widget/Editor;Landroid/widget/Editor;]Landroid/widget/TextView;missing_types]Landroid/text/BoringLayout;Landroid/text/BoringLayout;]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;]Ljava/lang/CharSequence;Ljava/lang/String;]Landroid/text/StaticLayout$Builder;Landroid/text/StaticLayout$Builder; +HSPLandroid/widget/TextView;->makeSingleLayout(ILandroid/text/BoringLayout$Metrics;ILandroid/text/Layout$Alignment;ZLandroid/text/TextUtils$TruncateAt;Z)Landroid/text/Layout;+]Landroid/text/BoringLayout;Landroid/text/BoringLayout;]Ljava/lang/CharSequence;Ljava/lang/String;,Landroid/text/SpannedString;]Landroid/text/StaticLayout$Builder;Landroid/text/StaticLayout$Builder;]Landroid/text/DynamicLayout$Builder;Landroid/text/DynamicLayout$Builder;]Landroid/widget/TextView;missing_types +HSPLandroid/widget/TextView;->maybeUpdateHighlightPaths()V+]Ljava/util/List;Ljava/util/ArrayList; +HSPLandroid/widget/TextView;->notifyContentCaptureTextChanged()V+]Landroid/view/contentcapture/ContentCaptureManager;Landroid/view/contentcapture/ContentCaptureManager;]Landroid/view/contentcapture/ContentCaptureSession;Landroid/view/contentcapture/MainContentCaptureSession; +HSPLandroid/widget/TextView;->notifyListeningManagersAfterTextChanged()V+]Landroid/widget/TextView;missing_types]Landroid/view/autofill/AutofillManager;Landroid/view/autofill/AutofillManager;]Landroid/content/Context;missing_types +HSPLandroid/widget/TextView;->nullLayouts()V+]Landroid/widget/Editor;Landroid/widget/Editor; +HSPLandroid/widget/TextView;->onAttachedToWindow()V+]Landroid/widget/Editor;Landroid/widget/Editor; 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;->onCreateDrawableState(I)[I+]Landroid/widget/TextView;missing_types 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 +HSPLandroid/widget/TextView;->onDetachedFromWindowInternal()V+]Landroid/widget/Editor;Landroid/widget/Editor; +HSPLandroid/widget/TextView;->onDraw(Landroid/graphics/Canvas;)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/graphics/drawable/Drawable;Landroid/graphics/drawable/BitmapDrawable;,Landroid/graphics/drawable/VectorDrawable;]Landroid/widget/Editor;Landroid/widget/Editor;]Ljava/lang/CharSequence;Landroid/text/SpannableStringBuilder;]Landroid/widget/TextView;missing_types HSPLandroid/widget/TextView;->onEditorAction(I)V HSPLandroid/widget/TextView;->onEndBatchEdit()V HSPLandroid/widget/TextView;->onFocusChanged(ZILandroid/graphics/Rect;)V @@ -20742,12 +20768,12 @@ 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 +HSPLandroid/widget/TextView;->onMeasure(II)V+]Landroid/text/Layout;Landroid/text/BoringLayout;,Landroid/text/StaticLayout;,Landroid/text/DynamicLayout;]Landroid/widget/TextView;missing_types]Ljava/lang/CharSequence;Ljava/lang/String;,Landroid/text/SpannedString;,Landroid/text/SpannableString; HSPLandroid/widget/TextView;->onPreDraw()Z -HSPLandroid/widget/TextView;->onProvideStructure(Landroid/view/ViewStructure;II)V +HSPLandroid/widget/TextView;->onProvideStructure(Landroid/view/ViewStructure;II)V+]Landroid/view/View;missing_types]Landroid/widget/TextViewOnReceiveContentListener;Landroid/widget/TextViewOnReceiveContentListener;]Landroid/text/InputFilter$LengthFilter;Landroid/text/InputFilter$LengthFilter;]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;,Landroid/text/StaticLayout;]Landroid/widget/Editor;Landroid/widget/Editor;]Landroid/widget/TextView;missing_types]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/text/TextPaint;Landroid/text/TextPaint;]Landroid/view/ViewStructure;Landroid/app/assist/AssistStructure$ViewNodeBuilder;,Landroid/view/contentcapture/ViewNode$ViewStructureImpl;]Ljava/lang/CharSequence;Ljava/lang/String;,Landroid/text/SpannedString;,Landroid/text/SpannableString; HSPLandroid/widget/TextView;->onResolveDrawables(I)V HSPLandroid/widget/TextView;->onRestoreInstanceState(Landroid/os/Parcelable;)V -HSPLandroid/widget/TextView;->onRtlPropertiesChanged(I)V +HSPLandroid/widget/TextView;->onRtlPropertiesChanged(I)V+]Landroid/widget/TextView;missing_types HSPLandroid/widget/TextView;->onSaveInstanceState()Landroid/os/Parcelable; HSPLandroid/widget/TextView;->onScreenStateChanged(I)V HSPLandroid/widget/TextView;->onScrollChanged(IIII)V @@ -20759,12 +20785,12 @@ 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; -HSPLandroid/widget/TextView;->registerForPreDraw()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+]Landroid/view/ViewTreeObserver;Landroid/view/ViewTreeObserver; HSPLandroid/widget/TextView;->removeAdjacentSuggestionSpans(I)V -HSPLandroid/widget/TextView;->removeIntersectingNonAdjacentSpans(IILjava/lang/Class;)V +HSPLandroid/widget/TextView;->removeIntersectingNonAdjacentSpans(IILjava/lang/Class;)V+]Landroid/text/Editable;missing_types]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr; HSPLandroid/widget/TextView;->removeMisspelledSpans(Landroid/text/Spannable;)V -HSPLandroid/widget/TextView;->removeSuggestionSpans(Ljava/lang/CharSequence;)Ljava/lang/CharSequence; +HSPLandroid/widget/TextView;->removeSuggestionSpans(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;+]Ljava/lang/CharSequence;Landroid/text/SpannableString;]Landroid/text/Spannable;Landroid/text/SpannableString; HSPLandroid/widget/TextView;->removeTextChangedListener(Landroid/text/TextWatcher;)V HSPLandroid/widget/TextView;->resetErrorChangedFlag()V HSPLandroid/widget/TextView;->resetResolvedDrawables()V @@ -20772,14 +20798,14 @@ HSPLandroid/widget/TextView;->resolveStyleAndSetTypeface(Landroid/graphics/Typef 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;->sendBeforeTextChanged(Ljava/lang/CharSequence;III)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/text/TextWatcher;missing_types +HSPLandroid/widget/TextView;->sendOnTextChanged(Ljava/lang/CharSequence;III)V+]Landroid/widget/Editor;Landroid/widget/Editor;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/text/TextWatcher;missing_types 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;->setCompoundDrawablePadding(I)V+]Landroid/widget/TextView;missing_types 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;->setCompoundDrawables(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V+]Landroid/widget/TextView;missing_types]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/VectorDrawable;,Landroid/graphics/drawable/BitmapDrawable; 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 @@ -20787,16 +20813,16 @@ 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/Editable;[Landroid/text/InputFilter;)V+]Landroid/text/Editable;missing_types 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;->setFrame(IIII)Z+]Landroid/widget/Editor;Landroid/widget/Editor; 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;->setHintInternal(Ljava/lang/CharSequence;)V+]Landroid/widget/Editor;Landroid/widget/Editor;]Ljava/lang/CharSequence;missing_types HSPLandroid/widget/TextView;->setHintTextColor(I)V HSPLandroid/widget/TextView;->setHintTextColor(Landroid/content/res/ColorStateList;)V HSPLandroid/widget/TextView;->setHorizontallyScrolling(Z)V @@ -20809,7 +20835,7 @@ 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;->setLetterSpacing(F)V+]Landroid/text/TextPaint;Landroid/text/TextPaint; HSPLandroid/widget/TextView;->setLineHeight(I)V HSPLandroid/widget/TextView;->setLineSpacing(FF)V HSPLandroid/widget/TextView;->setLines(I)V @@ -20820,13 +20846,13 @@ 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;->setMovementMethod(Landroid/text/method/MovementMethod;)V+]Landroid/widget/Editor;Landroid/widget/Editor; 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;->setRawTextSize(FZ)V+]Landroid/text/TextPaint;Landroid/text/TextPaint; 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 @@ -20835,13 +20861,13 @@ 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 +HSPLandroid/widget/TextView;->setText(Ljava/lang/CharSequence;Landroid/widget/TextView$BufferType;ZI)V+]Landroid/text/method/TransformationMethod;missing_types]Landroid/widget/TextView;missing_types]Landroid/text/TextPaint;Landroid/text/TextPaint;]Ljava/lang/CharSequence;missing_types]Landroid/view/accessibility/AccessibilityManager;Landroid/view/accessibility/AccessibilityManager;]Landroid/text/Spanned;missing_types]Landroid/text/method/MovementMethod;missing_types]Landroid/widget/Editor;Landroid/widget/Editor;]Landroid/text/Spannable$Factory;Landroid/text/Spannable$Factory;]Landroid/text/Spannable;missing_types]Landroid/text/Editable$Factory;missing_types]Landroid/text/InputFilter;missing_types]Ljava/util/ArrayList;Ljava/util/ArrayList; 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;->setTextIsSelectable(Z)V+]Landroid/widget/Editor;Landroid/widget/Editor; HSPLandroid/widget/TextView;->setTextSize(F)V HSPLandroid/widget/TextView;->setTextSize(IF)V HSPLandroid/widget/TextView;->setTextSizeInternal(IFZ)V @@ -20853,18 +20879,18 @@ HSPLandroid/widget/TextView;->setTypefaceFromAttrs(Landroid/graphics/Typeface;Lj 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;->spanChange(Landroid/text/Spanned;Ljava/lang/Object;IIII)V+]Landroid/widget/Editor;Landroid/widget/Editor;]Landroid/text/Spanned;missing_types 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;->textCanBeSelected()Z+]Landroid/text/method/MovementMethod;Landroid/text/method/ArrowKeyMovementMethod; +HSPLandroid/widget/TextView;->unregisterForPreDraw()V+]Landroid/view/ViewTreeObserver;Landroid/view/ViewTreeObserver; HSPLandroid/widget/TextView;->updateAfterEdit()V HSPLandroid/widget/TextView;->updateCursorVisibleInternal()V -HSPLandroid/widget/TextView;->updateTextColors()V +HSPLandroid/widget/TextView;->updateTextColors()V+]Landroid/content/res/ColorStateList;Landroid/content/res/ColorStateList;]Landroid/widget/Editor;Landroid/widget/Editor;]Landroid/widget/TextView;missing_types]Ljava/lang/CharSequence;missing_types HSPLandroid/widget/TextView;->useDynamicLayout()Z HSPLandroid/widget/TextView;->validateAndSetAutoSizeTextTypeUniformConfiguration(FFF)V HSPLandroid/widget/TextView;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z @@ -20970,7 +20996,7 @@ HSPLandroid/window/ProxyOnBackInvokedDispatcher;->transferCallbacksToDispatcher( 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;-><init>([Landroid/content/res/Configuration;)V+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray; 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 @@ -20988,7 +21014,7 @@ HSPLandroid/window/SurfaceSyncGroup;-><init>(Ljava/lang/String;Ljava/util/functi 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;->addTimeout()V+]Landroid/os/HandlerThread;Landroid/os/HandlerThread;]Landroid/os/Handler;Landroid/os/Handler; HSPLandroid/window/SurfaceSyncGroup;->checkIfSyncIsComplete()V HSPLandroid/window/SurfaceSyncGroup;->createTransactionReadyCallback(Z)Landroid/window/ITransactionReadyCallback; HSPLandroid/window/SurfaceSyncGroup;->getSurfaceSyncGroup(Landroid/window/ISurfaceSyncGroup;)Landroid/window/SurfaceSyncGroup; @@ -21069,20 +21095,20 @@ HSPLandroid/window/WindowTokenClient;->onConfigurationChanged(Landroid/content/r 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;->chooseFormattingPatternForNumber(Ljava/util/List;Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;+]Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/regex/Matcher;Ljava/util/regex/Matcher;]Ljava/util/regex/Pattern;Ljava/util/regex/Pattern;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Lcom/android/i18n/phonenumbers/internal/RegexCache;Lcom/android/i18n/phonenumbers/internal/RegexCache; 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;->extractCountryCode(Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;)I+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/util/Map;Ljava/util/HashMap; +HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->extractPossibleNumber(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;+]Ljava/lang/CharSequence;Ljava/lang/String;]Ljava/util/regex/Matcher;Ljava/util/regex/Matcher;]Ljava/util/regex/Pattern;Ljava/util/regex/Pattern; 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;->format(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;Ljava/lang/StringBuilder;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;]Lcom/android/i18n/phonenumbers/PhoneNumberUtil;Lcom/android/i18n/phonenumbers/PhoneNumberUtil; +HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->formatInOriginalFormat(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;]Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;]Lcom/android/i18n/phonenumbers/PhoneNumberUtil;Lcom/android/i18n/phonenumbers/PhoneNumberUtil; 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;->formatNsnUsingPattern(Ljava/lang/String;Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;Ljava/lang/CharSequence;)Ljava/lang/String;+]Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;]Ljava/util/regex/Pattern;Ljava/util/regex/Pattern;]Ljava/util/regex/Matcher;Ljava/util/regex/Matcher;]Lcom/android/i18n/phonenumbers/internal/RegexCache;Lcom/android/i18n/phonenumbers/internal/RegexCache; 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;->getMetadataForRegion(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/i18n/phonenumbers/metadata/source/MetadataSource;Lcom/android/i18n/phonenumbers/metadata/source/MetadataSourceImpl; 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;->getNationalSignificantNumber(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber; 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; HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getRegionCodeForCountryCode(I)Ljava/lang/String; @@ -21095,26 +21121,26 @@ HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->isValidNumberForRegion(Lcom/ 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;->maybeExtractCountryCode(Ljava/lang/CharSequence;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Ljava/lang/StringBuilder;ZLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)I+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;]Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;]Ljava/lang/CharSequence;Ljava/lang/StringBuilder;]Lcom/android/i18n/phonenumbers/PhoneNumberUtil;Lcom/android/i18n/phonenumbers/PhoneNumberUtil; 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;->maybeStripInternationalPrefixAndNormalize(Ljava/lang/StringBuilder;Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/util/regex/Pattern;Ljava/util/regex/Pattern;]Ljava/util/regex/Matcher;Ljava/util/regex/Matcher; +HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->maybeStripNationalPrefixAndCarrierCode(Ljava/lang/StringBuilder;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Ljava/lang/StringBuilder;)Z+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;]Ljava/util/regex/Matcher;Ljava/util/regex/Matcher;]Ljava/util/regex/Pattern;Ljava/util/regex/Pattern;]Lcom/android/i18n/phonenumbers/internal/RegexCache;Lcom/android/i18n/phonenumbers/internal/RegexCache; +HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->normalize(Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/util/regex/Matcher;Ljava/util/regex/Matcher;]Ljava/util/regex/Pattern;Ljava/util/regex/Pattern; 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;->normalizeDigits(Ljava/lang/CharSequence;Z)Ljava/lang/StringBuilder;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/CharSequence;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;->normalizeHelper(Ljava/lang/CharSequence;Ljava/util/Map;Z)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/CharSequence;Ljava/lang/String;]Ljava/util/Map;Ljava/util/Collections$UnmodifiableMap; 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;->parseHelper(Ljava/lang/CharSequence;Ljava/lang/String;ZZLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)V+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;]Ljava/lang/CharSequence;Ljava/lang/String;]Lcom/android/i18n/phonenumbers/PhoneNumberUtil;Lcom/android/i18n/phonenumbers/PhoneNumberUtil; 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/PhoneNumberUtil;->testNumberLength(Ljava/lang/CharSequence;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;)Lcom/android/i18n/phonenumbers/PhoneNumberUtil$ValidationResult;+]Ljava/lang/Integer;Ljava/lang/Integer;]Ljava/util/List;Ljava/util/ArrayList$SubList;,Ljava/util/ArrayList;]Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;]Ljava/lang/CharSequence;Ljava/lang/StringBuilder;]Lcom/android/i18n/phonenumbers/PhoneNumberUtil;Lcom/android/i18n/phonenumbers/PhoneNumberUtil; 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; @@ -21231,18 +21257,18 @@ HSPLcom/android/i18n/timezone/ZoneInfoData;-><init>(Lcom/android/i18n/timezone/Z 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;->findOffsetIndexForTimeInMilliseconds(J)I+]Lcom/android/i18n/timezone/ZoneInfoData;Lcom/android/i18n/timezone/ZoneInfoData; +HSPLcom/android/i18n/timezone/ZoneInfoData;->findOffsetIndexForTimeInSeconds(J)I+]Lcom/android/i18n/timezone/ZoneInfoData;Lcom/android/i18n/timezone/ZoneInfoData; 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 +HSPLcom/android/i18n/timezone/ZoneInfoData;->getOffset(J)I+]Lcom/android/i18n/timezone/ZoneInfoData;Lcom/android/i18n/timezone/ZoneInfoData; +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;->getTransitions()[J+][J[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;->read64BitData(Ljava/lang/String;Lcom/android/i18n/timezone/internal/BufferIterator;)Lcom/android/i18n/timezone/ZoneInfoData;+]Lcom/android/i18n/timezone/internal/BufferIterator;Lcom/android/i18n/timezone/internal/NioBufferIterator; 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 @@ -21273,38 +21299,38 @@ 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; -HSPLcom/android/icu/charset/CharsetDecoderICU;->getArray(Ljava/nio/ByteBuffer;)I -HSPLcom/android/icu/charset/CharsetDecoderICU;->getArray(Ljava/nio/CharBuffer;)I -HSPLcom/android/icu/charset/CharsetDecoderICU;->implFlush(Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult; +HSPLcom/android/icu/charset/CharsetDecoderICU;->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;->setPosition(Ljava/nio/ByteBuffer;)V+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; +HSPLcom/android/icu/charset/CharsetDecoderICU;->setPosition(Ljava/nio/CharBuffer;)V+]Ljava/nio/CharBuffer;Ljava/nio/HeapCharBuffer; 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 -HSPLcom/android/icu/charset/CharsetEncoderICU;->getArray(Ljava/nio/CharBuffer;)I +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;+]Lcom/android/icu/charset/CharsetEncoderICU;Lcom/android/icu/charset/CharsetEncoderICU; 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 -HSPLcom/android/icu/charset/CharsetEncoderICU;->setPosition(Ljava/nio/CharBuffer;)V +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+]Ljava/nio/CharBuffer;Ljava/nio/HeapCharBuffer; 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;->registerConverter(Ljava/lang/Object;J)V+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry; +HSPLcom/android/icu/charset/NativeConverter;->setCallbackDecode(JLjava/nio/charset/CharsetDecoder;)V+]Ljava/nio/charset/CharsetDecoder;Lcom/android/icu/charset/CharsetDecoderICU; 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; @@ -21335,7 +21361,7 @@ HSPLcom/android/icu/util/ExtendedTimeZone;->utcStartTime(JLandroid/icu/util/Time HSPLcom/android/icu/util/LocaleNative;->getDisplayCountry(Ljava/util/Locale;Ljava/util/Locale;)Ljava/lang/String; HSPLcom/android/icu/util/LocaleNative;->getDisplayLanguage(Ljava/util/Locale;Ljava/util/Locale;)Ljava/lang/String; HSPLcom/android/icu/util/LocaleNative;->setDefault(Ljava/lang/String;)V -HSPLcom/android/icu/util/regex/MatcherNative;-><init>(Lcom/android/icu/util/regex/PatternNative;)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 @@ -21347,7 +21373,7 @@ HSPLcom/android/icu/util/regex/MatcherNative;->requireEnd()Z HSPLcom/android/icu/util/regex/MatcherNative;->setInput(Ljava/lang/String;II)V HSPLcom/android/icu/util/regex/MatcherNative;->useAnchoringBounds(Z)V HSPLcom/android/icu/util/regex/MatcherNative;->useTransparentBounds(Z)V -HSPLcom/android/icu/util/regex/PatternNative;-><init>(Ljava/lang/String;I)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 @@ -21415,13 +21441,13 @@ HSPLcom/android/internal/appwidget/IAppWidgetService$Stub;->asInterface(Landroid HSPLcom/android/internal/colorextraction/ColorExtractor$GradientColors;->getMainColor()I HSPLcom/android/internal/colorextraction/ColorExtractor$GradientColors;->supportsDarkText()Z HSPLcom/android/internal/compat/ChangeReporter$ChangeReport;-><init>(JI)V -HSPLcom/android/internal/compat/ChangeReporter$ChangeReport;->equals(Ljava/lang/Object;)Z +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 -HSPLcom/android/internal/compat/ChangeReporter;->markAsReported(ILcom/android/internal/compat/ChangeReporter$ChangeReport;)V -HSPLcom/android/internal/compat/ChangeReporter;->reportChange(IJI)V +HSPLcom/android/internal/compat/ChangeReporter;->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; @@ -21483,7 +21509,7 @@ HSPLcom/android/internal/infra/AndroidFuture$1;->complete(Lcom/android/internal/ 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;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -21564,8 +21590,8 @@ HSPLcom/android/internal/listeners/ListenerExecutor$$ExternalSyntheticLambda0;-> 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;->executeSafely(Ljava/util/concurrent/Executor;Ljava/util/function/Supplier;Lcom/android/internal/listeners/ListenerExecutor$ListenerOperation;)V+]Lcom/android/internal/listeners/ListenerExecutor;Landroid/location/LocationManager$LocationListenerTransport; +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+]Ljava/util/concurrent/Executor;missing_types]Lcom/android/internal/listeners/ListenerExecutor$ListenerOperation;Landroid/location/LocationManager$LocationListenerTransport$1;,Landroid/location/LocationManager$LocationListenerTransport$$ExternalSyntheticLambda4;]Ljava/util/function/Supplier;Landroid/location/LocationManager$LocationListenerTransport$$ExternalSyntheticLambda2;,Landroid/location/LocationManager$LocationListenerTransport$$ExternalSyntheticLambda3; 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; @@ -21705,7 +21731,7 @@ 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/SafeZipPathValidatorCallback;->onZipEntryAccess(Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String; 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; @@ -21864,7 +21890,7 @@ HSPLcom/android/internal/policy/DecorView;->updateBackgroundBlurRadius()V HSPLcom/android/internal/policy/DecorView;->updateBackgroundDrawable()V HSPLcom/android/internal/policy/DecorView;->updateColorViewInt(Lcom/android/internal/policy/DecorView$ColorViewState;IIIZZIZZI)V HSPLcom/android/internal/policy/DecorView;->updateColorViewTranslations()V -HSPLcom/android/internal/policy/DecorView;->updateColorViews(Landroid/view/WindowInsets;Z)Landroid/view/WindowInsets; +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/WindowInsets;Landroid/view/WindowInsets;]Landroid/view/ViewGroup;Landroid/widget/LinearLayout;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;]Landroid/view/WindowInsetsController;Landroid/view/InsetsController;,Landroid/view/PendingInsetsController; HSPLcom/android/internal/policy/DecorView;->updateDecorCaptionStatus(Landroid/content/res/Configuration;)V HSPLcom/android/internal/policy/DecorView;->updateElevation()V HSPLcom/android/internal/policy/DecorView;->updateLogTag(Landroid/view/WindowManager$LayoutParams;)V @@ -21887,7 +21913,8 @@ HSPLcom/android/internal/policy/PhoneFallbackEventHandler;->setView(Landroid/vie 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/PhoneLayoutInflater;->onCreateView(Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View;+]Lcom/android/internal/policy/PhoneLayoutInflater;Lcom/android/internal/policy/PhoneLayoutInflater; +HSPLcom/android/internal/policy/PhoneWindow$$ExternalSyntheticLambda0;->onContentApplyWindowInsets(Landroid/view/View;Landroid/view/WindowInsets;)Landroid/util/Pair; 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 @@ -21993,7 +22020,7 @@ HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;->asBinder()Landroid 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/IPhoneStateListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z+]Lcom/android/internal/telephony/IPhoneStateListener$Stub;Landroid/telephony/TelephonyCallback$IPhoneStateListenerStub;]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -22015,7 +22042,7 @@ HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getAvailableSubscriptionInf HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getDefaultDataSubId()I HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getDefaultSmsSubId()I HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getDefaultSubId()I -HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getDefaultVoiceSubId()I +HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getDefaultVoiceSubId()I+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Lcom/android/internal/telephony/ISub$Stub$Proxy;Lcom/android/internal/telephony/ISub$Stub$Proxy;]Landroid/os/Parcel;Landroid/os/Parcel; 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; @@ -22038,7 +22065,7 @@ HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getSubscriptionCarrie 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$Proxy;->isEmergencyNumber(Ljava/lang/String;Z)Z+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Lcom/android/internal/telephony/ITelephony$Stub$Proxy;Lcom/android/internal/telephony/ITelephony$Stub$Proxy;]Landroid/os/Parcel;Landroid/os/Parcel; 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 @@ -22078,7 +22105,7 @@ HSPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->isSpellCh 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;J)V+]Ljava/lang/String;Ljava/lang/String; 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 @@ -22100,7 +22127,7 @@ HSPLcom/android/internal/util/ArrayUtils;->convertToIntArray(Ljava/util/List;)[I HSPLcom/android/internal/util/ArrayUtils;->deepToString(Ljava/lang/Object;)Ljava/lang/String; HSPLcom/android/internal/util/ArrayUtils;->defeatNullable([Ljava/io/File;)[Ljava/io/File; HSPLcom/android/internal/util/ArrayUtils;->defeatNullable([Ljava/lang/String;)[Ljava/lang/String; -HSPLcom/android/internal/util/ArrayUtils;->emptyArray(Ljava/lang/Class;)[Ljava/lang/Object;+]Ljava/lang/Object;missing_types]Ljava/lang/Class;Ljava/lang/Class; +HSPLcom/android/internal/util/ArrayUtils;->emptyArray(Ljava/lang/Class;)[Ljava/lang/Object;+]Ljava/lang/Object;megamorphic_types]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; @@ -22108,14 +22135,14 @@ HSPLcom/android/internal/util/ArrayUtils;->indexOf([Ljava/lang/Object;Ljava/lang HSPLcom/android/internal/util/ArrayUtils;->isEmpty(Ljava/util/Collection;)Z HSPLcom/android/internal/util/ArrayUtils;->isEmpty([I)Z HSPLcom/android/internal/util/ArrayUtils;->isEmpty([Ljava/lang/Object;)Z -HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedArray(Ljava/lang/Class;I)[Ljava/lang/Object; +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;->newUnpaddedByteArray(I)[B+]Ldalvik/system/VMRuntime;Ldalvik/system/VMRuntime; HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedCharArray(I)[C -HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedFloatArray(I)[F -HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedIntArray(I)[I -HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedLongArray(I)[J -HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedObjectArray(I)[Ljava/lang/Object; +HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedFloatArray(I)[F+]Ldalvik/system/VMRuntime;Ldalvik/system/VMRuntime; +HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedIntArray(I)[I+]Ldalvik/system/VMRuntime;Ldalvik/system/VMRuntime; +HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedLongArray(I)[J+]Ldalvik/system/VMRuntime;Ldalvik/system/VMRuntime; +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 @@ -22143,12 +22170,12 @@ 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(Ljava/lang/String;II)V+]Ljava/lang/String;Ljava/lang/String; 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;->flushLocked()V+]Ljava/io/Writer;Ljava/io/StringWriter; HSPLcom/android/internal/util/FastPrintWriter;->initDefaultEncoder()V HSPLcom/android/internal/util/FastPrintWriter;->print(C)V HSPLcom/android/internal/util/FastPrintWriter;->print(I)V @@ -22156,25 +22183,25 @@ 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 +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 -HSPLcom/android/internal/util/FastXmlSerializer;->append(Ljava/lang/String;II)V -HSPLcom/android/internal/util/FastXmlSerializer;->appendIndent(I)V +HSPLcom/android/internal/util/FastXmlSerializer;->append(C)V+]Lcom/android/internal/util/FastXmlSerializer;Lcom/android/internal/util/FastXmlSerializer; +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 +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/FastXmlSerializer;->text(Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;+]Ljava/lang/String;Ljava/lang/String; 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 @@ -22184,12 +22211,12 @@ HSPLcom/android/internal/util/FrameworkStatsLog;->write(ILjava/lang/String;I)V HSPLcom/android/internal/util/FrameworkStatsLog;->write(ILjava/lang/String;IIF)V HSPLcom/android/internal/util/GrowingArrayUtils;->append([III)[I HSPLcom/android/internal/util/GrowingArrayUtils;->append([JIJ)[J -HSPLcom/android/internal/util/GrowingArrayUtils;->append([Ljava/lang/Object;ILjava/lang/Object;)[Ljava/lang/Object; +HSPLcom/android/internal/util/GrowingArrayUtils;->append([Ljava/lang/Object;ILjava/lang/Object;)[Ljava/lang/Object;+]Ljava/lang/Object;[Ljava/lang/Object;]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; +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; @@ -22215,8 +22242,8 @@ HSPLcom/android/internal/util/LineBreakBufferedWriter;-><init>(Ljava/io/Writer;I 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 +HSPLcom/android/internal/util/LineBreakBufferedWriter;->println()V+]Lcom/android/internal/util/LineBreakBufferedWriter;Lcom/android/internal/util/LineBreakBufferedWriter; +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 @@ -22248,7 +22275,7 @@ 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;->checkCollectionElementsNotNull(Ljava/util/Collection;Ljava/lang/String;)Ljava/util/Collection;+]Ljava/util/Collection;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr; 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; @@ -22295,26 +22322,26 @@ 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;->getAttributeCount()I+]Lorg/xmlpull/v1/XmlPullParser;Lcom/android/org/kxml2/io/KXmlParser; 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;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;+]Lorg/xmlpull/v1/XmlPullParser;Lcom/android/org/kxml2/io/KXmlParser; HSPLcom/android/internal/util/XmlPullParserWrapper;->getEventType()I -HSPLcom/android/internal/util/XmlPullParserWrapper;->getName()Ljava/lang/String; +HSPLcom/android/internal/util/XmlPullParserWrapper;->getName()Ljava/lang/String;+]Lorg/xmlpull/v1/XmlPullParser;Lcom/android/org/kxml2/io/KXmlParser; HSPLcom/android/internal/util/XmlPullParserWrapper;->getText()Ljava/lang/String; -HSPLcom/android/internal/util/XmlPullParserWrapper;->next()I +HSPLcom/android/internal/util/XmlPullParserWrapper;->next()I+]Lorg/xmlpull/v1/XmlPullParser;Lcom/android/org/kxml2/io/KXmlParser; 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;->attribute(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;+]Lorg/xmlpull/v1/XmlSerializer;Lcom/android/internal/util/FastXmlSerializer; 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;->endTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;+]Lorg/xmlpull/v1/XmlSerializer;Lcom/android/internal/util/FastXmlSerializer; 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/XmlSerializerWrapper;->startTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;+]Lorg/xmlpull/v1/XmlSerializer;Lcom/android/internal/util/FastXmlSerializer; +HSPLcom/android/internal/util/XmlSerializerWrapper;->text(Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;+]Lorg/xmlpull/v1/XmlSerializer;Lcom/android/internal/util/FastXmlSerializer; 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;->getAttributeBoolean(I)Z+]Ljava/lang/String;Ljava/lang/String;]Lcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser;Lcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser; 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 @@ -22334,25 +22361,25 @@ HSPLcom/android/internal/util/XmlUtils;->readLongAttribute(Lorg/xmlpull/v1/XmlPu HSPLcom/android/internal/util/XmlUtils;->readLongAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;J)J HSPLcom/android/internal/util/XmlUtils;->readMapXml(Ljava/io/InputStream;)Ljava/util/HashMap; HSPLcom/android/internal/util/XmlUtils;->readStringAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/internal/util/XmlUtils;->readThisMapXml(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;[Ljava/lang/String;Lcom/android/internal/util/XmlUtils$ReadMapCallback;)Ljava/util/HashMap; -HSPLcom/android/internal/util/XmlUtils;->readThisPrimitiveValueXml(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;)Ljava/lang/Object; +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/lang/String;Ljava/lang/String;]Ljava/util/HashMap;Ljava/util/HashMap;]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/String;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; +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/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/String;Ljava/lang/String;]Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser; 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;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V+]Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/XmlBlock$Parser; +HSPLcom/android/internal/util/XmlUtils;->writeMapXml(Ljava/util/Map;Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/internal/util/XmlUtils$WriteMapCallback;)V+]Ljava/util/Map$Entry;Ljava/util/HashMap$Node;]Ljava/util/Map;Ljava/util/HashMap;]Ljava/util/Iterator;Ljava/util/HashMap$EntryIterator;]Ljava/util/Set;Ljava/util/HashMap$EntrySet; 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 -HSPLcom/android/internal/util/function/pooled/OmniFunction;->run()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+]Lcom/android/internal/util/function/pooled/OmniFunction;Lcom/android/internal/util/function/pooled/PooledLambdaImpl; 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/BiConsumer;Ljava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;+]Landroid/os/Message;Landroid/os/Message;]Lcom/android/internal/util/function/pooled/PooledRunnable;Lcom/android/internal/util/function/pooled/PooledLambdaImpl; 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; @@ -22360,21 +22387,21 @@ HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl$LambdaType;->deco 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;->acquire(Lcom/android/internal/util/function/pooled/PooledLambdaImpl$Pool;)Lcom/android/internal/util/function/pooled/PooledLambdaImpl;+]Lcom/android/internal/util/function/pooled/PooledLambdaImpl$Pool;Lcom/android/internal/util/function/pooled/PooledLambdaImpl$Pool;]Lcom/android/internal/util/function/pooled/PooledLambdaImpl;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;+]Lcom/android/internal/util/function/pooled/PooledLambdaImpl;Lcom/android/internal/util/function/pooled/PooledLambdaImpl; 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;->doInvoke()Ljava/lang/Object;+]Ljava/util/function/BiConsumer;Landroid/app/UiAutomation$IAccessibilityServiceClientImpl$1$$ExternalSyntheticLambda0;]Lcom/android/internal/util/function/pooled/PooledLambdaImpl;Lcom/android/internal/util/function/pooled/PooledLambdaImpl; +HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->doRecycle()V+]Lcom/android/internal/util/function/pooled/PooledLambdaImpl$Pool;Lcom/android/internal/util/function/pooled/PooledLambdaImpl$Pool; 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;->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;+]Lcom/android/internal/util/function/pooled/PooledLambdaImpl;Lcom/android/internal/util/function/pooled/PooledLambdaImpl; 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;->recycleOnUse()Lcom/android/internal/util/function/pooled/PooledRunnable;+]Lcom/android/internal/util/function/pooled/PooledLambdaImpl;Lcom/android/internal/util/function/pooled/PooledLambdaImpl; 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 @@ -22462,9 +22489,9 @@ 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 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+]Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser; -HSPLcom/android/modules/utils/TypedXmlPullParser;->getAttributeIndexOrThrow(Ljava/lang/String;Ljava/lang/String;)I -HSPLcom/android/modules/utils/TypedXmlPullParser;->getAttributeInt(Ljava/lang/String;Ljava/lang/String;)I +HSPLcom/android/modules/utils/TypedXmlPullParser;->getAttributeIndex(Ljava/lang/String;Ljava/lang/String;)I+]Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser;]Ljava/lang/String;Ljava/lang/String; +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 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 @@ -22476,7 +22503,7 @@ 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;->equals(Ljava/lang/Object;)Z+]Lcom/android/okhttp/HttpUrl;Lcom/android/okhttp/HttpUrl;]Ljava/lang/Object;Lcom/android/okhttp/Dns$1;,Lsun/net/spi/DefaultProxySelector;,Lcom/android/okhttp/internal/http/AuthenticatorAdapter;]Ljava/util/List;Ljava/util/Collections$UnmodifiableRandomAccessList; 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; @@ -22535,13 +22562,13 @@ 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;->addLenient(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/Headers$Builder;+]Ljava/lang/String;Ljava/lang/String;]Ljava/util/List;Ljava/util/ArrayList; 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;->checkNameAndValue(Ljava/lang/String;Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String; 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;->removeAll(Ljava/lang/String;)Lcom/android/okhttp/Headers$Builder;+]Ljava/lang/String;Ljava/lang/String;]Ljava/util/List;Ljava/util/ArrayList; 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;)V+]Ljava/util/List;Ljava/util/ArrayList; 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; @@ -22564,7 +22591,7 @@ HSPLcom/android/okhttp/HttpUrl$Builder;->encodedQuery(Ljava/lang/String;)Lcom/an 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;->parse(Lcom/android/okhttp/HttpUrl;Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder$ParseResult;+]Ljava/lang/String;Ljava/lang/String; 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 @@ -22576,15 +22603,15 @@ HSPLcom/android/okhttp/HttpUrl$Builder;->schemeDelimiterOffset(Ljava/lang/String 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$Builder;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/String;Ljava/lang/String;]Lcom/android/okhttp/HttpUrl$Builder;Lcom/android/okhttp/HttpUrl$Builder; +HSPLcom/android/okhttp/HttpUrl;-><init>(Lcom/android/okhttp/HttpUrl$Builder;)V+]Lcom/android/okhttp/HttpUrl$Builder;Lcom/android/okhttp/HttpUrl$Builder; 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;->delimiterOffset(Ljava/lang/String;IILjava/lang/String;)I+]Ljava/lang/String;Ljava/lang/String; HSPLcom/android/okhttp/HttpUrl;->encodedFragment()Ljava/lang/String; HSPLcom/android/okhttp/HttpUrl;->encodedPassword()Ljava/lang/String; HSPLcom/android/okhttp/HttpUrl;->encodedPath()Ljava/lang/String; @@ -22620,7 +22647,7 @@ HSPLcom/android/okhttp/OkHttpClient$1;->internalCache(Lcom/android/okhttp/OkHttp 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;-><init>(Lcom/android/okhttp/OkHttpClient;)V+]Ljava/util/List;Ljava/util/ArrayList; 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; @@ -22677,7 +22704,7 @@ 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;)V+]Lcom/android/okhttp/Headers$Builder;Lcom/android/okhttp/Headers$Builder; 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; @@ -22693,7 +22720,7 @@ 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;)V+]Lcom/android/okhttp/Headers;Lcom/android/okhttp/Headers; 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; @@ -22718,7 +22745,7 @@ HSPLcom/android/okhttp/Response$Builder;->networkResponse(Lcom/android/okhttp/Re 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;)V+]Lcom/android/okhttp/Headers$Builder;Lcom/android/okhttp/Headers$Builder; 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; @@ -22814,7 +22841,7 @@ 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$FixedLengthSource;->read(Lcom/android/okhttp/okio/Buffer;J)J+]Lcom/android/okhttp/internal/http/Http1xStream$FixedLengthSource;Lcom/android/okhttp/internal/http/Http1xStream$FixedLengthSource;]Lcom/android/okhttp/okio/BufferedSource;Lcom/android/okhttp/okio/RealBufferedSource; 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 @@ -22856,26 +22883,26 @@ 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;->readNetworkResponse()Lcom/android/okhttp/Response;+]Lcom/android/okhttp/Response;Lcom/android/okhttp/Response;]Ljava/lang/String;Ljava/lang/String;]Lcom/android/okhttp/internal/io/RealConnection;Lcom/android/okhttp/internal/io/RealConnection;]Lcom/android/okhttp/internal/http/HttpStream;Lcom/android/okhttp/internal/http/Http1xStream;]Lcom/android/okhttp/Request;Lcom/android/okhttp/Request;]Lcom/android/okhttp/internal/http/StreamAllocation;Lcom/android/okhttp/internal/http/StreamAllocation;]Lcom/android/okhttp/Response$Builder;Lcom/android/okhttp/Response$Builder; +HSPLcom/android/okhttp/internal/http/HttpEngine;->readResponse()V+]Lcom/android/okhttp/Response;Lcom/android/okhttp/Response;]Lcom/android/okhttp/internal/http/HttpEngine;Lcom/android/okhttp/internal/http/HttpEngine;]Lcom/android/okhttp/internal/http/HttpStream;Lcom/android/okhttp/internal/http/Http1xStream;]Lcom/android/okhttp/Response$Builder;Lcom/android/okhttp/Response$Builder; 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;->sendRequest()V+]Lcom/android/okhttp/internal/Internal;Lcom/android/okhttp/OkHttpClient$1;]Lcom/android/okhttp/internal/http/CacheStrategy$Factory;Lcom/android/okhttp/internal/http/CacheStrategy$Factory;]Lcom/android/okhttp/internal/http/HttpEngine;Lcom/android/okhttp/internal/http/HttpEngine;]Lcom/android/okhttp/internal/http/HttpStream;Lcom/android/okhttp/internal/http/Http1xStream; 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$1;->compare(Ljava/lang/String;Ljava/lang/String;)I+]Ljava/util/Comparator;Ljava/lang/String$CaseInsensitiveComparator; 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/OkHeaders;->toMultimap(Lcom/android/okhttp/Headers;Ljava/lang/String;)Ljava/util/Map;+]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/Map;Ljava/util/TreeMap;]Lcom/android/okhttp/Headers;Lcom/android/okhttp/Headers; HSPLcom/android/okhttp/internal/http/RealResponseBody;-><init>(Lcom/android/okhttp/Headers;Lcom/android/okhttp/okio/BufferedSource;)V HSPLcom/android/okhttp/internal/http/RealResponseBody;->source()Lcom/android/okhttp/okio/BufferedSource; HSPLcom/android/okhttp/internal/http/RequestLine;->get(Lcom/android/okhttp/Request;Ljava/net/Proxy$Type;)Ljava/lang/String; @@ -22912,7 +22939,7 @@ 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;->deallocate(ZZZ)V+]Lcom/android/okhttp/internal/Internal;Lcom/android/okhttp/OkHttpClient$1;]Ljava/util/List;Ljava/util/ArrayList; 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 @@ -22974,7 +23001,7 @@ HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getResponse()Lcom/an 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;->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;+]Lcom/android/okhttp/internal/Internal;Lcom/android/okhttp/OkHttpClient$1;]Ljava/net/URL;Ljava/net/URL;]Lcom/android/okhttp/internal/huc/HttpURLConnectionImpl;Lcom/android/okhttp/internal/huc/HttpURLConnectionImpl;]Lcom/android/okhttp/Headers$Builder;Lcom/android/okhttp/Headers$Builder;]Lcom/android/okhttp/Request$Builder;Lcom/android/okhttp/Request$Builder;]Lcom/android/okhttp/Headers;Lcom/android/okhttp/Headers; 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 @@ -23044,7 +23071,7 @@ 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;->read(Lcom/android/okhttp/okio/Buffer;J)J+]Lcom/android/okhttp/okio/Source;Lcom/android/okhttp/okio/Okio$2;]Lcom/android/okhttp/okio/AsyncTimeout;Lcom/android/okhttp/okio/Okio$3; 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 @@ -23057,7 +23084,7 @@ 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;->scheduleTimeout(Lcom/android/okhttp/okio/AsyncTimeout;JZ)V+]Ljava/lang/Object;Ljava/lang/Class; 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 @@ -23068,7 +23095,7 @@ 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;->read([BII)I+]Lcom/android/okhttp/okio/Segment;Lcom/android/okhttp/okio/Segment; HSPLcom/android/okhttp/okio/Buffer;->readByte()B HSPLcom/android/okhttp/okio/Buffer;->readByteArray()[B HSPLcom/android/okhttp/okio/Buffer;->readByteArray(J)[B @@ -23078,19 +23105,19 @@ 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;->readString(JLjava/nio/charset/Charset;)Ljava/lang/String;+]Lcom/android/okhttp/okio/Segment;Lcom/android/okhttp/okio/Segment; 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;->skip(J)V+]Lcom/android/okhttp/okio/Segment;Lcom/android/okhttp/okio/Segment; 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(Lcom/android/okhttp/okio/Buffer;J)V+]Lcom/android/okhttp/okio/Segment;Lcom/android/okhttp/okio/Segment; 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;->writeUtf8(Ljava/lang/String;II)Lcom/android/okhttp/okio/Buffer;+]Ljava/lang/String;Ljava/lang/String;]Lcom/android/okhttp/okio/Buffer;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; @@ -23114,9 +23141,9 @@ 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$1;->write(Lcom/android/okhttp/okio/Buffer;J)V+]Lcom/android/okhttp/okio/Segment;Lcom/android/okhttp/okio/Segment;]Lcom/android/okhttp/okio/Timeout;Lcom/android/okhttp/okio/Okio$3; 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$2;->read(Lcom/android/okhttp/okio/Buffer;J)J+]Lcom/android/okhttp/okio/Buffer;Lcom/android/okhttp/okio/Buffer;]Lcom/android/okhttp/okio/Timeout;Lcom/android/okhttp/okio/Okio$3;]Ljava/io/InputStream;Lcom/android/org/conscrypt/ConscryptEngineSocket$SSLInputStream; 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 @@ -23148,7 +23175,7 @@ HSPLcom/android/okhttp/okio/RealBufferedSource$1;-><init>(Lcom/android/okhttp/ok 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$1;->read([BII)I+]Lcom/android/okhttp/okio/Buffer;Lcom/android/okhttp/okio/Buffer;]Lcom/android/okhttp/okio/Source;Lcom/android/okhttp/internal/http/Http1xStream$FixedLengthSource; 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 @@ -23158,7 +23185,7 @@ 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;->read(Lcom/android/okhttp/okio/Buffer;J)J+]Lcom/android/okhttp/okio/Buffer;Lcom/android/okhttp/okio/Buffer;]Lcom/android/okhttp/okio/Source;Lcom/android/okhttp/okio/AsyncTimeout$2; HSPLcom/android/okhttp/okio/RealBufferedSource;->readHexadecimalUnsignedLong()J HSPLcom/android/okhttp/okio/RealBufferedSource;->readIntLe()I HSPLcom/android/okhttp/okio/RealBufferedSource;->readShort()S @@ -23310,11 +23337,11 @@ HSPLcom/android/org/bouncycastle/crypto/digests/AndroidDigestFactory;->getSHA1() HSPLcom/android/org/bouncycastle/crypto/digests/AndroidDigestFactoryOpenSSL;->getSHA1()Lcom/android/org/bouncycastle/crypto/Digest; 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;->doFinal([BI)I+]Ljava/security/MessageDigest;Ljava/security/MessageDigest$Delegate; HSPLcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest;->getByteLength()I HSPLcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest;->getDigestSize()I HSPLcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest;->reset()V -HSPLcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest;->update([BII)V +HSPLcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest;->update([BII)V+]Ljava/security/MessageDigest;Ljava/security/MessageDigest$Delegate; HSPLcom/android/org/bouncycastle/crypto/engines/AESEngine;-><init>()V HSPLcom/android/org/bouncycastle/crypto/engines/AESEngine;->generateWorkingKey([BZ)[[I HSPLcom/android/org/bouncycastle/crypto/engines/AESEngine;->getAlgorithmName()Ljava/lang/String; @@ -23333,18 +23360,18 @@ HSPLcom/android/org/bouncycastle/crypto/generators/PKCS12ParametersGenerator;->< HSPLcom/android/org/bouncycastle/crypto/generators/PKCS12ParametersGenerator;->adjust([BI[B)V HSPLcom/android/org/bouncycastle/crypto/generators/PKCS12ParametersGenerator;->generateDerivedKey(II)[B HSPLcom/android/org/bouncycastle/crypto/generators/PKCS5S2ParametersGenerator;-><init>(Lcom/android/org/bouncycastle/crypto/Digest;)V -HSPLcom/android/org/bouncycastle/crypto/generators/PKCS5S2ParametersGenerator;->F([BI[B[BI)V +HSPLcom/android/org/bouncycastle/crypto/generators/PKCS5S2ParametersGenerator;->F([BI[B[BI)V+]Lcom/android/org/bouncycastle/crypto/Mac;Lcom/android/org/bouncycastle/crypto/macs/HMac; HSPLcom/android/org/bouncycastle/crypto/generators/PKCS5S2ParametersGenerator;->generateDerivedKey(I)[B HSPLcom/android/org/bouncycastle/crypto/generators/PKCS5S2ParametersGenerator;->generateDerivedMacParameters(I)Lcom/android/org/bouncycastle/crypto/CipherParameters; HSPLcom/android/org/bouncycastle/crypto/generators/PKCS5S2ParametersGenerator;->generateDerivedParameters(I)Lcom/android/org/bouncycastle/crypto/CipherParameters; HSPLcom/android/org/bouncycastle/crypto/macs/HMac;-><clinit>()V HSPLcom/android/org/bouncycastle/crypto/macs/HMac;-><init>(Lcom/android/org/bouncycastle/crypto/Digest;)V HSPLcom/android/org/bouncycastle/crypto/macs/HMac;-><init>(Lcom/android/org/bouncycastle/crypto/Digest;I)V -HSPLcom/android/org/bouncycastle/crypto/macs/HMac;->doFinal([BI)I +HSPLcom/android/org/bouncycastle/crypto/macs/HMac;->doFinal([BI)I+]Lcom/android/org/bouncycastle/crypto/Digest;Lcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest$SHA1; HSPLcom/android/org/bouncycastle/crypto/macs/HMac;->getByteLength(Lcom/android/org/bouncycastle/crypto/Digest;)I HSPLcom/android/org/bouncycastle/crypto/macs/HMac;->getMacSize()I HSPLcom/android/org/bouncycastle/crypto/macs/HMac;->init(Lcom/android/org/bouncycastle/crypto/CipherParameters;)V -HSPLcom/android/org/bouncycastle/crypto/macs/HMac;->update([BII)V +HSPLcom/android/org/bouncycastle/crypto/macs/HMac;->update([BII)V+]Lcom/android/org/bouncycastle/crypto/Digest;Lcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest$SHA1; HSPLcom/android/org/bouncycastle/crypto/macs/HMac;->xorPad([BIB)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 @@ -23432,26 +23459,26 @@ HSPLcom/android/org/bouncycastle/util/Strings;->toUpperCase(Ljava/lang/String;)L HSPLcom/android/org/bouncycastle/util/io/Streams;->readFully(Ljava/io/InputStream;[B)I HSPLcom/android/org/bouncycastle/util/io/Streams;->readFully(Ljava/io/InputStream;[BII)I HSPLcom/android/org/kxml2/io/KXmlParser;-><init>()V -HSPLcom/android/org/kxml2/io/KXmlParser;->adjustNsp()Z +HSPLcom/android/org/kxml2/io/KXmlParser;->adjustNsp()Z+]Ljava/lang/String;Ljava/lang/String;]Lcom/android/org/kxml2/io/KXmlParser;Lcom/android/org/kxml2/io/KXmlParser; 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;->fillBuffer(I)Z+]Ljava/io/Reader;Ljava/io/InputStreamReader; 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;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)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;->getNamespace(Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Lcom/android/org/kxml2/io/KXmlParser;Lcom/android/org/kxml2/io/KXmlParser; 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;->next(Z)I+]Ljava/lang/String;Ljava/lang/String; 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 @@ -23460,11 +23487,11 @@ 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;->readEndTag()V+]Ljava/lang/String;Ljava/lang/String; +HSPLcom/android/org/kxml2/io/KXmlParser;->readEntity(Ljava/lang/StringBuilder;ZZLcom/android/org/kxml2/io/KXmlParser$ValueContext;)V+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/util/Map;Ljava/util/HashMap; +HSPLcom/android/org/kxml2/io/KXmlParser;->readName()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Llibcore/internal/StringPool;Llibcore/internal/StringPool; 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;->readValue(CZZLcom/android/org/kxml2/io/KXmlParser$ValueContext;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Llibcore/internal/StringPool;Llibcore/internal/StringPool; 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 @@ -23510,7 +23537,7 @@ HSPLdalvik/system/BaseDexClassLoader;-><init>(Ljava/lang/String;Ljava/lang/Strin 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;->findClass(Ljava/lang/String;)Ljava/lang/Class;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ldalvik/system/DexPathList;Ldalvik/system/DexPathList;]Ljava/util/List;Ljava/util/ArrayList;]Ljava/lang/ClassLoader;Ldalvik/system/PathClassLoader;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr; 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; @@ -23527,19 +23554,19 @@ 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;->getThreadPolicy()Ldalvik/system/BlockGuard$Policy;+]Ljava/lang/ThreadLocal;Ldalvik/system/BlockGuard$3; HSPLdalvik/system/BlockGuard;->getVmPolicy()Ldalvik/system/BlockGuard$VmPolicy; -HSPLdalvik/system/BlockGuard;->setThreadPolicy(Ldalvik/system/BlockGuard$Policy;)V +HSPLdalvik/system/BlockGuard;->setThreadPolicy(Ldalvik/system/BlockGuard$Policy;)V+]Ljava/lang/ThreadLocal;Ldalvik/system/BlockGuard$3; 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;->open(Ljava/lang/String;)V+]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard; +HSPLdalvik/system/CloseGuard;->openWithCallSite(Ljava/lang/String;Ljava/lang/String;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HSPLdalvik/system/CloseGuard;->setEnabled(Z)V HSPLdalvik/system/CloseGuard;->setReporter(Ldalvik/system/CloseGuard$Reporter;)V -HSPLdalvik/system/CloseGuard;->warnIfOpen()V +HSPLdalvik/system/CloseGuard;->warnIfOpen()V+]Ldalvik/system/CloseGuard$Reporter;Landroid/os/StrictMode$AndroidCloseGuardReporter;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; 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; @@ -23609,7 +23636,7 @@ 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;->isClear()Z+]Ljava/lang/Object;Lcom/android/internal/os/SafeZipPathValidatorCallback;,Ldalvik/system/ZipPathValidator$1; HSPLdalvik/system/ZipPathValidator;->setCallback(Ldalvik/system/ZipPathValidator$Callback;)V HSPLdalvik/system/ZygoteHooks;->cleanLocaleCaches()V HSPLdalvik/system/ZygoteHooks;->gcAndFinalize()V @@ -23634,20 +23661,20 @@ 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;->fill()V+]Ljava/io/InputStream;missing_types 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;->read([BII)I+]Ljava/io/InputStream;missing_types +HSPLjava/io/BufferedInputStream;->read1([BII)I+]Ljava/io/InputStream;Ljava/io/FileInputStream; 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;->flushBuffer()V+]Ljava/io/OutputStream;Ljava/io/FileOutputStream; HSPLjava/io/BufferedOutputStream;->write(I)V HSPLjava/io/BufferedOutputStream;->write([BII)V HSPLjava/io/BufferedReader;-><init>(Ljava/io/Reader;)V @@ -23658,8 +23685,8 @@ 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/BufferedReader;->readLine()Ljava/lang/String;+]Ljava/io/BufferedReader;Ljava/io/BufferedReader; +HSPLjava/io/BufferedReader;->readLine(Z)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HSPLjava/io/BufferedWriter;-><init>(Ljava/io/Writer;)V HSPLjava/io/BufferedWriter;-><init>(Ljava/io/Writer;I)V HSPLjava/io/BufferedWriter;->close()V @@ -23669,8 +23696,8 @@ 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/BufferedWriter;->write(Ljava/lang/String;II)V+]Ljava/lang/String;Ljava/lang/String;]Ljava/io/BufferedWriter;Ljava/io/BufferedWriter; +HSPLjava/io/BufferedWriter;->write([CII)V+]Ljava/io/Writer;Ljava/io/FileWriter;]Ljava/io/BufferedWriter;Ljava/io/BufferedWriter; HSPLjava/io/ByteArrayInputStream;-><init>([B)V HSPLjava/io/ByteArrayInputStream;-><init>([BII)V HSPLjava/io/ByteArrayInputStream;->available()I @@ -23706,15 +23733,15 @@ 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;->readByte()B+]Ljava/io/InputStream;Ljava/io/ByteArrayInputStream;,Ljava/io/BufferedInputStream; HSPLjava/io/DataInputStream;->readFully([B)V -HSPLjava/io/DataInputStream;->readFully([BII)V+]Ljava/io/InputStream;Ljava/io/ByteArrayInputStream; -HSPLjava/io/DataInputStream;->readInt()I +HSPLjava/io/DataInputStream;->readFully([BII)V+]Ljava/io/InputStream;Ljava/io/BufferedInputStream;,Ljava/io/ByteArrayInputStream;,Landroid/content/res/AssetFileDescriptor$AutoCloseInputStream; +HSPLjava/io/DataInputStream;->readInt()I+]Ljava/io/DataInputStream;Ljava/io/DataInputStream; HSPLjava/io/DataInputStream;->readLong()J HSPLjava/io/DataInputStream;->readShort()S+]Ljava/io/DataInputStream;Ljava/io/DataInputStream; HSPLjava/io/DataInputStream;->readUTF()Ljava/lang/String; -HSPLjava/io/DataInputStream;->readUTF(Ljava/io/DataInput;)Ljava/lang/String; -HSPLjava/io/DataInputStream;->readUnsignedByte()I+]Ljava/io/InputStream;Llibcore/io/ClassPathURLStreamHandler$ClassPathURLConnection$1; +HSPLjava/io/DataInputStream;->readUTF(Ljava/io/DataInput;)Ljava/lang/String;+]Ljava/io/DataInput;Ljava/io/DataInputStream; +HSPLjava/io/DataInputStream;->readUnsignedByte()I+]Ljava/io/InputStream;Ljava/io/ByteArrayInputStream;,Llibcore/io/ClassPathURLStreamHandler$ClassPathURLConnection$1; HSPLjava/io/DataInputStream;->readUnsignedShort()I HSPLjava/io/DataInputStream;->skipBytes(I)I HSPLjava/io/DataOutputStream;-><init>(Ljava/io/OutputStream;)V @@ -23723,38 +23750,38 @@ 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;->writeByte(I)V+]Ljava/io/OutputStream;Ljava/io/BufferedOutputStream; 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/DataOutputStream;->writeUTF(Ljava/lang/String;Ljava/io/DataOutput;)I+]Ljava/lang/String;Ljava/lang/String;]Ljava/io/DataOutput;Ljava/io/DataOutputStream; HSPLjava/io/EOFException;-><init>()V HSPLjava/io/EOFException;-><init>(Ljava/lang/String;)V -HSPLjava/io/ExpiringCache;->clear()V +HSPLjava/io/ExpiringCache;->clear()V+]Ljava/util/Map;Ljava/io/ExpiringCache$1; 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/io/File;Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String;]Ljava/io/FileSystem;Ljava/io/UnixFileSystem; +HSPLjava/io/File;-><init>(Ljava/lang/String;)V+]Ljava/io/FileSystem;Ljava/io/UnixFileSystem; 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/io/File;)V+]Ljava/io/FileSystem;Ljava/io/UnixFileSystem; 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;->canWrite()Z+]Ljava/io/File;Ljava/io/File;]Ljava/io/FileSystem;Ljava/io/UnixFileSystem; 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;->delete()Z+]Ljava/io/File;Ljava/io/File;]Ljava/io/FileSystem;Ljava/io/UnixFileSystem; 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;->exists()Z+]Ljava/io/File;Ljava/io/File;]Ljava/io/FileSystem;Ljava/io/UnixFileSystem; +HSPLjava/io/File;->getAbsoluteFile()Ljava/io/File;+]Ljava/io/File;Ljava/io/File;]Ljava/io/FileSystem;Ljava/io/UnixFileSystem; +HSPLjava/io/File;->getAbsolutePath()Ljava/lang/String;+]Ljava/io/FileSystem;Ljava/io/UnixFileSystem; 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;->getName()Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String; +HSPLjava/io/File;->getParent()Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String; HSPLjava/io/File;->getParentFile()Ljava/io/File; HSPLjava/io/File;->getPath()Ljava/lang/String; HSPLjava/io/File;->getPrefixLength()I @@ -23762,19 +23789,19 @@ 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;->isDirectory()Z+]Ljava/io/File;Ljava/io/File;]Ljava/io/FileSystem;Ljava/io/UnixFileSystem; HSPLjava/io/File;->isFile()Z -HSPLjava/io/File;->isInvalid()Z +HSPLjava/io/File;->isInvalid()Z+]Ljava/lang/String;Ljava/lang/String; HSPLjava/io/File;->lastModified()J HSPLjava/io/File;->length()J -HSPLjava/io/File;->list()[Ljava/lang/String; +HSPLjava/io/File;->list()[Ljava/lang/String;+]Ljava/io/File;Ljava/io/File;]Ljava/io/FileSystem;Ljava/io/UnixFileSystem; 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;->renameTo(Ljava/io/File;)Z+]Ljava/io/File;Ljava/io/File;]Ljava/io/FileSystem;Ljava/io/UnixFileSystem; HSPLjava/io/File;->setExecutable(Z)Z HSPLjava/io/File;->setExecutable(ZZ)Z HSPLjava/io/File;->setLastModified(J)Z @@ -23783,7 +23810,7 @@ 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;->toPath()Ljava/nio/file/Path;+]Ljava/nio/file/FileSystem;Lsun/nio/fs/LinuxFileSystem; HSPLjava/io/File;->toString()Ljava/lang/String; HSPLjava/io/File;->toURI()Ljava/net/URI; HSPLjava/io/FileDescriptor$1;->set(Ljava/io/FileDescriptor;I)V @@ -23796,47 +23823,47 @@ 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/File;)V+]Ljava/io/File;Ljava/io/File;]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard; 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;->close()V+]Ljava/nio/channels/FileChannel;Lsun/nio/ch/FileChannelImpl;]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard; 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/FileInputStream;->read([B)I+]Ljava/io/FileInputStream;Ljava/io/FileInputStream;,Landroid/os/ParcelFileDescriptor$AutoCloseInputStream; +HSPLjava/io/FileInputStream;->read([BII)I+]Llibcore/io/IoTracker;Llibcore/io/IoTracker; +HSPLjava/io/FileInputStream;->skip(J)J+]Ldalvik/system/BlockGuard$Policy;Ldalvik/system/BlockGuard$1; 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/File;Z)V+]Ljava/io/File;Ljava/io/File;]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard; 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;->close()V+]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard; 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/FileOutputStream;->write([BII)V+]Llibcore/io/IoTracker;Llibcore/io/IoTracker; 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;->available()I+]Ljava/io/InputStream;Ljava/io/FileInputStream;,Ljava/util/zip/ZipFile$ZipFileInflaterInputStream; HSPLjava/io/FilterInputStream;->close()V HSPLjava/io/FilterInputStream;->mark(I)V HSPLjava/io/FilterInputStream;->markSupported()Z HSPLjava/io/FilterInputStream;->read()I+]Ljava/io/InputStream;Ljava/io/BufferedInputStream;,Ljava/io/PushbackInputStream;,Ljava/util/jar/JarVerifier$VerifierStream; -HSPLjava/io/FilterInputStream;->read([B)I -HSPLjava/io/FilterInputStream;->read([BII)I +HSPLjava/io/FilterInputStream;->read([B)I+]Ljava/io/FilterInputStream;Ljava/util/zip/ZipInputStream;,Ljava/io/PushbackInputStream; +HSPLjava/io/FilterInputStream;->read([BII)I+]Ljava/io/InputStream;missing_types HSPLjava/io/FilterInputStream;->reset()V -HSPLjava/io/FilterInputStream;->skip(J)J +HSPLjava/io/FilterInputStream;->skip(J)J+]Ljava/io/InputStream;Ljava/io/BufferedInputStream; HSPLjava/io/FilterOutputStream;-><init>(Ljava/io/OutputStream;)V HSPLjava/io/FilterOutputStream;->close()V HSPLjava/io/FilterOutputStream;->flush()V @@ -23851,7 +23878,7 @@ 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([B)I+]Ljava/io/InputStream;Lsun/security/util/DerInputBuffer; 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 @@ -23859,44 +23886,44 @@ HSPLjava/io/InputStreamReader;-><init>(Ljava/io/InputStream;Ljava/nio/charset/Ch 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;->read([CII)I+]Lsun/nio/cs/StreamDecoder;Lsun/nio/cs/StreamDecoder; 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;->close()V+]Ljava/io/ObjectInputStream$PeekInputStream;Ljava/io/ObjectInputStream$PeekInputStream; 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;->peek()I+]Ljava/io/ObjectInputStream$PeekInputStream;Ljava/io/ObjectInputStream$PeekInputStream; +HSPLjava/io/ObjectInputStream$BlockDataInputStream;->peekByte()B+]Ljava/io/ObjectInputStream$BlockDataInputStream;Ljava/io/ObjectInputStream$BlockDataInputStream; +HSPLjava/io/ObjectInputStream$BlockDataInputStream;->read()I+]Ljava/io/ObjectInputStream$PeekInputStream;Ljava/io/ObjectInputStream$PeekInputStream; 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;->read([BIIZ)I+]Ljava/io/ObjectInputStream$PeekInputStream;Ljava/io/ObjectInputStream$PeekInputStream; +HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readBlockHeader(Z)I+]Ljava/io/ObjectInputStream$PeekInputStream;Ljava/io/ObjectInputStream$PeekInputStream; HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readBoolean()Z -HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readByte()B +HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readByte()B+]Ljava/io/ObjectInputStream$BlockDataInputStream;Ljava/io/ObjectInputStream$BlockDataInputStream; 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;->readFully([BIIZ)V+]Ljava/io/ObjectInputStream$BlockDataInputStream;Ljava/io/ObjectInputStream$BlockDataInputStream; +HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readInt()I+]Ljava/io/ObjectInputStream$PeekInputStream;Ljava/io/ObjectInputStream$PeekInputStream;]Ljava/io/DataInputStream;Ljava/io/DataInputStream; +HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readLong()J+]Ljava/io/ObjectInputStream$PeekInputStream;Ljava/io/ObjectInputStream$PeekInputStream; +HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readShort()S+]Ljava/io/ObjectInputStream$PeekInputStream;Ljava/io/ObjectInputStream$PeekInputStream; +HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readUTF()Ljava/lang/String;+]Ljava/io/ObjectInputStream$BlockDataInputStream;Ljava/io/ObjectInputStream$BlockDataInputStream; +HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readUTFBody(J)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/io/ObjectInputStream$PeekInputStream;Ljava/io/ObjectInputStream$PeekInputStream; 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;->readUTFSpan(Ljava/lang/StringBuilder;J)J+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; +HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readUnsignedShort()I+]Ljava/io/ObjectInputStream$PeekInputStream;Ljava/io/ObjectInputStream$PeekInputStream;]Ljava/io/DataInputStream;Ljava/io/DataInputStream; +HSPLjava/io/ObjectInputStream$BlockDataInputStream;->refill()V+]Ljava/io/ObjectInputStream$PeekInputStream;Ljava/io/ObjectInputStream$PeekInputStream; 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;-><init>(Ljava/io/ObjectInputStream;Ljava/io/ObjectStreamClass;)V+]Ljava/io/ObjectStreamClass;Ljava/io/ObjectStreamClass; 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;Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/io/ObjectInputStream$HandleTable;Ljava/io/ObjectInputStream$HandleTable; 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$GetFieldImpl;->readFields()V+]Ljava/io/ObjectInputStream$BlockDataInputStream;Ljava/io/ObjectInputStream$BlockDataInputStream;]Ljava/io/ObjectStreamClass;Ljava/io/ObjectStreamClass;]Ljava/io/ObjectStreamField;Ljava/io/ObjectStreamField; HSPLjava/io/ObjectInputStream$HandleTable$HandleList;-><init>()V HSPLjava/io/ObjectInputStream$HandleTable$HandleList;->add(I)V HSPLjava/io/ObjectInputStream$HandleTable;-><init>(I)V @@ -23906,68 +23933,68 @@ 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;->markDependency(II)V+]Ljava/io/ObjectInputStream$HandleTable$HandleList;Ljava/io/ObjectInputStream$HandleTable$HandleList; 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$PeekInputStream;->peek()I+]Ljava/io/InputStream;Ljava/io/ByteArrayInputStream;,Ljava/io/BufferedInputStream; +HSPLjava/io/ObjectInputStream$PeekInputStream;->read()I+]Ljava/io/InputStream;Ljava/io/ByteArrayInputStream;,Ljava/io/BufferedInputStream; +HSPLjava/io/ObjectInputStream$PeekInputStream;->read([BII)I+]Ljava/io/InputStream;Ljava/io/ByteArrayInputStream;,Ljava/io/BufferedInputStream; +HSPLjava/io/ObjectInputStream$PeekInputStream;->readFully([BII)V+]Ljava/io/ObjectInputStream$PeekInputStream;Ljava/io/ObjectInputStream$PeekInputStream; 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;-><init>(Ljava/io/InputStream;)V+]Ljava/io/ObjectInputStream;Ljava/io/ObjectInputStream;,Landroid/os/Parcel$2;]Ljava/io/ObjectInputStream$BlockDataInputStream;Ljava/io/ObjectInputStream$BlockDataInputStream; 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;->clear()V+]Ljava/io/ObjectInputStream$ValidationList;Ljava/io/ObjectInputStream$ValidationList;]Ljava/io/ObjectInputStream$HandleTable;Ljava/io/ObjectInputStream$HandleTable; +HSPLjava/io/ObjectInputStream;->close()V+]Ljava/io/ObjectInputStream$BlockDataInputStream;Ljava/io/ObjectInputStream$BlockDataInputStream; +HSPLjava/io/ObjectInputStream;->defaultReadFields(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V+]Ljava/io/ObjectInputStream$BlockDataInputStream;Ljava/io/ObjectInputStream$BlockDataInputStream;]Ljava/io/ObjectStreamClass;Ljava/io/ObjectStreamClass;]Ljava/io/ObjectStreamField;Ljava/io/ObjectStreamField;]Ljava/io/ObjectInputStream$HandleTable;Ljava/io/ObjectInputStream$HandleTable;]Ljava/lang/Class;Ljava/lang/Class; +HSPLjava/io/ObjectInputStream;->defaultReadObject()V+]Ljava/io/ObjectInputStream$BlockDataInputStream;Ljava/io/ObjectInputStream$BlockDataInputStream;]Ljava/io/ObjectStreamClass;Ljava/io/ObjectStreamClass;]Ljava/io/ObjectInputStream$HandleTable;Ljava/io/ObjectInputStream$HandleTable;]Ljava/io/SerialCallbackContext;Ljava/io/SerialCallbackContext; +HSPLjava/io/ObjectInputStream;->isCustomSubclass()Z+]Ljava/lang/Object;Landroid/os/Parcel$2;]Ljava/lang/Class;Ljava/lang/Class; HSPLjava/io/ObjectInputStream;->latestUserDefinedLoader()Ljava/lang/ClassLoader; -HSPLjava/io/ObjectInputStream;->readArray(Z)Ljava/lang/Object; +HSPLjava/io/ObjectInputStream;->readArray(Z)Ljava/lang/Object;+]Ljava/io/ObjectInputStream$BlockDataInputStream;Ljava/io/ObjectInputStream$BlockDataInputStream;]Ljava/io/ObjectStreamClass;Ljava/io/ObjectStreamClass;]Ljava/io/ObjectInputStream$HandleTable;Ljava/io/ObjectInputStream$HandleTable;]Ljava/lang/Class;Ljava/lang/Class; 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;->readByte()B+]Ljava/io/ObjectInputStream$BlockDataInputStream;Ljava/io/ObjectInputStream$BlockDataInputStream; +HSPLjava/io/ObjectInputStream;->readClassDesc(Z)Ljava/io/ObjectStreamClass;+]Ljava/io/ObjectInputStream$BlockDataInputStream;Ljava/io/ObjectInputStream$BlockDataInputStream; +HSPLjava/io/ObjectInputStream;->readClassDescriptor()Ljava/io/ObjectStreamClass;+]Ljava/io/ObjectStreamClass;Ljava/io/ObjectStreamClass; HSPLjava/io/ObjectInputStream;->readEnum(Z)Ljava/lang/Enum; -HSPLjava/io/ObjectInputStream;->readFields()Ljava/io/ObjectInputStream$GetField; +HSPLjava/io/ObjectInputStream;->readFields()Ljava/io/ObjectInputStream$GetField;+]Ljava/io/ObjectInputStream$GetFieldImpl;Ljava/io/ObjectInputStream$GetFieldImpl;]Ljava/io/ObjectInputStream$BlockDataInputStream;Ljava/io/ObjectInputStream$BlockDataInputStream;]Ljava/io/ObjectStreamClass;Ljava/io/ObjectStreamClass;]Ljava/io/SerialCallbackContext;Ljava/io/SerialCallbackContext; HSPLjava/io/ObjectInputStream;->readFloat()F -HSPLjava/io/ObjectInputStream;->readHandle(Z)Ljava/lang/Object; +HSPLjava/io/ObjectInputStream;->readHandle(Z)Ljava/lang/Object;+]Ljava/io/ObjectInputStream$BlockDataInputStream;Ljava/io/ObjectInputStream$BlockDataInputStream;]Ljava/io/ObjectInputStream$HandleTable;Ljava/io/ObjectInputStream$HandleTable; 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;->readLong()J+]Ljava/io/ObjectInputStream$BlockDataInputStream;Ljava/io/ObjectInputStream$BlockDataInputStream; +HSPLjava/io/ObjectInputStream;->readNonProxyDesc(Z)Ljava/io/ObjectStreamClass;+]Ljava/io/ObjectInputStream;Landroid/os/Parcel$2;,Ljava/io/ObjectInputStream;]Ljava/io/ObjectInputStream$BlockDataInputStream;Ljava/io/ObjectInputStream$BlockDataInputStream;]Ljava/io/ObjectStreamClass;Ljava/io/ObjectStreamClass;]Ljava/io/ObjectInputStream$HandleTable;Ljava/io/ObjectInputStream$HandleTable; +HSPLjava/io/ObjectInputStream;->readNull()Ljava/lang/Object;+]Ljava/io/ObjectInputStream$BlockDataInputStream;Ljava/io/ObjectInputStream$BlockDataInputStream; +HSPLjava/io/ObjectInputStream;->readObject()Ljava/lang/Object;+]Ljava/io/ObjectInputStream$ValidationList;Ljava/io/ObjectInputStream$ValidationList;]Ljava/io/ObjectInputStream$HandleTable;Ljava/io/ObjectInputStream$HandleTable; +HSPLjava/io/ObjectInputStream;->readObject0(Z)Ljava/lang/Object;+]Ljava/io/ObjectInputStream$BlockDataInputStream;Ljava/io/ObjectInputStream$BlockDataInputStream; +HSPLjava/io/ObjectInputStream;->readOrdinaryObject(Z)Ljava/lang/Object;+]Ljava/io/ObjectInputStream$BlockDataInputStream;Ljava/io/ObjectInputStream$BlockDataInputStream;]Ljava/io/ObjectStreamClass;Ljava/io/ObjectStreamClass;]Ljava/io/ObjectInputStream$HandleTable;Ljava/io/ObjectInputStream$HandleTable; +HSPLjava/io/ObjectInputStream;->readSerialData(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V+]Ljava/io/ObjectInputStream$BlockDataInputStream;Ljava/io/ObjectInputStream$BlockDataInputStream;]Ljava/io/ObjectStreamClass;Ljava/io/ObjectStreamClass;]Ljava/io/ObjectInputStream$HandleTable;Ljava/io/ObjectInputStream$HandleTable;]Ljava/io/SerialCallbackContext;Ljava/io/SerialCallbackContext; +HSPLjava/io/ObjectInputStream;->readShort()S+]Ljava/io/ObjectInputStream$BlockDataInputStream;Ljava/io/ObjectInputStream$BlockDataInputStream; +HSPLjava/io/ObjectInputStream;->readStreamHeader()V+]Ljava/io/ObjectInputStream$BlockDataInputStream;Ljava/io/ObjectInputStream$BlockDataInputStream; +HSPLjava/io/ObjectInputStream;->readString(Z)Ljava/lang/String;+]Ljava/io/ObjectInputStream$BlockDataInputStream;Ljava/io/ObjectInputStream$BlockDataInputStream;]Ljava/io/ObjectInputStream$HandleTable;Ljava/io/ObjectInputStream$HandleTable; +HSPLjava/io/ObjectInputStream;->readTypeString()Ljava/lang/String;+]Ljava/io/ObjectInputStream$BlockDataInputStream;Ljava/io/ObjectInputStream$BlockDataInputStream; +HSPLjava/io/ObjectInputStream;->readUTF()Ljava/lang/String;+]Ljava/io/ObjectInputStream$BlockDataInputStream;Ljava/io/ObjectInputStream$BlockDataInputStream; HSPLjava/io/ObjectInputStream;->resolveClass(Ljava/io/ObjectStreamClass;)Ljava/lang/Class; -HSPLjava/io/ObjectInputStream;->skipCustomData()V +HSPLjava/io/ObjectInputStream;->skipCustomData()V+]Ljava/io/ObjectInputStream$BlockDataInputStream;Ljava/io/ObjectInputStream$BlockDataInputStream; 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;->drain()V+]Ljava/io/OutputStream;Ljava/io/ByteArrayOutputStream; 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;->getUTFLength(Ljava/lang/String;)J+]Ljava/lang/String;Ljava/lang/String; +HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->setBlockDataMode(Z)Z+]Ljava/io/ObjectOutputStream$BlockDataOutputStream;Ljava/io/ObjectOutputStream$BlockDataOutputStream; 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;->writeBytes(Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String;]Ljava/io/ObjectOutputStream$BlockDataOutputStream;Ljava/io/ObjectOutputStream$BlockDataOutputStream; 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$BlockDataOutputStream;->writeUTF(Ljava/lang/String;J)V+]Ljava/lang/String;Ljava/lang/String;]Ljava/io/ObjectOutputStream$BlockDataOutputStream;Ljava/io/ObjectOutputStream$BlockDataOutputStream; HSPLjava/io/ObjectOutputStream$HandleTable;-><init>(IF)V HSPLjava/io/ObjectOutputStream$HandleTable;->assign(Ljava/lang/Object;)I HSPLjava/io/ObjectOutputStream$HandleTable;->clear()V @@ -23987,11 +24014,11 @@ 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$ReplaceTable;->lookup(Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/io/ObjectOutputStream$HandleTable;Ljava/io/ObjectOutputStream$HandleTable; 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;->defaultWriteFields(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V+]Ljava/io/ObjectStreamClass;Ljava/io/ObjectStreamClass;]Ljava/io/ObjectStreamField;Ljava/io/ObjectStreamField;]Ljava/io/ObjectOutputStream$BlockDataOutputStream;Ljava/io/ObjectOutputStream$BlockDataOutputStream;]Ljava/lang/Class;Ljava/lang/Class; HSPLjava/io/ObjectOutputStream;->defaultWriteObject()V HSPLjava/io/ObjectOutputStream;->flush()V HSPLjava/io/ObjectOutputStream;->isCustomSubclass()Z @@ -23999,23 +24026,23 @@ 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;->writeClassDesc(Ljava/io/ObjectStreamClass;Z)V+]Ljava/io/ObjectOutputStream$HandleTable;Ljava/io/ObjectOutputStream$HandleTable;]Ljava/io/ObjectStreamClass;Ljava/io/ObjectStreamClass; 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;->writeHandle(I)V+]Ljava/io/ObjectOutputStream$BlockDataOutputStream;Ljava/io/ObjectOutputStream$BlockDataOutputStream; HSPLjava/io/ObjectOutputStream;->writeInt(I)V HSPLjava/io/ObjectOutputStream;->writeLong(J)V -HSPLjava/io/ObjectOutputStream;->writeNonProxyDesc(Ljava/io/ObjectStreamClass;Z)V +HSPLjava/io/ObjectOutputStream;->writeNonProxyDesc(Ljava/io/ObjectStreamClass;Z)V+]Ljava/io/ObjectOutputStream;Ljava/io/ObjectOutputStream;]Ljava/io/ObjectOutputStream$HandleTable;Ljava/io/ObjectOutputStream$HandleTable;]Ljava/io/ObjectStreamClass;Ljava/io/ObjectStreamClass;]Ljava/io/ObjectOutputStream$BlockDataOutputStream;Ljava/io/ObjectOutputStream$BlockDataOutputStream; 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;->writeObject0(Ljava/lang/Object;Z)V+]Ljava/io/ObjectOutputStream$ReplaceTable;Ljava/io/ObjectOutputStream$ReplaceTable;]Ljava/lang/Object;megamorphic_types]Ljava/io/ObjectOutputStream$HandleTable;Ljava/io/ObjectOutputStream$HandleTable;]Ljava/io/ObjectStreamClass;Ljava/io/ObjectStreamClass;]Ljava/io/ObjectOutputStream$BlockDataOutputStream;Ljava/io/ObjectOutputStream$BlockDataOutputStream;]Ljava/lang/Class;Ljava/lang/Class; +HSPLjava/io/ObjectOutputStream;->writeOrdinaryObject(Ljava/lang/Object;Ljava/io/ObjectStreamClass;Z)V+]Ljava/io/ObjectOutputStream$HandleTable;Ljava/io/ObjectOutputStream$HandleTable;]Ljava/io/ObjectStreamClass;Ljava/io/ObjectStreamClass;]Ljava/io/ObjectOutputStream$BlockDataOutputStream;Ljava/io/ObjectOutputStream$BlockDataOutputStream; +HSPLjava/io/ObjectOutputStream;->writeSerialData(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V+]Ljava/io/ObjectStreamClass;Ljava/io/ObjectStreamClass;]Ljava/io/ObjectOutputStream$BlockDataOutputStream;Ljava/io/ObjectOutputStream$BlockDataOutputStream;]Ljava/io/SerialCallbackContext;Ljava/io/SerialCallbackContext; HSPLjava/io/ObjectOutputStream;->writeShort(I)V HSPLjava/io/ObjectOutputStream;->writeStreamHeader()V -HSPLjava/io/ObjectOutputStream;->writeString(Ljava/lang/String;Z)V +HSPLjava/io/ObjectOutputStream;->writeString(Ljava/lang/String;Z)V+]Ljava/io/ObjectOutputStream$HandleTable;Ljava/io/ObjectOutputStream$HandleTable;]Ljava/io/ObjectOutputStream$BlockDataOutputStream;Ljava/io/ObjectOutputStream$BlockDataOutputStream; 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 @@ -24044,18 +24071,18 @@ 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$FieldReflector;->getObjFieldValues(Ljava/lang/Object;[Ljava/lang/Object;)V+]Lsun/misc/Unsafe;Lsun/misc/Unsafe; +HSPLjava/io/ObjectStreamClass$FieldReflector;->getPrimFieldValues(Ljava/lang/Object;[B)V+]Lsun/misc/Unsafe;Lsun/misc/Unsafe; +HSPLjava/io/ObjectStreamClass$FieldReflector;->setObjFieldValues(Ljava/lang/Object;[Ljava/lang/Object;)V+]Lsun/misc/Unsafe;Lsun/misc/Unsafe;]Ljava/lang/Class;Ljava/lang/Class; +HSPLjava/io/ObjectStreamClass$FieldReflector;->setPrimFieldValues(Ljava/lang/Object;[B)V+]Lsun/misc/Unsafe;Lsun/misc/Unsafe; +HSPLjava/io/ObjectStreamClass$FieldReflectorKey;-><init>(Ljava/lang/Class;[Ljava/io/ObjectStreamField;Ljava/lang/ref/ReferenceQueue;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/String;Ljava/lang/String;]Ljava/io/ObjectStreamField;Ljava/io/ObjectStreamField; +HSPLjava/io/ObjectStreamClass$FieldReflectorKey;->equals(Ljava/lang/Object;)Z+]Ljava/lang/String;Ljava/lang/String;]Ljava/io/ObjectStreamClass$FieldReflectorKey;Ljava/io/ObjectStreamClass$FieldReflectorKey; 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;->equals(Ljava/lang/Object;)Z+]Ljava/io/ObjectStreamClass$WeakClassKey;Ljava/io/ObjectStreamClass$WeakClassKey; HSPLjava/io/ObjectStreamClass$WeakClassKey;->hashCode()I HSPLjava/io/ObjectStreamClass;->-$$Nest$fgetexternalizable(Ljava/io/ObjectStreamClass;)Z HSPLjava/io/ObjectStreamClass;->-$$Nest$fgetisEnum(Ljava/io/ObjectStreamClass;)Z @@ -24080,17 +24107,17 @@ 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;->classNamesEqual(Ljava/lang/String;Ljava/lang/String;)Z+]Ljava/lang/String;Ljava/lang/String; HSPLjava/io/ObjectStreamClass;->computeDefaultSUID(Ljava/lang/Class;)J -HSPLjava/io/ObjectStreamClass;->computeFieldOffsets()V +HSPLjava/io/ObjectStreamClass;->computeFieldOffsets()V+]Ljava/io/ObjectStreamField;Ljava/io/ObjectStreamField; 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;->getClassDataLayout0()[Ljava/io/ObjectStreamClass$ClassDataSlot;+]Ljava/lang/String;Ljava/lang/String;]Ljava/util/HashSet;Ljava/util/HashSet;]Ljava/lang/Class;Ljava/lang/Class;]Ljava/util/ArrayList;Ljava/util/ArrayList; 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;->getField(Ljava/lang/String;Ljava/lang/Class;)Ljava/io/ObjectStreamField;+]Ljava/lang/String;Ljava/lang/String;]Ljava/io/ObjectStreamField;Ljava/io/ObjectStreamField;]Ljava/lang/Class;Ljava/lang/Class; 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; @@ -24101,10 +24128,10 @@ HSPLjava/io/ObjectStreamClass;->getPackageName(Ljava/lang/Class;)Ljava/lang/Stri 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;->getReflector([Ljava/io/ObjectStreamField;Ljava/io/ObjectStreamClass;)Ljava/io/ObjectStreamClass$FieldReflector;+]Ljava/lang/ref/Reference;Ljava/lang/ref/SoftReference;]Ljava/util/concurrent/ConcurrentMap;Ljava/util/concurrent/ConcurrentHashMap; 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;->getSerialVersionUID()J+]Ljava/lang/Long;Ljava/lang/Long; 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; @@ -24113,7 +24140,7 @@ 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;->initNonProxy(Ljava/io/ObjectStreamClass;Ljava/lang/Class;Ljava/lang/ClassNotFoundException;Ljava/io/ObjectStreamClass;)V+]Ljava/io/ObjectStreamClass$FieldReflector;Ljava/io/ObjectStreamClass$FieldReflector;]Ljava/io/ObjectStreamClass;Ljava/io/ObjectStreamClass;]Ljava/lang/Long;Ljava/lang/Long;]Ljava/lang/Class;Ljava/lang/Class; 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 @@ -24123,19 +24150,19 @@ 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;->lookup(Ljava/lang/Class;Z)Ljava/io/ObjectStreamClass;+]Ljava/lang/ref/Reference;Ljava/lang/ref/SoftReference;]Ljava/util/concurrent/ConcurrentMap;Ljava/util/concurrent/ConcurrentHashMap;]Ljava/io/ObjectStreamClass$EntryFuture;Ljava/io/ObjectStreamClass$EntryFuture;]Ljava/lang/Class;Ljava/lang/Class; HSPLjava/io/ObjectStreamClass;->matchFields([Ljava/io/ObjectStreamField;Ljava/io/ObjectStreamClass;)[Ljava/io/ObjectStreamField; -HSPLjava/io/ObjectStreamClass;->newInstance()Ljava/lang/Object; +HSPLjava/io/ObjectStreamClass;->newInstance()Ljava/lang/Object;+]Ljava/lang/reflect/Constructor;Ljava/lang/reflect/Constructor; 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;->processQueue(Ljava/lang/ref/ReferenceQueue;Ljava/util/concurrent/ConcurrentMap;)V+]Ljava/lang/ref/ReferenceQueue;Ljava/lang/ref/ReferenceQueue; +HSPLjava/io/ObjectStreamClass;->readNonProxy(Ljava/io/ObjectInputStream;)V+]Ljava/io/ObjectInputStream;Landroid/os/Parcel$2;,Ljava/io/ObjectInputStream; 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/ObjectStreamClass;->setObjFieldValues(Ljava/lang/Object;[Ljava/lang/Object;)V+]Ljava/io/ObjectStreamClass$FieldReflector;Ljava/io/ObjectStreamClass$FieldReflector; +HSPLjava/io/ObjectStreamClass;->setPrimFieldValues(Ljava/lang/Object;[B)V+]Ljava/io/ObjectStreamClass$FieldReflector;Ljava/io/ObjectStreamClass$FieldReflector; +HSPLjava/io/ObjectStreamClass;->writeNonProxy(Ljava/io/ObjectOutputStream;)V+]Ljava/io/ObjectOutputStream;Ljava/io/ObjectOutputStream;]Ljava/io/ObjectStreamClass;Ljava/io/ObjectStreamClass;]Ljava/io/ObjectStreamField;Ljava/io/ObjectStreamField; 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/String;Ljava/lang/String;Z)V+]Ljava/lang/String;Ljava/lang/String; HSPLjava/io/ObjectStreamField;-><init>(Ljava/lang/reflect/Field;ZZ)V HSPLjava/io/ObjectStreamField;->compareTo(Ljava/lang/Object;)I HSPLjava/io/ObjectStreamField;->getClassSignature(Ljava/lang/Class;)Ljava/lang/String; @@ -24144,7 +24171,7 @@ HSPLjava/io/ObjectStreamField;->getName()Ljava/lang/String; HSPLjava/io/ObjectStreamField;->getOffset()I HSPLjava/io/ObjectStreamField;->getSignature()Ljava/lang/String; HSPLjava/io/ObjectStreamField;->getType()Ljava/lang/Class; -HSPLjava/io/ObjectStreamField;->getTypeCode()C +HSPLjava/io/ObjectStreamField;->getTypeCode()C+]Ljava/lang/String;Ljava/lang/String; HSPLjava/io/ObjectStreamField;->getTypeString()Ljava/lang/String; HSPLjava/io/ObjectStreamField;->isPrimitive()Z HSPLjava/io/ObjectStreamField;->isUnshared()Z @@ -24152,7 +24179,7 @@ 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/OutputStream;->write([B)V+]Ljava/io/OutputStream;missing_types 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 @@ -24172,28 +24199,28 @@ 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(C)Ljava/io/PrintWriter;+]Ljava/io/PrintWriter;Lcom/android/internal/util/FastPrintWriter; +HSPLjava/io/PrintWriter;->append(Ljava/lang/CharSequence;)Ljava/io/PrintWriter;+]Ljava/io/PrintWriter;Lcom/android/internal/util/FastPrintWriter; 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;->flush()V+]Ljava/io/Writer;Landroid/util/Log$ImmediateLogWriter; +HSPLjava/io/PrintWriter;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;+]Ljava/util/Formatter;Ljava/util/Formatter; +HSPLjava/io/PrintWriter;->newLine()V+]Ljava/io/Writer;missing_types 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(Ljava/lang/String;)V+]Ljava/io/PrintWriter;Lcom/android/internal/util/LineBreakBufferedWriter;,Ljava/io/PrintWriter; 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;->println(Ljava/lang/Object;)V+]Ljava/io/PrintWriter;Lcom/android/internal/util/LineBreakBufferedWriter;,Lcom/android/internal/util/FastPrintWriter; +HSPLjava/io/PrintWriter;->println(Ljava/lang/String;)V+]Ljava/io/PrintWriter;Ljava/io/PrintWriter;,Lcom/android/internal/util/LineBreakBufferedWriter; HSPLjava/io/PrintWriter;->write(I)V -HSPLjava/io/PrintWriter;->write(Ljava/lang/String;)V +HSPLjava/io/PrintWriter;->write(Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String;]Ljava/io/PrintWriter;Lcom/android/internal/util/LineBreakBufferedWriter;,Ljava/io/PrintWriter; HSPLjava/io/PrintWriter;->write(Ljava/lang/String;II)V -HSPLjava/io/PrintWriter;->write([CII)V +HSPLjava/io/PrintWriter;->write([CII)V+]Ljava/io/Writer;Landroid/util/Log$ImmediateLogWriter; HSPLjava/io/PushbackInputStream;-><init>(Ljava/io/InputStream;I)V HSPLjava/io/PushbackInputStream;->close()V HSPLjava/io/PushbackInputStream;->ensureOpen()V @@ -24205,7 +24232,7 @@ 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;)V+]Ljava/lang/String;Ljava/lang/String;]Ljava/io/File;Ljava/io/File;]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard; HSPLjava/io/RandomAccessFile;-><init>(Ljava/lang/String;Ljava/lang/String;)V HSPLjava/io/RandomAccessFile;->close()V HSPLjava/io/RandomAccessFile;->finalize()V @@ -24263,26 +24290,26 @@ 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/StringWriter;->write([CII)V+]Ljava/lang/StringBuffer;Ljava/lang/StringBuffer; HSPLjava/io/UnixFileSystem;->canonicalize(Ljava/lang/String;)Ljava/lang/String; -HSPLjava/io/UnixFileSystem;->checkAccess(Ljava/io/File;I)Z +HSPLjava/io/UnixFileSystem;->checkAccess(Ljava/io/File;I)Z+]Ljava/io/File;Ljava/io/File;]Llibcore/io/Os;Landroid/app/ActivityThread$AndroidOs; 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;->delete(Ljava/io/File;)Z+]Ljava/io/ExpiringCache;Ljava/io/ExpiringCache;]Ljava/io/File;Ljava/io/File;]Llibcore/io/Os;Landroid/app/ActivityThread$AndroidOs; +HSPLjava/io/UnixFileSystem;->getBooleanAttributes(Ljava/io/File;)I+]Ljava/lang/String;Ljava/lang/String;]Ljava/io/File;Ljava/io/File;]Ldalvik/system/BlockGuard$VmPolicy;Landroid/os/StrictMode$5;]Ldalvik/system/BlockGuard$Policy;Ldalvik/system/BlockGuard$1;,Landroid/os/StrictMode$AndroidBlockGuardPolicy; 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;->getLength(Ljava/io/File;)J+]Ljava/io/File;Ljava/io/File;]Llibcore/io/Os;Landroid/app/ActivityThread$AndroidOs; 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;->isAbsolute(Ljava/io/File;)Z+]Ljava/io/File;Ljava/io/File; +HSPLjava/io/UnixFileSystem;->list(Ljava/io/File;)[Ljava/lang/String;+]Ljava/io/File;Ljava/io/File;]Ldalvik/system/BlockGuard$VmPolicy;Ldalvik/system/BlockGuard$2;,Landroid/os/StrictMode$5;]Ldalvik/system/BlockGuard$Policy;Ldalvik/system/BlockGuard$1;,Landroid/os/StrictMode$AndroidBlockGuardPolicy; +HSPLjava/io/UnixFileSystem;->normalize(Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String; +HSPLjava/io/UnixFileSystem;->prefixLength(Ljava/lang/String;)I+]Ljava/lang/String;Ljava/lang/String; +HSPLjava/io/UnixFileSystem;->rename(Ljava/io/File;Ljava/io/File;)Z+]Ljava/io/ExpiringCache;Ljava/io/ExpiringCache;]Ljava/io/File;Ljava/io/File;]Llibcore/io/Os;Landroid/app/ActivityThread$AndroidOs; +HSPLjava/io/UnixFileSystem;->resolve(Ljava/io/File;)Ljava/lang/String;+]Ljava/io/File;Ljava/io/File;]Ljava/io/UnixFileSystem;Ljava/io/UnixFileSystem; +HSPLjava/io/UnixFileSystem;->resolve(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]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 @@ -24291,26 +24318,26 @@ 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;+]Ljava/lang/AbstractStringBuilder;Ljava/lang/StringBuilder; +HSPLjava/lang/AbstractStringBuilder;->append(C)Ljava/lang/AbstractStringBuilder;+]Ljava/lang/AbstractStringBuilder;Ljava/lang/StringBuilder;,Ljava/lang/StringBuffer; 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(I)Ljava/lang/AbstractStringBuilder;+]Ljava/lang/AbstractStringBuilder;Ljava/lang/StringBuilder;,Ljava/lang/StringBuffer; +HSPLjava/lang/AbstractStringBuilder;->append(J)Ljava/lang/AbstractStringBuilder;+]Ljava/lang/AbstractStringBuilder;Ljava/lang/StringBuilder; +HSPLjava/lang/AbstractStringBuilder;->append(Ljava/lang/AbstractStringBuilder;)Ljava/lang/AbstractStringBuilder;+]Ljava/lang/AbstractStringBuilder;Ljava/lang/StringBuilder;,Ljava/lang/StringBuffer; +HSPLjava/lang/AbstractStringBuilder;->append(Ljava/lang/CharSequence;)Ljava/lang/AbstractStringBuilder;+]Ljava/lang/CharSequence;Ljava/nio/HeapCharBuffer;,Landroid/icu/impl/FormattedStringBuilder;]Ljava/lang/AbstractStringBuilder;Ljava/lang/StringBuilder;,Ljava/lang/StringBuffer; +HSPLjava/lang/AbstractStringBuilder;->append(Ljava/lang/CharSequence;II)Ljava/lang/AbstractStringBuilder;+]Ljava/lang/CharSequence;Ljava/lang/String;,Ljava/nio/HeapCharBuffer;,Landroid/icu/impl/FormattedStringBuilder; HSPLjava/lang/AbstractStringBuilder;->append(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder;+]Ljava/lang/String;Ljava/lang/String; 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+]Ljava/lang/CharSequence;Ljava/lang/String;]Ljava/lang/AbstractStringBuilder;Ljava/lang/StringBuilder; -HSPLjava/lang/AbstractStringBuilder;->appendChars([CII)V +HSPLjava/lang/AbstractStringBuilder;->appendChars(Ljava/lang/CharSequence;II)V+]Ljava/lang/CharSequence;Ljava/lang/String;,Ljava/nio/HeapCharBuffer;,Landroid/icu/impl/FormattedStringBuilder;]Ljava/lang/AbstractStringBuilder;Ljava/lang/StringBuilder;,Ljava/lang/StringBuffer; +HSPLjava/lang/AbstractStringBuilder;->appendChars([CII)V+]Ljava/lang/AbstractStringBuilder;Ljava/lang/StringBuilder;,Ljava/lang/StringBuffer; HSPLjava/lang/AbstractStringBuilder;->appendCodePoint(I)Ljava/lang/AbstractStringBuilder; HSPLjava/lang/AbstractStringBuilder;->appendNull()Ljava/lang/AbstractStringBuilder; -HSPLjava/lang/AbstractStringBuilder;->charAt(I)C +HSPLjava/lang/AbstractStringBuilder;->charAt(I)C+]Ljava/lang/AbstractStringBuilder;Ljava/lang/StringBuilder;,Ljava/lang/StringBuffer; HSPLjava/lang/AbstractStringBuilder;->checkRange(III)V HSPLjava/lang/AbstractStringBuilder;->checkRangeSIOOBE(III)V -HSPLjava/lang/AbstractStringBuilder;->codePointAt(I)I +HSPLjava/lang/AbstractStringBuilder;->codePointAt(I)I+]Ljava/lang/AbstractStringBuilder;Ljava/lang/StringBuffer; HSPLjava/lang/AbstractStringBuilder;->delete(II)Ljava/lang/AbstractStringBuilder; HSPLjava/lang/AbstractStringBuilder;->deleteCharAt(I)Ljava/lang/AbstractStringBuilder; HSPLjava/lang/AbstractStringBuilder;->ensureCapacity(I)V @@ -24320,29 +24347,29 @@ 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;->insert(IC)Ljava/lang/AbstractStringBuilder; +HSPLjava/lang/AbstractStringBuilder;->insert(IC)Ljava/lang/AbstractStringBuilder;+]Ljava/lang/AbstractStringBuilder;Ljava/lang/StringBuilder; HSPLjava/lang/AbstractStringBuilder;->insert(II)Ljava/lang/AbstractStringBuilder; -HSPLjava/lang/AbstractStringBuilder;->insert(ILjava/lang/String;)Ljava/lang/AbstractStringBuilder; +HSPLjava/lang/AbstractStringBuilder;->insert(ILjava/lang/String;)Ljava/lang/AbstractStringBuilder;+]Ljava/lang/String;Ljava/lang/String; 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+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/AbstractStringBuilder;Ljava/lang/StringBuilder;,Ljava/lang/StringBuffer; -HSPLjava/lang/AbstractStringBuilder;->replace(IILjava/lang/String;)Ljava/lang/AbstractStringBuilder; +HSPLjava/lang/AbstractStringBuilder;->replace(IILjava/lang/String;)Ljava/lang/AbstractStringBuilder;+]Ljava/lang/String;Ljava/lang/String; 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/AbstractStringBuilder;->substring(I)Ljava/lang/String;+]Ljava/lang/AbstractStringBuilder;Ljava/lang/StringBuilder; +HSPLjava/lang/AbstractStringBuilder;->substring(II)Ljava/lang/String;+]Ljava/lang/AbstractStringBuilder;Ljava/lang/StringBuilder; 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;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Boolean;Ljava/lang/Boolean; HSPLjava/lang/Boolean;->getBoolean(Ljava/lang/String;)Z HSPLjava/lang/Boolean;->hashCode()I HSPLjava/lang/Boolean;->hashCode(Z)I @@ -24378,10 +24405,10 @@ 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;->codePointAt(Ljava/lang/CharSequence;I)I+]Ljava/lang/CharSequence;megamorphic_types 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;->codePointCount(Ljava/lang/CharSequence;II)I+]Ljava/lang/CharSequence;Ljava/lang/String; HSPLjava/lang/Character;->digit(CI)I HSPLjava/lang/Character;->digit(II)I HSPLjava/lang/Character;->equals(Ljava/lang/Object;)Z @@ -24432,19 +24459,19 @@ 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;->cast(Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/lang/Class;Ljava/lang/Class; +HSPLjava/lang/Class;->classNameImpliesTopLevel()Z+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/Class;Ljava/lang/Class; 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;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;+]Ljava/lang/Class;Ljava/lang/Class; HSPLjava/lang/Class;->getCanonicalName()Ljava/lang/String; -HSPLjava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader; +HSPLjava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader;+]Ljava/lang/Class;Ljava/lang/Class; 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;->getConstructor0([Ljava/lang/Class;I)Ljava/lang/reflect/Constructor;+]Ljava/lang/reflect/Constructor;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; @@ -24453,7 +24480,7 @@ HSPLjava/lang/Class;->getDeclaredMethods()[Ljava/lang/reflect/Method;+]Ljava/lan 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;->getEnumConstantsShared()[Ljava/lang/Object;+]Ljava/lang/Class;Ljava/lang/Class; 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; @@ -24461,35 +24488,35 @@ 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;->getMethods()[Ljava/lang/reflect/Method;+]Ljava/util/List;Ljava/util/ArrayList; +HSPLjava/lang/Class;->getModifiers()I+]Ljava/lang/Class;Ljava/lang/Class; 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;->getPublicMethodsInternal(Ljava/util/List;)V+]Ljava/lang/Class;Ljava/lang/Class; 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;->getSimpleName()Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/Class;Ljava/lang/Class; +HSPLjava/lang/Class;->getSuperclass()Ljava/lang/Class;+]Ljava/lang/Class;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+]Ljava/lang/Class;Ljava/lang/Class; HSPLjava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z+]Ljava/lang/Class;Ljava/lang/Class; -HSPLjava/lang/Class;->isEnum()Z -HSPLjava/lang/Class;->isInstance(Ljava/lang/Object;)Z+]Ljava/lang/Class;Ljava/lang/Class;]Ljava/lang/Object;missing_types +HSPLjava/lang/Class;->isEnum()Z+]Ljava/lang/Class;Ljava/lang/Class; +HSPLjava/lang/Class;->isInstance(Ljava/lang/Object;)Z+]Ljava/lang/Object;megamorphic_types]Ljava/lang/Class;Ljava/lang/Class; HSPLjava/lang/Class;->isInterface()Z -HSPLjava/lang/Class;->isLocalClass()Z +HSPLjava/lang/Class;->isLocalClass()Z+]Ljava/lang/Class;Ljava/lang/Class; 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/Class;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/Class;Ljava/lang/Class; HSPLjava/lang/ClassCastException;-><init>(Ljava/lang/String;)V HSPLjava/lang/ClassLoader;-><init>()V HSPLjava/lang/ClassLoader;-><init>(Ljava/lang/ClassLoader;)V @@ -24516,7 +24543,7 @@ HSPLjava/lang/Daemons$Daemon;->startPostZygoteFork()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;->doFinalize(Ljava/lang/ref/FinalizerReference;)V+]Ljava/lang/Object;megamorphic_types]Ljava/lang/ref/FinalizerReference;Ljava/lang/ref/FinalizerReference; HSPLjava/lang/Daemons$FinalizerDaemon;->processReference(Ljava/lang/Object;)V+]Ljava/lang/ref/FinalizerReference;Ljava/lang/ref/FinalizerReference; HSPLjava/lang/Daemons$FinalizerDaemon;->runInternal()V HSPLjava/lang/Daemons$FinalizerWatchdogDaemon;->-$$Nest$mmonitoringNeeded(Ljava/lang/Daemons$FinalizerWatchdogDaemon;I)V @@ -24566,13 +24593,13 @@ 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;->getDeclaringClass()Ljava/lang/Class;+]Ljava/lang/Class;Ljava/lang/Class;]Ljava/lang/Object;missing_types +HSPLjava/lang/Enum;->getSharedConstants(Ljava/lang/Class;)[Ljava/lang/Enum;+]Llibcore/util/BasicLruCache;Ljava/lang/Enum$1; 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/Enum;->valueOf(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/Enum;missing_types HSPLjava/lang/Error;-><init>(Ljava/lang/String;)V HSPLjava/lang/Exception;-><init>()V HSPLjava/lang/Exception;-><init>(Ljava/lang/String;)V @@ -24616,11 +24643,11 @@ 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;->compareTo(Ljava/lang/Object;)I+]Ljava/lang/Integer;Ljava/lang/Integer; 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;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Integer;Ljava/lang/Integer; HSPLjava/lang/Integer;->floatValue()F HSPLjava/lang/Integer;->formatUnsignedInt(II[BII)V HSPLjava/lang/Integer;->getChars(II[B)I @@ -24639,7 +24666,7 @@ 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;->parseInt(Ljava/lang/String;I)I+]Ljava/lang/String;Ljava/lang/String; HSPLjava/lang/Integer;->reverse(I)I HSPLjava/lang/Integer;->reverseBytes(I)I HSPLjava/lang/Integer;->rotateLeft(II)I @@ -24665,12 +24692,12 @@ 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;->compareTo(Ljava/lang/Object;)I+]Ljava/lang/Long;Ljava/lang/Long; 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;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Long;Ljava/lang/Long; HSPLjava/lang/Long;->formatUnsignedLong0(JI[BII)V HSPLjava/lang/Long;->getChars(JI[B)I HSPLjava/lang/Long;->getChars(JI[C)I @@ -24761,9 +24788,9 @@ 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;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/Object;Landroid/os/BinderProxy;]Ljava/lang/Class;Ljava/lang/Class; HSPLjava/lang/Object;->wait()V -HSPLjava/lang/Object;->wait(J)V +HSPLjava/lang/Object;->wait(J)V+]Ljava/lang/Object;missing_types 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 @@ -24809,88 +24836,88 @@ 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;->equals(Ljava/lang/Object;)Z+]Ljava/lang/String;Ljava/lang/String; 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;->hashCode()I+]Ljava/lang/String;Ljava/lang/String; 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/StackTraceElement;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/StackTraceElement;Ljava/lang/StackTraceElement; +HSPLjava/lang/String$CaseInsensitiveComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I+]Ljava/lang/String$CaseInsensitiveComparator;Ljava/lang/String$CaseInsensitiveComparator; +HSPLjava/lang/String$CaseInsensitiveComparator;->compare(Ljava/lang/String;Ljava/lang/String;)I+]Ljava/lang/String;Ljava/lang/String; 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;->codePointAt(I)I+]Ljava/lang/String;Ljava/lang/String; HSPLjava/lang/String;->codePointCount(II)I HSPLjava/lang/String;->coder()B HSPLjava/lang/String;->compareTo(Ljava/lang/Object;)I+]Ljava/lang/String;Ljava/lang/String; HSPLjava/lang/String;->compareToIgnoreCase(Ljava/lang/String;)I -HSPLjava/lang/String;->contains(Ljava/lang/CharSequence;)Z +HSPLjava/lang/String;->contains(Ljava/lang/CharSequence;)Z+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/CharSequence;Ljava/lang/String; 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;->endsWith(Ljava/lang/String;)Z+]Ljava/lang/String;Ljava/lang/String; HSPLjava/lang/String;->equals(Ljava/lang/Object;)Z+]Ljava/lang/String;Ljava/lang/String; -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;->equalsIgnoreCase(Ljava/lang/String;)Z+]Ljava/lang/String;Ljava/lang/String; +HSPLjava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;+]Ljava/util/Formatter;Ljava/util/Formatter; +HSPLjava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;+]Ljava/util/Formatter;Ljava/util/Formatter; +HSPLjava/lang/String;->getBytes()[B+]Ljava/lang/String;Ljava/lang/String; HSPLjava/lang/String;->getBytes(Ljava/lang/String;)[B -HSPLjava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B+]Ljava/lang/String;Ljava/lang/String;]Ljava/nio/charset/Charset;Lcom/android/icu/charset/CharsetICU; +HSPLjava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B+]Ljava/lang/String;Ljava/lang/String;]Ljava/nio/charset/Charset;Lcom/android/icu/charset/CharsetICU;]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; HSPLjava/lang/String;->getBytes([BIB)V+]Ljava/lang/String;Ljava/lang/String; -HSPLjava/lang/String;->getChars(II[CI)V +HSPLjava/lang/String;->getChars(II[CI)V+]Ljava/lang/String;Ljava/lang/String; HSPLjava/lang/String;->getChars([CI)V HSPLjava/lang/String;->hashCode()I+]Ljava/lang/String;Ljava/lang/String; -HSPLjava/lang/String;->indexOf(I)I +HSPLjava/lang/String;->indexOf(I)I+]Ljava/lang/String;Ljava/lang/String; HSPLjava/lang/String;->indexOf(II)I+]Ljava/lang/String;Ljava/lang/String; HSPLjava/lang/String;->indexOf(Ljava/lang/String;)I+]Ljava/lang/String;Ljava/lang/String; HSPLjava/lang/String;->indexOf(Ljava/lang/String;I)I HSPLjava/lang/String;->indexOf(Ljava/lang/String;Ljava/lang/String;I)I+]Ljava/lang/String;Ljava/lang/String; -HSPLjava/lang/String;->indexOf([BBILjava/lang/String;I)I +HSPLjava/lang/String;->indexOf([BBILjava/lang/String;I)I+]Ljava/lang/String;Ljava/lang/String; 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(I)I+]Ljava/lang/String;Ljava/lang/String; HSPLjava/lang/String;->lastIndexOf(II)I+]Ljava/lang/String;Ljava/lang/String; -HSPLjava/lang/String;->lastIndexOf(Ljava/lang/String;)I +HSPLjava/lang/String;->lastIndexOf(Ljava/lang/String;)I+]Ljava/lang/String;Ljava/lang/String; 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(Ljava/lang/String;Ljava/lang/String;I)I+]Ljava/lang/String;Ljava/lang/String; 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;->regionMatches(ILjava/lang/String;II)Z+]Ljava/lang/String;Ljava/lang/String; +HSPLjava/lang/String;->regionMatches(ZILjava/lang/String;II)Z+]Ljava/lang/String;Ljava/lang/String; +HSPLjava/lang/String;->replace(CC)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String; +HSPLjava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]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;)Z+]Ljava/lang/String;Ljava/lang/String; HSPLjava/lang/String;->startsWith(Ljava/lang/String;I)Z+]Ljava/lang/String;Ljava/lang/String; -HSPLjava/lang/String;->subSequence(II)Ljava/lang/CharSequence; -HSPLjava/lang/String;->substring(I)Ljava/lang/String; +HSPLjava/lang/String;->subSequence(II)Ljava/lang/CharSequence;+]Ljava/lang/String;Ljava/lang/String; +HSPLjava/lang/String;->substring(I)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String; HSPLjava/lang/String;->substring(II)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String; -HSPLjava/lang/String;->toLowerCase()Ljava/lang/String; +HSPLjava/lang/String;->toLowerCase()Ljava/lang/String;+]Ljava/lang/String;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;->toUpperCase(Ljava/util/Locale;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String; +HSPLjava/lang/String;->trim()Ljava/lang/String;+]Ljava/lang/String;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(Ljava/lang/Object;)Ljava/lang/String;+]Ljava/lang/Object;megamorphic_types 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;-><init>(Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuffer;Ljava/lang/StringBuffer; HSPLjava/lang/StringBuffer;->append(C)Ljava/lang/StringBuffer; HSPLjava/lang/StringBuffer;->append(I)Ljava/lang/StringBuffer; HSPLjava/lang/StringBuffer;->append(J)Ljava/lang/StringBuffer; @@ -24914,22 +24941,22 @@ HSPLjava/lang/StringBuffer;->setLength(I)V HSPLjava/lang/StringBuffer;->toString()Ljava/lang/String;+]Ljava/lang/StringBuffer;Ljava/lang/StringBuffer; 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;-><init>(Ljava/lang/CharSequence;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/CharSequence;Ljava/lang/StringBuilder;,Ljava/lang/String; +HSPLjava/lang/StringBuilder;-><init>(Ljava/lang/String;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/String;Ljava/lang/String; HSPLjava/lang/StringBuilder;->append(C)Ljava/lang/AbstractStringBuilder;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; -HSPLjava/lang/StringBuilder;->append(C)Ljava/lang/Appendable; +HSPLjava/lang/StringBuilder;->append(C)Ljava/lang/Appendable;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; 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/Appendable;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; 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/Appendable;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HSPLjava/lang/StringBuilder;->append(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder; HSPLjava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; -HSPLjava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder; +HSPLjava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; 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; @@ -24961,13 +24988,13 @@ 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([BIILjava/nio/charset/Charset;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Ljava/nio/charset/Charset;Lcom/android/icu/charset/CharsetICU; 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;->indexOf([BILjava/lang/String;II)I+]Ljava/lang/String;Ljava/lang/String; HSPLjava/lang/StringLatin1;->inflate([BI[BII)V HSPLjava/lang/StringLatin1;->lastIndexOf([BILjava/lang/String;II)I HSPLjava/lang/StringLatin1;->newString([BII)Ljava/lang/String; @@ -24989,11 +25016,11 @@ 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;->checkKey(Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String; 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/util/Properties;Ljava/lang/System$PropertiesWithNonOverrideableDefaults; 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; @@ -25003,18 +25030,18 @@ 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;->runFinalization()V+]Ljava/lang/Runtime;Ljava/lang/Runtime; 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$State;->values()[Ljava/lang/Thread$State;+][Ljava/lang/Thread$State;[Ljava/lang/Thread$State; HSPLjava/lang/Thread;-><init>()V -HSPLjava/lang/Thread;-><init>(Ljava/lang/Runnable;)V +HSPLjava/lang/Thread;-><init>(Ljava/lang/Runnable;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; 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/Runnable;Ljava/lang/String;JLjava/security/AccessControlContext;Z)V+]Ljava/lang/Thread;missing_types]Ljava/lang/ThreadGroup;Ljava/lang/ThreadGroup; 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 @@ -25027,9 +25054,9 @@ 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;->getThreadGroup()Ljava/lang/ThreadGroup;+]Ljava/lang/Thread;Ljava/lang/Thread; HSPLjava/lang/Thread;->getUncaughtExceptionHandler()Ljava/lang/Thread$UncaughtExceptionHandler; -HSPLjava/lang/Thread;->init2(Ljava/lang/Thread;Z)V +HSPLjava/lang/Thread;->init2(Ljava/lang/Thread;Z)V+]Ljava/lang/Thread;Ljava/lang/Thread; HSPLjava/lang/Thread;->interrupt()V HSPLjava/lang/Thread;->isAlive()Z HSPLjava/lang/Thread;->isDaemon()Z @@ -25049,7 +25076,7 @@ HSPLjava/lang/Thread;->setUncaughtExceptionHandler(Ljava/lang/Thread$UncaughtExc 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;->start()V+]Ljava/lang/ThreadGroup;Ljava/lang/ThreadGroup; 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 @@ -25061,7 +25088,7 @@ 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/Thread;IZ)I+]Ljava/lang/Thread;missing_types HSPLjava/lang/ThreadGroup;->enumerate([Ljava/lang/ThreadGroup;)I HSPLjava/lang/ThreadGroup;->enumerate([Ljava/lang/ThreadGroup;IZ)I HSPLjava/lang/ThreadGroup;->getMaxPriority()I @@ -25076,29 +25103,29 @@ HSPLjava/lang/ThreadLocal$ThreadLocalMap;->-$$Nest$mremove(Ljava/lang/ThreadLoca 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;->cleanSomeSlots(II)Z+]Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;Ljava/lang/ThreadLocal$ThreadLocalMap$Entry; HSPLjava/lang/ThreadLocal$ThreadLocalMap;->expungeStaleEntries()V -HSPLjava/lang/ThreadLocal$ThreadLocalMap;->expungeStaleEntry(I)I +HSPLjava/lang/ThreadLocal$ThreadLocalMap;->expungeStaleEntry(I)I+]Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;Ljava/lang/ThreadLocal$ThreadLocalMap$Entry; HSPLjava/lang/ThreadLocal$ThreadLocalMap;->getEntry(Ljava/lang/ThreadLocal;)Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;+]Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;Ljava/lang/ThreadLocal$ThreadLocalMap$Entry; HSPLjava/lang/ThreadLocal$ThreadLocalMap;->getEntryAfterMiss(Ljava/lang/ThreadLocal;ILjava/lang/ThreadLocal$ThreadLocalMap$Entry;)Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;+]Ljava/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;->remove(Ljava/lang/ThreadLocal;)V+]Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;Ljava/lang/ThreadLocal$ThreadLocalMap$Entry; 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;->set(Ljava/lang/ThreadLocal;Ljava/lang/Object;)V+]Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;Ljava/lang/ThreadLocal$ThreadLocalMap$Entry; 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;+]Ljava/lang/ThreadLocal;missing_types +HSPLjava/lang/ThreadLocal;->get()Ljava/lang/Object;+]Ljava/lang/ThreadLocal;megamorphic_types 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;->set(Ljava/lang/Object;)V+]Ljava/lang/ThreadLocal;missing_types HSPLjava/lang/ThreadLocal;->setInitialValue()Ljava/lang/Object; HSPLjava/lang/ThreadLocal;->withInitial(Ljava/util/function/Supplier;)Ljava/lang/ThreadLocal; HSPLjava/lang/Throwable$PrintStreamOrWriter;-><init>()V @@ -25108,12 +25135,12 @@ 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$WrappedPrintWriter;->println(Ljava/lang/Object;)V+]Ljava/io/PrintWriter;Lcom/android/internal/util/LineBreakBufferedWriter;,Lcom/android/internal/util/FastPrintWriter; +HSPLjava/lang/Throwable;-><init>()V+]Ljava/lang/Throwable;missing_types +HSPLjava/lang/Throwable;-><init>(Ljava/lang/String;)V+]Ljava/lang/Throwable;megamorphic_types +HSPLjava/lang/Throwable;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V+]Ljava/lang/Throwable;missing_types HSPLjava/lang/Throwable;-><init>(Ljava/lang/String;Ljava/lang/Throwable;ZZ)V -HSPLjava/lang/Throwable;-><init>(Ljava/lang/Throwable;)V +HSPLjava/lang/Throwable;-><init>(Ljava/lang/Throwable;)V+]Ljava/lang/Throwable;missing_types HSPLjava/lang/Throwable;->addSuppressed(Ljava/lang/Throwable;)V HSPLjava/lang/Throwable;->fillInStackTrace()Ljava/lang/Throwable; HSPLjava/lang/Throwable;->getCause()Ljava/lang/Throwable; @@ -25123,12 +25150,12 @@ 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;->printEnclosedStackTrace(Ljava/lang/Throwable$PrintStreamOrWriter;[Ljava/lang/StackTraceElement;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/Throwable$PrintStreamOrWriter;Ljava/lang/Throwable$WrappedPrintWriter;]Ljava/lang/StackTraceElement;Ljava/lang/StackTraceElement;]Ljava/util/Set;Ljava/util/Collections$SetFromMap;]Ljava/lang/Throwable;missing_types 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;->printStackTrace(Ljava/lang/Throwable$PrintStreamOrWriter;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/Throwable$PrintStreamOrWriter;Ljava/lang/Throwable$WrappedPrintWriter;]Ljava/lang/Throwable;missing_types]Ljava/util/Set;Ljava/util/Collections$SetFromMap; +HSPLjava/lang/Throwable;->readObject(Ljava/io/ObjectInputStream;)V+][Ljava/lang/StackTraceElement;[Ljava/lang/StackTraceElement;]Ljava/io/ObjectInputStream;Landroid/os/Parcel$2; HSPLjava/lang/Throwable;->setStackTrace([Ljava/lang/StackTraceElement;)V HSPLjava/lang/Throwable;->toString()Ljava/lang/String; HSPLjava/lang/Throwable;->writeObject(Ljava/io/ObjectOutputStream;)V @@ -25156,7 +25183,7 @@ HSPLjava/lang/UnsatisfiedLinkError;-><init>(Ljava/lang/String;)V HSPLjava/lang/UnsupportedOperationException;-><init>()V HSPLjava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V HSPLjava/lang/VMClassLoader;->getResource(Ljava/lang/String;)Ljava/net/URL; -HSPLjava/lang/VMClassLoader;->getResources(Ljava/lang/String;)Ljava/util/List; +HSPLjava/lang/VMClassLoader;->getResources(Ljava/lang/String;)Ljava/util/List;+]Llibcore/io/ClassPathURLStreamHandler;Llibcore/io/ClassPathURLStreamHandler; 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 @@ -25218,7 +25245,7 @@ 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;->enqueueSentinelReference(Ljava/lang/ref/FinalizerReference$Sentinel;)Z+]Ljava/lang/ref/FinalizerReference;Ljava/lang/ref/FinalizerReference; 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 @@ -25226,7 +25253,7 @@ HSPLjava/lang/ref/PhantomReference;-><init>(Ljava/lang/Object;Ljava/lang/ref/Ref 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;->clear()V+]Ljava/lang/ref/Reference;Ljava/lang/ref/WeakReference;,Ljdk/internal/ref/CleanerImpl$PhantomCleanableRef; 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 @@ -25244,13 +25271,13 @@ 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;->getAnnotations()[Ljava/lang/annotation/Annotation;+]Ljava/lang/reflect/AccessibleObject;Ljava/lang/reflect/Field;,Ljava/lang/reflect/Method; 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;->newArray(Ljava/lang/Class;I)Ljava/lang/Object;+]Ljava/lang/Class;Ljava/lang/Class; 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 @@ -25287,23 +25314,23 @@ 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/Executable;->sharedToString(IZ[Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/reflect/Executable;Ljava/lang/reflect/Method; 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;->getGenericType()Ljava/lang/reflect/Type;+]Ljava/lang/reflect/Field;Ljava/lang/reflect/Field;]Ljava/lang/Class;Ljava/lang/Class;]Llibcore/reflect/GenericSignatureParser;Llibcore/reflect/GenericSignatureParser; HSPLjava/lang/reflect/Field;->getModifiers()I -HSPLjava/lang/reflect/Field;->getName()Ljava/lang/String; +HSPLjava/lang/reflect/Field;->getName()Ljava/lang/String;+]Ljava/lang/Class;Ljava/lang/Class; 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/Field;->isSynthetic()Z+]Ljava/lang/reflect/Field;Ljava/lang/reflect/Field; 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$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I+]Ljava/lang/reflect/Method$1;Ljava/lang/reflect/Method$1; +HSPLjava/lang/reflect/Method$1;->compare(Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)I+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;]Ljava/lang/Class;Ljava/lang/Class; 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; @@ -25321,8 +25348,8 @@ 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/Method;->specificToStringHeader(Ljava/lang/StringBuilder;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;]Ljava/lang/Class;Ljava/lang/Class; +HSPLjava/lang/reflect/Method;->toString()Ljava/lang/String;+]Ljava/lang/reflect/Method;Ljava/lang/reflect/Method; HSPLjava/lang/reflect/Modifier;->isAbstract(I)Z HSPLjava/lang/reflect/Modifier;->isFinal(I)Z HSPLjava/lang/reflect/Modifier;->isInterface(I)Z @@ -25337,11 +25364,11 @@ 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;-><init>(Ljava/lang/Class;)V+]Ljava/lang/Object;Ljava/lang/Class; +HSPLjava/lang/reflect/Proxy$Key1;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Object;Ljava/lang/reflect/Proxy$Key1;]Ljava/lang/reflect/Proxy$Key1;Ljava/lang/reflect/Proxy$Key1; 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$KeyFactory;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/lang/reflect/Proxy$KeyFactory;Ljava/lang/reflect/Proxy$KeyFactory; 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; @@ -25352,14 +25379,14 @@ 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;->getProxyClass0(Ljava/lang/ClassLoader;[Ljava/lang/Class;)Ljava/lang/Class;+]Ljava/lang/reflect/WeakCache;Ljava/lang/reflect/WeakCache; 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;->newProxyInstance(Ljava/lang/ClassLoader;[Ljava/lang/Class;Ljava/lang/reflect/InvocationHandler;)Ljava/lang/Object;+][Ljava/lang/Class;[Ljava/lang/Class;]Ljava/lang/Class;Ljava/lang/Class;]Ljava/lang/reflect/Constructor;Ljava/lang/reflect/Constructor; 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;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Object;Ljava/lang/reflect/WeakCache$CacheKey;]Ljava/lang/reflect/WeakCache$CacheKey;Ljava/lang/reflect/WeakCache$CacheKey; 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 @@ -25368,8 +25395,8 @@ HSPLjava/lang/reflect/WeakCache$Factory;-><init>(Ljava/lang/reflect/WeakCache;Lj 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/lang/reflect/WeakCache;->expungeStaleEntries()V+]Ljava/lang/ref/ReferenceQueue;Ljava/lang/ref/ReferenceQueue; +HSPLjava/lang/reflect/WeakCache;->get(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/util/function/BiFunction;Ljava/lang/reflect/Proxy$KeyFactory;]Ljava/util/concurrent/ConcurrentMap;Ljava/util/concurrent/ConcurrentHashMap;]Ljava/util/function/Supplier;Ljava/lang/reflect/WeakCache$CacheValue; HSPLjava/math/BigDecimal;-><init>(I)V HSPLjava/math/BigDecimal;-><init>(J)V HSPLjava/math/BigDecimal;-><init>(Ljava/lang/String;)V @@ -25429,7 +25456,7 @@ 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(Ljava/math/BigInteger;)Ljava/math/BigInteger;+]Ljava/math/BigInteger;Ljava/math/BigInteger; HSPLjava/math/BigInteger;->add([I[I)[I HSPLjava/math/BigInteger;->bigEndInts2NewBN([IZ)J HSPLjava/math/BigInteger;->bitLength()I @@ -25449,7 +25476,7 @@ 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;->modPow(Ljava/math/BigInteger;Ljava/math/BigInteger;)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; @@ -25458,7 +25485,7 @@ 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;->remainderKnuth(Ljava/math/BigInteger;)Ljava/math/BigInteger;+]Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger; HSPLjava/math/BigInteger;->reverse([I)[I HSPLjava/math/BigInteger;->shiftLeft(I)Ljava/math/BigInteger; HSPLjava/math/BigInteger;->shiftLeft([II)[I @@ -25466,13 +25493,13 @@ 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;->smallToString(ILjava/lang/StringBuilder;I)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/String;Ljava/lang/String;]Ljava/math/BigInteger;Ljava/math/BigInteger;]Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger; 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(Ljava/math/BigInteger;)Ljava/math/BigInteger;+]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;->toByteArray()[B+]Ljava/math/BigInteger;Ljava/math/BigInteger; 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 @@ -25492,9 +25519,9 @@ 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;->divideKnuth(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;+]Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger; +HSPLjava/math/MutableBigInteger;->divideKnuth(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;Z)Ljava/math/MutableBigInteger;+]Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;,Ljava/math/SignedMutableBigInteger; +HSPLjava/math/MutableBigInteger;->divideMagnitude(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;Z)Ljava/math/MutableBigInteger;+]Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger; HSPLjava/math/MutableBigInteger;->divideOneWord(ILjava/math/MutableBigInteger;)I HSPLjava/math/MutableBigInteger;->getLowestSetBit()I HSPLjava/math/MutableBigInteger;->getMagnitudeArray()[I @@ -25522,13 +25549,13 @@ 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;->doConnect(Ljava/net/InetAddress;II)V+]Ljava/net/Socket;Ljava/net/Socket;]Ljava/net/AbstractPlainSocketImpl;Ljava/net/SocksSocketImpl;]Ldalvik/system/BlockGuard$Policy;Ldalvik/system/BlockGuard$1; HSPLjava/net/AbstractPlainSocketImpl;->finalize()V HSPLjava/net/AbstractPlainSocketImpl;->getInputStream()Ljava/io/InputStream; -HSPLjava/net/AbstractPlainSocketImpl;->getOption(I)Ljava/lang/Object; +HSPLjava/net/AbstractPlainSocketImpl;->getOption(I)Ljava/lang/Object;+]Ljava/net/AbstractPlainSocketImpl;Ljava/net/SocksSocketImpl; HSPLjava/net/AbstractPlainSocketImpl;->getOutputStream()Ljava/io/OutputStream; HSPLjava/net/AbstractPlainSocketImpl;->getTimeout()I -HSPLjava/net/AbstractPlainSocketImpl;->isClosedOrPending()Z +HSPLjava/net/AbstractPlainSocketImpl;->isClosedOrPending()Z+]Ljava/io/FileDescriptor;Ljava/io/FileDescriptor; HSPLjava/net/AbstractPlainSocketImpl;->isConnectionReset()Z HSPLjava/net/AbstractPlainSocketImpl;->isConnectionResetPending()Z HSPLjava/net/AbstractPlainSocketImpl;->listen(I)V @@ -25585,7 +25612,7 @@ 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;->receive(Ljava/net/DatagramPacket;)V+]Ljava/net/DatagramSocket;Ljava/net/MulticastSocket;]Ljava/net/DatagramSocketImpl;Ljava/net/PlainDatagramSocketImpl; HSPLjava/net/DatagramSocket;->send(Ljava/net/DatagramPacket;)V HSPLjava/net/DatagramSocket;->setReuseAddress(Z)V HSPLjava/net/DatagramSocket;->setSoTimeout(I)V @@ -25678,7 +25705,7 @@ 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/Inet6AddressImpl;->lookupHostByName(Ljava/lang/String;I)[Ljava/net/InetAddress;+]Llibcore/io/Os;Landroid/app/ActivityThread$AndroidOs;]Ljava/net/AddressCache;Ljava/net/AddressCache;]Ljava/net/InetAddress;Ljava/net/Inet6Address;,Ljava/net/Inet4Address;]Ldalvik/system/BlockGuard$Policy;Ldalvik/system/BlockGuard$1; HSPLjava/net/InetAddress$InetAddressHolder;-><init>()V HSPLjava/net/InetAddress$InetAddressHolder;->getAddress()I HSPLjava/net/InetAddress$InetAddressHolder;->getHostName()Ljava/lang/String; @@ -25720,7 +25747,7 @@ 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/InterfaceAddress;->countPrefixLength(Ljava/net/InetAddress;)S+]Ljava/net/InetAddress;Ljava/net/Inet6Address;,Ljava/net/Inet4Address; HSPLjava/net/JarURLConnection;-><init>(Ljava/net/URL;)V HSPLjava/net/JarURLConnection;->getEntryName()Ljava/lang/String; HSPLjava/net/JarURLConnection;->parseSpecs(Ljava/net/URL;)V @@ -25730,7 +25757,7 @@ 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;->getAll()[Ljava/net/NetworkInterface;+]Ljava/lang/String;Ljava/lang/String;]Ljava/util/Map$Entry;Ljava/util/HashMap$Node;]Ljava/net/NetworkInterface;Ljava/net/NetworkInterface;]Llibcore/io/Os;Landroid/app/ActivityThread$AndroidOs;]Ljava/util/Collection;Ljava/util/HashMap$Values;]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/Map;Ljava/util/HashMap;]Ljava/util/Iterator;Ljava/util/HashMap$EntryIterator;,Ljava/util/ArrayList$Itr;]Ljava/util/Set;Ljava/util/HashMap$EntrySet; HSPLjava/net/NetworkInterface;->getByName(Ljava/lang/String;)Ljava/net/NetworkInterface; HSPLjava/net/NetworkInterface;->getFlags()I HSPLjava/net/NetworkInterface;->getHardwareAddress()[B @@ -25748,7 +25775,7 @@ 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;->doRecv(Ljava/net/DatagramPacket;I)V+]Ljava/net/DatagramPacket;Ljava/net/DatagramPacket;]Ljava/net/PlainDatagramSocketImpl;Ljava/net/PlainDatagramSocketImpl; HSPLjava/net/PlainDatagramSocketImpl;->receive0(Ljava/net/DatagramPacket;)V HSPLjava/net/PlainDatagramSocketImpl;->send(Ljava/net/DatagramPacket;)V HSPLjava/net/PlainDatagramSocketImpl;->socketSetOption(ILjava/lang/Object;)V @@ -25757,7 +25784,7 @@ 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;->socketClose0(Z)V+]Llibcore/io/Os;Landroid/app/ActivityThread$AndroidOs;]Ljava/io/FileDescriptor;Ljava/io/FileDescriptor; HSPLjava/net/PlainSocketImpl;->socketConnect(Ljava/net/InetAddress;II)V HSPLjava/net/PlainSocketImpl;->socketCreate(Z)V HSPLjava/net/PlainSocketImpl;->socketGetOption(I)Ljava/lang/Object; @@ -25793,7 +25820,7 @@ 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>()V+]Ljava/net/Socket;missing_types 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 @@ -25804,7 +25831,7 @@ 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;->getImpl()Ljava/net/SocketImpl;+]Ljava/net/Socket;Ljava/net/Socket; HSPLjava/net/Socket;->getInetAddress()Ljava/net/InetAddress; HSPLjava/net/Socket;->getInputStream()Ljava/io/InputStream; HSPLjava/net/Socket;->getLocalAddress()Ljava/net/InetAddress; @@ -25814,7 +25841,7 @@ 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;->getSoTimeout()I+]Ljava/net/SocketImpl;Ljava/net/SocksSocketImpl;]Ljava/lang/Integer;Ljava/lang/Integer;]Ljava/net/Socket;Ljava/net/Socket; HSPLjava/net/Socket;->isBound()Z HSPLjava/net/Socket;->isClosed()Z HSPLjava/net/Socket;->isConnected()Z @@ -25857,10 +25884,10 @@ 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;->charAt(I)C+]Ljava/lang/String;Ljava/lang/String; 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;->parse(Z)V+]Ljava/lang/String;Ljava/lang/String; HSPLjava/net/URI$Parser;->parseAuthority(II)I HSPLjava/net/URI$Parser;->parseHierarchical(II)I HSPLjava/net/URI$Parser;->parseHostname(II)I @@ -25868,7 +25895,7 @@ 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;->scan(IILjava/lang/String;Ljava/lang/String;)I+]Ljava/lang/String;Ljava/lang/String; HSPLjava/net/URI$Parser;->scanByte(II)I HSPLjava/net/URI$Parser;->scanEscape(IIC)I HSPLjava/net/URI$Parser;->scanIPv4Address(IIZ)I @@ -25930,7 +25957,7 @@ 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;-><init>(Ljava/net/URL;Ljava/lang/String;Ljava/net/URLStreamHandler;)V+]Ljava/net/URLStreamHandler;Lcom/android/okhttp/HttpsHandler;,Lsun/net/www/protocol/file/Handler;]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HSPLjava/net/URL;->createBuiltinHandler(Ljava/lang/String;)Ljava/net/URLStreamHandler; HSPLjava/net/URL;->getAuthority()Ljava/lang/String; HSPLjava/net/URL;->getFile()Ljava/lang/String; @@ -25942,7 +25969,7 @@ 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;->isValidProtocol(Ljava/lang/String;)Z+]Ljava/lang/String;Ljava/lang/String; 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 @@ -25964,28 +25991,29 @@ 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;->decode(Ljava/lang/String;Ljava/nio/charset/Charset;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; 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/URLEncoder;->encode(Ljava/lang/String;Ljava/nio/charset/Charset;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/String;Ljava/lang/String;]Ljava/util/BitSet;Ljava/util/BitSet;]Ljava/io/CharArrayWriter;Ljava/io/CharArrayWriter; HSPLjava/net/URLStreamHandler;-><init>()V -HSPLjava/net/URLStreamHandler;->parseURL(Ljava/net/URL;Ljava/lang/String;II)V +HSPLjava/net/URLStreamHandler;->parseURL(Ljava/net/URL;Ljava/lang/String;II)V+]Ljava/net/URLStreamHandler;Lcom/android/okhttp/HttpsHandler;,Lsun/net/www/protocol/file/Handler;]Ljava/lang/String;Ljava/lang/String;]Ljava/net/URL;Ljava/net/URL;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; 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/URLStreamHandler;->toExternalForm(Ljava/net/URL;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/net/URL;Ljava/net/URL; HSPLjava/net/UnknownHostException;-><init>(Ljava/lang/String;)V +HSPLjava/nio/Bits;->byteOrder()Ljava/nio/ByteOrder; HSPLjava/nio/Bits;->char0(C)B HSPLjava/nio/Bits;->char1(C)B HSPLjava/nio/Bits;->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;->getIntB(Ljava/nio/ByteBuffer;I)I+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; +HSPLjava/nio/Bits;->getIntL(Ljava/nio/ByteBuffer;I)I+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; 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;->getLongB(Ljava/nio/ByteBuffer;I)J+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; +HSPLjava/nio/Bits;->getLongL(Ljava/nio/ByteBuffer;I)J+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; 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;->getShortL(Ljava/nio/ByteBuffer;I)S+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; HSPLjava/nio/Bits;->int0(I)B HSPLjava/nio/Bits;->int1(I)B HSPLjava/nio/Bits;->int2(I)B @@ -26007,17 +26035,18 @@ 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;->putIntB(Ljava/nio/ByteBuffer;II)V+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; +HSPLjava/nio/Bits;->putIntL(Ljava/nio/ByteBuffer;II)V+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; 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;->putLongL(Ljava/nio/ByteBuffer;IJ)V+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; 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;->putShortB(Ljava/nio/ByteBuffer;IS)V+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; +HSPLjava/nio/Bits;->putShortL(Ljava/nio/ByteBuffer;IS)V+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; HSPLjava/nio/Bits;->short0(S)B HSPLjava/nio/Bits;->short1(S)B -HSPLjava/nio/Buffer;-><init>(IIIII)V +HSPLjava/nio/Bits;->unsafe()Lsun/misc/Unsafe; +HSPLjava/nio/Buffer;-><init>(IIIII)V+]Ljava/nio/Buffer;megamorphic_types HSPLjava/nio/Buffer;->capacity()I HSPLjava/nio/Buffer;->checkBounds(III)V HSPLjava/nio/Buffer;->checkIndex(I)I @@ -26049,18 +26078,19 @@ 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;->compareTo(Ljava/nio/ByteBuffer;)I+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer;,Ljava/nio/DirectByteBuffer; +HSPLjava/nio/ByteBuffer;->equals(BB)Z +HSPLjava/nio/ByteBuffer;->equals(Ljava/lang/Object;)Z+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer;,Ljava/nio/DirectByteBuffer; HSPLjava/nio/ByteBuffer;->flip()Ljava/nio/Buffer; -HSPLjava/nio/ByteBuffer;->get([B)Ljava/nio/ByteBuffer; +HSPLjava/nio/ByteBuffer;->get([B)Ljava/nio/ByteBuffer;+]Ljava/nio/ByteBuffer;Ljava/nio/DirectByteBuffer; HSPLjava/nio/ByteBuffer;->hasArray()Z -HSPLjava/nio/ByteBuffer;->hashCode()I +HSPLjava/nio/ByteBuffer;->hashCode()I+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer;,Ljava/nio/DirectByteBuffer; 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(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer;,Ljava/nio/DirectByteBuffer; HSPLjava/nio/ByteBuffer;->put([B)Ljava/nio/ByteBuffer; HSPLjava/nio/ByteBuffer;->reset()Ljava/nio/Buffer; HSPLjava/nio/ByteBuffer;->rewind()Ljava/nio/Buffer; @@ -26068,7 +26098,7 @@ 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(I)C+]Ljava/nio/ByteBuffer;Ljava/nio/DirectByteBuffer;]Ljava/nio/ByteBufferAsCharBuffer;Ljava/nio/ByteBufferAsCharBuffer; HSPLjava/nio/ByteBufferAsCharBuffer;->get([CII)Ljava/nio/CharBuffer; HSPLjava/nio/ByteBufferAsCharBuffer;->isDirect()Z HSPLjava/nio/ByteBufferAsCharBuffer;->ix(I)I @@ -26079,7 +26109,7 @@ HSPLjava/nio/ByteBufferAsFloatBuffer;-><init>(Ljava/nio/ByteBuffer;IIIIILjava/ni 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;-><init>(Ljava/nio/ByteBuffer;IIIIILjava/nio/ByteOrder;)V+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; HSPLjava/nio/ByteBufferAsIntBuffer;->get([III)Ljava/nio/IntBuffer; HSPLjava/nio/ByteBufferAsIntBuffer;->ix(I)I HSPLjava/nio/ByteBufferAsIntBuffer;->put(I)Ljava/nio/IntBuffer; @@ -26088,8 +26118,8 @@ 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;-><init>(Ljava/nio/ByteBuffer;IIIIILjava/nio/ByteOrder;)V+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; +HSPLjava/nio/ByteBufferAsShortBuffer;->get([SII)Ljava/nio/ShortBuffer;+]Ljava/nio/ByteBufferAsShortBuffer;Ljava/nio/ByteBufferAsShortBuffer;]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; HSPLjava/nio/ByteBufferAsShortBuffer;->ix(I)I HSPLjava/nio/ByteBufferAsShortBuffer;->put([SII)Ljava/nio/ShortBuffer; HSPLjava/nio/ByteOrder;->nativeOrder()Ljava/nio/ByteOrder; @@ -26104,7 +26134,7 @@ 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;->length()I+]Ljava/nio/CharBuffer;Ljava/nio/HeapCharBuffer; HSPLjava/nio/CharBuffer;->limit(I)Ljava/nio/Buffer; HSPLjava/nio/CharBuffer;->position(I)Ljava/nio/Buffer; HSPLjava/nio/CharBuffer;->toString()Ljava/lang/String; @@ -26112,7 +26142,7 @@ 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>(I)V+]Ldalvik/system/VMRuntime;Ldalvik/system/VMRuntime; 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 @@ -26126,22 +26156,22 @@ 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;->duplicate()Ljava/nio/ByteBuffer;+]Ljava/nio/DirectByteBuffer;Ljava/nio/DirectByteBuffer; +HSPLjava/nio/DirectByteBuffer;->duplicate()Ljava/nio/MappedByteBuffer;+]Ljava/nio/DirectByteBuffer;Ljava/nio/DirectByteBuffer; +HSPLjava/nio/DirectByteBuffer;->get()B+]Ljava/nio/DirectByteBuffer;Ljava/nio/DirectByteBuffer; +HSPLjava/nio/DirectByteBuffer;->get(I)B+]Ljava/nio/DirectByteBuffer;Ljava/nio/DirectByteBuffer; HSPLjava/nio/DirectByteBuffer;->get(J)B -HSPLjava/nio/DirectByteBuffer;->get([BII)Ljava/nio/ByteBuffer; +HSPLjava/nio/DirectByteBuffer;->get([BII)Ljava/nio/ByteBuffer;+]Ljava/nio/DirectByteBuffer;Ljava/nio/DirectByteBuffer; 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(I)I+]Ljava/nio/DirectByteBuffer;Ljava/nio/DirectByteBuffer; HSPLjava/nio/DirectByteBuffer;->getInt(J)I -HSPLjava/nio/DirectByteBuffer;->getLong(I)J +HSPLjava/nio/DirectByteBuffer;->getLong(I)J+]Ljava/nio/DirectByteBuffer;Ljava/nio/DirectByteBuffer; HSPLjava/nio/DirectByteBuffer;->getLong(J)J HSPLjava/nio/DirectByteBuffer;->getShort()S -HSPLjava/nio/DirectByteBuffer;->getShort(I)S +HSPLjava/nio/DirectByteBuffer;->getShort(I)S+]Ljava/nio/DirectByteBuffer;Ljava/nio/DirectByteBuffer; HSPLjava/nio/DirectByteBuffer;->getShort(J)S HSPLjava/nio/DirectByteBuffer;->getUnchecked(I[CII)V HSPLjava/nio/DirectByteBuffer;->getUnchecked(I[III)V @@ -26158,9 +26188,9 @@ 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(II)Ljava/nio/ByteBuffer;+]Ljava/nio/DirectByteBuffer;Ljava/nio/DirectByteBuffer; HSPLjava/nio/DirectByteBuffer;->putInt(JI)Ljava/nio/ByteBuffer; -HSPLjava/nio/DirectByteBuffer;->putLong(IJ)Ljava/nio/ByteBuffer; +HSPLjava/nio/DirectByteBuffer;->putLong(IJ)Ljava/nio/ByteBuffer;+]Ljava/nio/DirectByteBuffer;Ljava/nio/DirectByteBuffer; HSPLjava/nio/DirectByteBuffer;->putLong(J)Ljava/nio/ByteBuffer; HSPLjava/nio/DirectByteBuffer;->putLong(JJ)Ljava/nio/ByteBuffer; HSPLjava/nio/DirectByteBuffer;->putUnchecked(I[FII)V @@ -26181,38 +26211,38 @@ 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;->asReadOnlyBuffer()Ljava/nio/ByteBuffer;+]Ljava/nio/HeapByteBuffer;Ljava/nio/HeapByteBuffer; +HSPLjava/nio/HeapByteBuffer;->asShortBuffer()Ljava/nio/ShortBuffer;+]Ljava/nio/HeapByteBuffer;Ljava/nio/HeapByteBuffer; +HSPLjava/nio/HeapByteBuffer;->compact()Ljava/nio/ByteBuffer;+]Ljava/nio/HeapByteBuffer;Ljava/nio/HeapByteBuffer; +HSPLjava/nio/HeapByteBuffer;->duplicate()Ljava/nio/ByteBuffer;+]Ljava/nio/HeapByteBuffer;Ljava/nio/HeapByteBuffer; +HSPLjava/nio/HeapByteBuffer;->get()B+]Ljava/nio/HeapByteBuffer;Ljava/nio/HeapByteBuffer; +HSPLjava/nio/HeapByteBuffer;->get(I)B+]Ljava/nio/HeapByteBuffer;Ljava/nio/HeapByteBuffer; +HSPLjava/nio/HeapByteBuffer;->get([BII)Ljava/nio/ByteBuffer;+]Ljava/nio/HeapByteBuffer;Ljava/nio/HeapByteBuffer; 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;->getFloat(I)F+]Ljava/nio/HeapByteBuffer;Ljava/nio/HeapByteBuffer; +HSPLjava/nio/HeapByteBuffer;->getInt()I+]Ljava/nio/HeapByteBuffer;Ljava/nio/HeapByteBuffer; +HSPLjava/nio/HeapByteBuffer;->getInt(I)I+]Ljava/nio/HeapByteBuffer;Ljava/nio/HeapByteBuffer; +HSPLjava/nio/HeapByteBuffer;->getLong()J+]Ljava/nio/HeapByteBuffer;Ljava/nio/HeapByteBuffer; HSPLjava/nio/HeapByteBuffer;->getLong(I)J -HSPLjava/nio/HeapByteBuffer;->getShort()S -HSPLjava/nio/HeapByteBuffer;->getShort(I)S +HSPLjava/nio/HeapByteBuffer;->getShort()S+]Ljava/nio/HeapByteBuffer;Ljava/nio/HeapByteBuffer; +HSPLjava/nio/HeapByteBuffer;->getShort(I)S+]Ljava/nio/HeapByteBuffer;Ljava/nio/HeapByteBuffer; HSPLjava/nio/HeapByteBuffer;->getUnchecked(I[III)V -HSPLjava/nio/HeapByteBuffer;->getUnchecked(I[SII)V +HSPLjava/nio/HeapByteBuffer;->getUnchecked(I[SII)V+]Ljava/nio/HeapByteBuffer;Ljava/nio/HeapByteBuffer; 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(B)Ljava/nio/ByteBuffer;+]Ljava/nio/HeapByteBuffer;Ljava/nio/HeapByteBuffer; +HSPLjava/nio/HeapByteBuffer;->put(IB)Ljava/nio/ByteBuffer;+]Ljava/nio/HeapByteBuffer;Ljava/nio/HeapByteBuffer; 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;->putFloat(F)Ljava/nio/ByteBuffer;+]Ljava/nio/HeapByteBuffer;Ljava/nio/HeapByteBuffer; +HSPLjava/nio/HeapByteBuffer;->putInt(I)Ljava/nio/ByteBuffer;+]Ljava/nio/HeapByteBuffer;Ljava/nio/HeapByteBuffer; +HSPLjava/nio/HeapByteBuffer;->putInt(II)Ljava/nio/ByteBuffer;+]Ljava/nio/HeapByteBuffer;Ljava/nio/HeapByteBuffer; +HSPLjava/nio/HeapByteBuffer;->putLong(IJ)Ljava/nio/ByteBuffer;+]Ljava/nio/HeapByteBuffer;Ljava/nio/HeapByteBuffer; 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;->putShort(IS)Ljava/nio/ByteBuffer;+]Ljava/nio/HeapByteBuffer;Ljava/nio/HeapByteBuffer; +HSPLjava/nio/HeapByteBuffer;->putShort(S)Ljava/nio/ByteBuffer;+]Ljava/nio/HeapByteBuffer;Ljava/nio/HeapByteBuffer; +HSPLjava/nio/HeapByteBuffer;->slice()Ljava/nio/ByteBuffer;+]Ljava/nio/HeapByteBuffer;Ljava/nio/HeapByteBuffer; HSPLjava/nio/HeapCharBuffer;-><init>(II)V HSPLjava/nio/HeapCharBuffer;-><init>(IIZ)V HSPLjava/nio/HeapCharBuffer;-><init>([CII)V @@ -26220,7 +26250,7 @@ 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(Ljava/nio/CharBuffer;)Ljava/nio/CharBuffer;+]Ljava/nio/HeapCharBuffer;Ljava/nio/HeapCharBuffer; HSPLjava/nio/HeapCharBuffer;->put([CII)Ljava/nio/CharBuffer; HSPLjava/nio/HeapCharBuffer;->slice()Ljava/nio/CharBuffer; HSPLjava/nio/HeapCharBuffer;->toString(II)Ljava/lang/String; @@ -26242,7 +26272,7 @@ HSPLjava/nio/LongBuffer;->position(I)Ljava/nio/Buffer; HSPLjava/nio/MappedByteBuffer;-><init>(IIII)V HSPLjava/nio/MappedByteBuffer;-><init>(IIII[BI)V HSPLjava/nio/MappedByteBuffer;->checkMapped()V -HSPLjava/nio/MappedByteBuffer;->load()Ljava/nio/MappedByteBuffer; +HSPLjava/nio/MappedByteBuffer;->load()Ljava/nio/MappedByteBuffer;+]Ljava/nio/MappedByteBuffer;Ljava/nio/DirectByteBuffer;]Lsun/misc/Unsafe;Lsun/misc/Unsafe; HSPLjava/nio/MappedByteBuffer;->mappingAddress(J)J HSPLjava/nio/MappedByteBuffer;->mappingLength(J)J HSPLjava/nio/MappedByteBuffer;->mappingOffset()J @@ -26251,7 +26281,7 @@ 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;->get([S)Ljava/nio/ShortBuffer;+]Ljava/nio/ShortBuffer;Ljava/nio/ByteBufferAsShortBuffer; 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 @@ -26259,7 +26289,7 @@ 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$WritableByteChannelImpl;->write(Ljava/nio/ByteBuffer;)I+]Ljava/nio/channels/Channels$WritableByteChannelImpl;Ljava/nio/channels/Channels$WritableByteChannelImpl;]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer;,Ljava/nio/DirectByteBuffer;]Ljava/io/OutputStream;missing_types 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; @@ -26285,9 +26315,9 @@ 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;->begin()V+]Ljava/lang/Thread;Ljava/lang/Thread; +HSPLjava/nio/channels/spi/AbstractInterruptibleChannel;->blockedOn(Lsun/nio/ch/Interruptible;)V+]Ljava/lang/Thread;Ljava/lang/Thread; +HSPLjava/nio/channels/spi/AbstractInterruptibleChannel;->close()V+]Ljava/nio/channels/spi/AbstractInterruptibleChannel;Lsun/nio/ch/FileChannelImpl; 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 @@ -26338,20 +26368,20 @@ 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;->decode(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer;+]Ljava/nio/CharBuffer;Ljava/nio/HeapCharBuffer;]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer;]Ljava/nio/charset/CoderResult;Ljava/nio/charset/CoderResult;]Ljava/nio/charset/CharsetDecoder;Lcom/android/icu/charset/CharsetDecoderICU; +HSPLjava/nio/charset/CharsetDecoder;->decode(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;Z)Ljava/nio/charset/CoderResult;+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer;]Ljava/nio/charset/CoderResult;Ljava/nio/charset/CoderResult;]Ljava/nio/charset/CharsetDecoder;Lcom/android/icu/charset/CharsetDecoderICU; +HSPLjava/nio/charset/CharsetDecoder;->flush(Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;+]Ljava/nio/charset/CoderResult;Ljava/nio/charset/CoderResult;]Ljava/nio/charset/CharsetDecoder;Lcom/android/icu/charset/CharsetDecoderICU; 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;->onMalformedInput(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetDecoder;+]Ljava/nio/charset/CharsetDecoder;Lcom/android/icu/charset/CharsetDecoderICU; +HSPLjava/nio/charset/CharsetDecoder;->onUnmappableCharacter(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetDecoder;+]Ljava/nio/charset/CharsetDecoder;Lcom/android/icu/charset/CharsetDecoderICU; +HSPLjava/nio/charset/CharsetDecoder;->replaceWith(Ljava/lang/String;)Ljava/nio/charset/CharsetDecoder;+]Ljava/lang/String;Ljava/lang/String;]Ljava/nio/charset/CharsetDecoder;Lcom/android/icu/charset/CharsetDecoderICU; HSPLjava/nio/charset/CharsetDecoder;->replacement()Ljava/lang/String; -HSPLjava/nio/charset/CharsetDecoder;->reset()Ljava/nio/charset/CharsetDecoder; +HSPLjava/nio/charset/CharsetDecoder;->reset()Ljava/nio/charset/CharsetDecoder;+]Ljava/nio/charset/CharsetDecoder;Lcom/android/icu/charset/CharsetDecoderICU; 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 @@ -26361,8 +26391,8 @@ 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;->encode(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;Z)Ljava/nio/charset/CoderResult;+]Ljava/nio/charset/CharsetEncoder;Lcom/android/icu/charset/CharsetEncoderICU;]Ljava/nio/charset/CoderResult;Ljava/nio/charset/CoderResult;]Ljava/nio/CharBuffer;Ljava/nio/HeapCharBuffer; +HSPLjava/nio/charset/CharsetEncoder;->flush(Ljava/nio/ByteBuffer;)Ljava/nio/charset/CoderResult;+]Ljava/nio/charset/CharsetEncoder;Lcom/android/icu/charset/CharsetEncoderICU;]Ljava/nio/charset/CoderResult;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 @@ -26373,7 +26403,7 @@ HSPLjava/nio/charset/CharsetEncoder;->onMalformedInput(Ljava/nio/charset/CodingE 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;->reset()Ljava/nio/charset/CharsetEncoder;+]Ljava/nio/charset/CharsetEncoder;Lcom/android/icu/charset/CharsetEncoderICU; HSPLjava/nio/charset/CharsetEncoder;->unmappableCharacterAction()Ljava/nio/charset/CodingErrorAction; HSPLjava/nio/charset/CoderResult;->isError()Z HSPLjava/nio/charset/CoderResult;->isOverflow()Z @@ -26397,7 +26427,7 @@ HSPLjava/nio/file/Files;->newInputStream(Ljava/nio/file/Path;[Ljava/nio/file/Ope HSPLjava/nio/file/Files;->provider(Ljava/nio/file/Path;)Ljava/nio/file/spi/FileSystemProvider; HSPLjava/nio/file/Files;->read(Ljava/io/InputStream;I)[B HSPLjava/nio/file/Files;->readAllBytes(Ljava/nio/file/Path;)[B -HSPLjava/nio/file/Files;->readAttributes(Ljava/nio/file/Path;Ljava/lang/Class;[Ljava/nio/file/LinkOption;)Ljava/nio/file/attribute/BasicFileAttributes; +HSPLjava/nio/file/Files;->readAttributes(Ljava/nio/file/Path;Ljava/lang/Class;[Ljava/nio/file/LinkOption;)Ljava/nio/file/attribute/BasicFileAttributes;+]Ljava/nio/file/spi/FileSystemProvider;Lsun/nio/fs/LinuxFileSystemProvider; 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; @@ -26405,7 +26435,7 @@ HSPLjava/nio/file/attribute/FileTime;-><init>(JLjava/util/concurrent/TimeUnit;Lj HSPLjava/nio/file/attribute/FileTime;->append(Ljava/lang/StringBuilder;II)Ljava/lang/StringBuilder; HSPLjava/nio/file/attribute/FileTime;->from(JLjava/util/concurrent/TimeUnit;)Ljava/nio/file/attribute/FileTime; HSPLjava/nio/file/attribute/FileTime;->toMillis()J -HSPLjava/nio/file/attribute/FileTime;->toString()Ljava/lang/String; +HSPLjava/nio/file/attribute/FileTime;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/time/LocalDateTime;Ljava/time/LocalDateTime;]Ljava/util/concurrent/TimeUnit;Ljava/util/concurrent/TimeUnit; 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; @@ -26416,15 +26446,15 @@ 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;->read([BII)I+]Ljava/io/InputStream;Ljava/io/FileInputStream;]Ljava/security/MessageDigest;Ljava/security/MessageDigest$Delegate; 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/lang/String;)V+]Ljava/util/List;Lsun/security/jca/ProviderList$ServiceList; 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/KeyFactory;->nextSpi(Ljava/security/KeyFactorySpi;)Ljava/security/KeyFactorySpi;+]Ljava/security/Provider$Service;Ljava/security/Provider$Service;]Ljava/util/Iterator;Lsun/security/jca/ProviderList$ServiceList$1; HSPLjava/security/KeyFactorySpi;-><init>()V HSPLjava/security/KeyPair;-><init>(Ljava/security/PublicKey;Ljava/security/PrivateKey;)V HSPLjava/security/KeyPair;->getPrivate()Ljava/security/PrivateKey; @@ -26457,28 +26487,28 @@ HSPLjava/security/KeyStoreSpi;->engineLoad(Ljava/security/KeyStore$LoadStorePara 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;->engineDigest([BII)I+]Ljava/security/MessageDigestSpi;Lcom/android/org/conscrypt/OpenSSLMessageDigestJDK$SHA1; 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$Delegate;->engineUpdate([BII)V+]Ljava/security/MessageDigestSpi;missing_types 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;->digest([BII)I+]Ljava/security/MessageDigest;Ljava/security/MessageDigest$Delegate; 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(B)V+]Ljava/security/MessageDigest;Ljava/security/MessageDigest$Delegate; HSPLjava/security/MessageDigest;->update(Ljava/nio/ByteBuffer;)V HSPLjava/security/MessageDigest;->update([B)V -HSPLjava/security/MessageDigest;->update([BII)V +HSPLjava/security/MessageDigest;->update([BII)V+]Ljava/security/MessageDigest;Ljava/security/MessageDigest$Delegate; HSPLjava/security/MessageDigestSpi;-><init>()V -HSPLjava/security/MessageDigestSpi;->engineDigest([BII)I +HSPLjava/security/MessageDigestSpi;->engineDigest([BII)I+]Ljava/security/MessageDigestSpi;Lcom/android/org/conscrypt/OpenSSLMessageDigestJDK$SHA1; HSPLjava/security/MessageDigestSpi;->engineUpdate(Ljava/nio/ByteBuffer;)V HSPLjava/security/NoSuchAlgorithmException;-><init>(Ljava/lang/String;)V HSPLjava/security/Provider$EngineDescription;->getConstructorParameterClass()Ljava/lang/Class; @@ -26504,12 +26534,12 @@ HSPLjava/security/Provider$Service;->newInstance(Ljava/lang/Object;)Ljava/lang/O 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;Z)V+]Ljava/lang/String;Ljava/lang/String; 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;-><init>(Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String; HSPLjava/security/Provider$UString;->equals(Ljava/lang/Object;)Z HSPLjava/security/Provider$UString;->hashCode()I HSPLjava/security/Provider;->-$$Nest$sfgetknownEngines()Ljava/util/Map; @@ -26520,7 +26550,7 @@ 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;->getService(Ljava/lang/String;Ljava/lang/String;)Ljava/security/Provider$Service; +HSPLjava/security/Provider;->getService(Ljava/lang/String;Ljava/lang/String;)Ljava/security/Provider$Service;+]Ljava/security/Provider$ServiceKey;Ljava/security/Provider$ServiceKey;]Ljava/util/Map;Ljava/util/LinkedHashMap; 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; @@ -26533,7 +26563,7 @@ 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;->getPrngAlgorithm()Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Lsun/security/jca/ProviderList;Lsun/security/jca/ProviderList;]Ljava/security/Provider$Service;Ljava/security/Provider$Service;]Ljava/util/List;Lsun/security/jca/ProviderList$3;]Ljava/util/Iterator;Ljava/util/AbstractList$Itr;,Ljava/util/Collections$UnmodifiableCollection$1;]Ljava/util/Set;Ljava/util/Collections$UnmodifiableSet; HSPLjava/security/SecureRandom;->getProvider()Ljava/security/Provider; HSPLjava/security/SecureRandom;->getSecureRandomSpi()Ljava/security/SecureRandomSpi; HSPLjava/security/SecureRandom;->next(I)I @@ -26554,7 +26584,7 @@ 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;->chooseProvider(ILjava/security/Key;Ljava/security/SecureRandom;)V+]Ljava/lang/String;Ljava/lang/String;]Ljava/security/Provider$Service;Ljava/security/Provider$Service;]Ljava/util/List;Lsun/security/jca/ProviderList$ServiceList;]Ljava/util/Iterator;Lsun/security/jca/ProviderList$ServiceList$1; HSPLjava/security/Signature$Delegate;->engineInitSign(Ljava/security/PrivateKey;)V HSPLjava/security/Signature$Delegate;->engineInitVerify(Ljava/security/PublicKey;)V HSPLjava/security/Signature$Delegate;->engineSign()[B @@ -26632,7 +26662,7 @@ 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;->match(Ljava/security/cert/Certificate;)Z+]Ljava/security/cert/X509Certificate;Lcom/android/org/conscrypt/OpenSSLX509Certificate;]Ljavax/security/auth/x500/X500Principal;Ljavax/security/auth/x500/X500Principal; 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 @@ -26718,7 +26748,7 @@ HSPLjava/text/DecimalFormat;-><init>(Ljava/lang/String;Ljava/text/DecimalFormatS 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(JLjava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;+]Ljava/text/FieldPosition;Ljava/text/DontCareFieldPosition;]Landroid/icu/text/DecimalFormat;Landroid/icu/text/DecimalFormat; 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; @@ -26733,31 +26763,31 @@ 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;->parse(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/lang/Number;+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/Object;Ljava/lang/Long;]Ljava/text/DecimalFormat;Ljava/text/DecimalFormat;]Landroid/icu/text/DecimalFormat;Landroid/icu/text/DecimalFormat; 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;->setMaximumIntegerDigits(I)V+]Ljava/text/DecimalFormat;Ljava/text/DecimalFormat;]Landroid/icu/text/DecimalFormat;Landroid/icu/text/DecimalFormat; HSPLjava/text/DecimalFormat;->setMinimumFractionDigits(I)V -HSPLjava/text/DecimalFormat;->setMinimumIntegerDigits(I)V +HSPLjava/text/DecimalFormat;->setMinimumIntegerDigits(I)V+]Ljava/text/DecimalFormat;Ljava/text/DecimalFormat;]Landroid/icu/text/DecimalFormat;Landroid/icu/text/DecimalFormat; HSPLjava/text/DecimalFormat;->setParseIntegerOnly(Z)V HSPLjava/text/DecimalFormat;->toPattern()Ljava/lang/String; -HSPLjava/text/DecimalFormat;->updateFieldsFromIcu()V +HSPLjava/text/DecimalFormat;->updateFieldsFromIcu()V+]Landroid/icu/text/DecimalFormat;Landroid/icu/text/DecimalFormat; 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;->fromIcuInstance(Landroid/icu/text/DecimalFormatSymbols;)Ljava/text/DecimalFormatSymbols;+]Ljava/text/DecimalFormatSymbols;Ljava/text/DecimalFormatSymbols;]Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/text/DecimalFormatSymbols;]Landroid/icu/util/Currency;Landroid/icu/util/Currency; 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;->getIcuDecimalFormatSymbols()Landroid/icu/text/DecimalFormatSymbols;+]Ljava/text/DecimalFormatSymbols;Ljava/text/DecimalFormatSymbols;]Ljava/util/Currency;Ljava/util/Currency;]Landroid/icu/text/DecimalFormatSymbols;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;->initialize(Ljava/util/Locale;)V+]Ljava/lang/String;Ljava/lang/String;]Llibcore/icu/DecimalFormatData;Llibcore/icu/DecimalFormatData; +HSPLjava/text/DecimalFormatSymbols;->initializeCurrency(Ljava/util/Locale;)V+]Ljava/lang/String;Ljava/lang/String;]Ljava/util/Currency;Ljava/util/Currency;]Ljava/util/Locale;Ljava/util/Locale; +HSPLjava/text/DecimalFormatSymbols;->maybeStripMarkers(Ljava/lang/String;C)C+]Ljava/lang/String;Ljava/lang/String; HSPLjava/text/DecimalFormatSymbols;->setCurrency(Ljava/util/Currency;)V HSPLjava/text/DecimalFormatSymbols;->setCurrencySymbol(Ljava/lang/String;)V HSPLjava/text/DecimalFormatSymbols;->setDecimalSeparator(C)V @@ -26765,7 +26795,7 @@ 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;->setInternationalCurrencySymbol(Ljava/lang/String;)V+]Ljava/util/Currency;Ljava/util/Currency; HSPLjava/text/DecimalFormatSymbols;->setMinusSign(C)V HSPLjava/text/DecimalFormatSymbols;->setMonetaryDecimalSeparator(C)V HSPLjava/text/DecimalFormatSymbols;->setMonetaryGroupingSeparator(C)V @@ -26789,7 +26819,7 @@ 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/Format;->format(Ljava/lang/Object;)Ljava/lang/String;+]Ljava/lang/StringBuffer;Ljava/lang/StringBuffer;]Ljava/text/Format;Ljava/text/SimpleDateFormat; HSPLjava/text/IcuIteratorWrapper;-><init>(Landroid/icu/text/BreakIterator;)V HSPLjava/text/IcuIteratorWrapper;->checkOffset(ILjava/text/CharacterIterator;)V HSPLjava/text/IcuIteratorWrapper;->following(I)I @@ -26803,11 +26833,11 @@ 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/MessageFormat;->subformat([Ljava/lang/Object;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;Ljava/util/List;)Ljava/lang/StringBuffer;+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuffer;Ljava/lang/StringBuffer;]Ljava/text/FieldPosition;Ljava/text/FieldPosition;]Ljava/text/MessageFormat$Field;Ljava/text/MessageFormat$Field; 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/Normalizer;->normalize(Ljava/lang/CharSequence;Ljava/text/Normalizer$Form;)Ljava/lang/String;+]Ljava/util/function/Supplier;Ljava/text/Normalizer$Form$$ExternalSyntheticLambda2;]Landroid/icu/text/Normalizer2;Landroid/icu/impl/Norm2AllModes$DecomposeNormalizer2; HSPLjava/text/NumberFormat;-><init>()V HSPLjava/text/NumberFormat;->clone()Ljava/lang/Object; HSPLjava/text/NumberFormat;->format(D)Ljava/lang/String; @@ -26839,11 +26869,11 @@ 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;->checkNegativeNumberExpression()V+]Ljava/lang/String;Ljava/lang/String;]Ljava/text/NumberFormat;Ljava/text/DecimalFormat;]Ljava/text/DecimalFormat;Ljava/text/DecimalFormat; +HSPLjava/text/SimpleDateFormat;->compile(Ljava/lang/String;)[C+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/String;Ljava/lang/String; +HSPLjava/text/SimpleDateFormat;->encode(IILjava/lang/StringBuilder;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; +HSPLjava/text/SimpleDateFormat;->format(Ljava/util/Date;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;+]Ljava/text/FieldPosition;Ljava/text/FieldPosition; +HSPLjava/text/SimpleDateFormat;->format(Ljava/util/Date;Ljava/lang/StringBuffer;Ljava/text/Format$FieldDelegate;)Ljava/lang/StringBuffer;+]Ljava/lang/StringBuffer;Ljava/lang/StringBuffer;]Ljava/util/Calendar;Ljava/util/GregorianCalendar; 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; @@ -26856,16 +26886,16 @@ 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;->parseInternal(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/util/Date;+]Ljava/lang/String;Ljava/lang/String;]Ljava/text/CalendarBuilder;Ljava/text/CalendarBuilder;]Ljava/util/Calendar;Ljava/util/GregorianCalendar; 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;->subFormat(IILjava/text/Format$FieldDelegate;Ljava/lang/StringBuffer;Z)V+]Ljava/text/Format$FieldDelegate;Ljava/text/FieldPosition$Delegate;,Ljava/text/DontCareFieldPosition$1;]Ljava/lang/StringBuffer;Ljava/lang/StringBuffer;]Ljava/util/Calendar;Ljava/util/GregorianCalendar;]Ljava/text/DateFormatSymbols;Ljava/text/DateFormatSymbols; +HSPLjava/text/SimpleDateFormat;->subParse(Ljava/lang/String;IIIZ[ZLjava/text/ParsePosition;ZLjava/text/CalendarBuilder;)I+]Ljava/lang/String;Ljava/lang/String;]Ljava/text/ParsePosition;Ljava/text/ParsePosition;]Ljava/text/CalendarBuilder;Ljava/text/CalendarBuilder;]Ljava/lang/Number;Ljava/lang/Long;]Ljava/text/NumberFormat;Ljava/text/DecimalFormat; 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/SimpleDateFormat;->useDateFormatSymbols()Z+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/Object;Ljava/util/GregorianCalendar;]Ljava/lang/Class;Ljava/lang/Class; +HSPLjava/text/SimpleDateFormat;->zeroPaddingNumber(IIILjava/lang/StringBuffer;)V+]Ljava/lang/StringBuffer;Ljava/lang/StringBuffer;]Ljava/text/NumberFormat;Ljava/text/DecimalFormat;]Ljava/text/DecimalFormatSymbols;Ljava/text/DecimalFormatSymbols;]Ljava/text/DecimalFormat;Ljava/text/DecimalFormat; 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 @@ -27056,7 +27086,7 @@ HSPLjava/time/chrono/AbstractChronology;->resolveDate(Ljava/util/Map;Ljava/time/ 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 +HSPLjava/time/chrono/ChronoLocalDateTime;->toEpochSecond(Ljava/time/ZoneOffset;)J+]Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;]Ljava/time/LocalTime;Ljava/time/LocalTime;]Ljava/time/chrono/ChronoLocalDateTime;Ljava/time/LocalDateTime;]Ljava/time/chrono/ChronoLocalDate;Ljava/time/LocalDate; HSPLjava/time/chrono/ChronoZonedDateTime;->getChronology()Ljava/time/chrono/Chronology; HSPLjava/time/chrono/ChronoZonedDateTime;->query(Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object; HSPLjava/time/chrono/ChronoZonedDateTime;->toEpochSecond()J+]Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;]Ljava/time/LocalTime;Ljava/time/LocalTime;]Ljava/time/chrono/ChronoZonedDateTime;Ljava/time/ZonedDateTime;]Ljava/time/chrono/ChronoLocalDate;Ljava/time/LocalDate; @@ -27164,8 +27194,8 @@ 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 -HSPLjava/time/temporal/TemporalAccessor;->range(Ljava/time/temporal/TemporalField;)Ljava/time/temporal/ValueRange; +HSPLjava/time/temporal/TemporalAccessor;->get(Ljava/time/temporal/TemporalField;)I+]Ljava/time/temporal/TemporalAccessor;Ljava/time/format/Parsed;]Ljava/time/temporal/ValueRange;Ljava/time/temporal/ValueRange; +HSPLjava/time/temporal/TemporalAccessor;->range(Ljava/time/temporal/TemporalField;)Ljava/time/temporal/ValueRange;+]Ljava/time/temporal/TemporalField;Ljava/time/temporal/ChronoField;]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; @@ -27222,26 +27252,26 @@ 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;->addAll(Ljava/util/Collection;)Z+]Ljava/util/AbstractCollection;missing_types]Ljava/util/Collection;megamorphic_types]Ljava/util/Iterator;megamorphic_types 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;->contains(Ljava/lang/Object;)Z+]Ljava/lang/Object;missing_types]Ljava/util/Iterator;Ljava/util/AbstractList$Itr; +HSPLjava/util/AbstractCollection;->containsAll(Ljava/util/Collection;)Z+]Ljava/util/AbstractCollection;missing_types]Ljava/util/Collection;missing_types]Ljava/util/Iterator;missing_types +HSPLjava/util/AbstractCollection;->isEmpty()Z+]Ljava/util/AbstractCollection;missing_types 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;->retainAll(Ljava/util/Collection;)Z+]Ljava/util/AbstractCollection;Ljava/util/LinkedHashSet;]Ljava/util/Iterator;Ljava/util/LinkedHashMap$LinkedKeyIterator;]Ljava/util/Collection;missing_types +HSPLjava/util/AbstractCollection;->toArray()[Ljava/lang/Object;+]Ljava/util/AbstractCollection;megamorphic_types]Ljava/util/Iterator;megamorphic_types HSPLjava/util/AbstractCollection;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; -HSPLjava/util/AbstractCollection;->toString()Ljava/lang/String; +HSPLjava/util/AbstractCollection;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/util/AbstractCollection;Ljava/util/ArrayList;,Ljava/util/PriorityQueue;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;,Ljava/util/PriorityQueue$Itr; 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$Itr;->hasNext()Z+]Ljava/util/AbstractList;missing_types +HSPLjava/util/AbstractList$Itr;->next()Ljava/lang/Object;+]Ljava/util/AbstractList$Itr;Ljava/util/AbstractList$Itr;,Ljava/util/AbstractList$ListItr;]Ljava/util/AbstractList;missing_types 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;->previous()Ljava/lang/Object;+]Ljava/util/AbstractList$ListItr;Ljava/util/AbstractList$ListItr; HSPLjava/util/AbstractList$ListItr;->previousIndex()I HSPLjava/util/AbstractList$RandomAccessSpliterator;-><init>(Ljava/util/List;)V HSPLjava/util/AbstractList$RandomAccessSpliterator;->characteristics()I @@ -27284,33 +27314,33 @@ HSPLjava/util/AbstractMap$SimpleEntry;-><init>(Ljava/lang/Object;Ljava/lang/Obje 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;-><init>(Ljava/util/Map$Entry;)V+]Ljava/util/Map$Entry;Ljava/util/TreeMap$TreeMapEntry; 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$SimpleImmutableEntry;->hashCode()I+]Ljava/lang/Object;missing_types 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;->equals(Ljava/lang/Object;)Z+]Ljava/util/Map$Entry;Ljava/util/HashMap$Node;,Ljava/util/LinkedHashMap$LinkedHashMapEntry;]Ljava/util/AbstractMap;Ljava/util/HashMap;,Ljava/util/LinkedHashMap;]Ljava/util/Map;Ljava/util/HashMap;,Ljava/util/LinkedHashMap;]Ljava/util/Iterator;Ljava/util/HashMap$EntryIterator;,Ljava/util/LinkedHashMap$LinkedEntryIterator;]Ljava/util/Set;Ljava/util/HashMap$EntrySet;,Ljava/util/LinkedHashMap$LinkedEntrySet;]Ljava/lang/Object;Ljava/lang/Integer; 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;->hashCode()I+]Ljava/util/Map$Entry;Ljava/util/LinkedHashMap$LinkedHashMapEntry;,Ljava/util/HashMap$Node;]Ljava/util/AbstractMap;Ljava/util/HashMap;,Ljava/util/LinkedHashMap;]Ljava/util/Iterator;Ljava/util/HashMap$EntryIterator;,Ljava/util/LinkedHashMap$LinkedEntryIterator;]Ljava/util/Set;Ljava/util/LinkedHashMap$LinkedEntrySet;,Ljava/util/HashMap$EntrySet; +HSPLjava/util/AbstractMap;->isEmpty()Z+]Ljava/util/AbstractMap;missing_types +HSPLjava/util/AbstractMap;->putAll(Ljava/util/Map;)V+]Ljava/util/Map$Entry;Ljava/util/AbstractMap$SimpleImmutableEntry;]Ljava/util/AbstractMap;Ljava/util/EnumMap;]Ljava/util/Map;missing_types]Ljava/util/Iterator;missing_types]Ljava/util/Set;missing_types HSPLjava/util/AbstractMap;->size()I -HSPLjava/util/AbstractMap;->toString()Ljava/lang/String; +HSPLjava/util/AbstractMap;->toString()Ljava/lang/String;+]Ljava/util/Map$Entry;Ljava/util/HashMap$Node;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/util/AbstractMap;Ljava/util/HashMap;,Ljava/util/IdentityHashMap;]Ljava/util/Iterator;Ljava/util/HashMap$EntryIterator;,Ljava/util/IdentityHashMap$EntryIterator;]Ljava/util/Set;Ljava/util/HashMap$EntrySet;,Ljava/util/IdentityHashMap$EntrySet; 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;->addAll(Ljava/util/Collection;)Z+]Ljava/util/Collection;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Ljava/util/AbstractQueue;Ljava/util/PriorityQueue; 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;->hashCode()I+]Ljava/lang/Object;missing_types]Ljava/util/AbstractSet;Ljava/util/HashSet;,Ljava/util/LinkedHashSet;]Ljava/util/Iterator;Ljava/util/HashMap$KeyIterator;,Ljava/util/LinkedHashMap$LinkedKeyIterator; 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 @@ -27324,7 +27354,7 @@ 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;->add(Ljava/lang/Object;)Z+]Ljava/util/ArrayDeque;Ljava/util/ArrayDeque; HSPLjava/util/ArrayDeque;->addAll(Ljava/util/Collection;)Z HSPLjava/util/ArrayDeque;->addFirst(Ljava/lang/Object;)V HSPLjava/util/ArrayDeque;->addLast(Ljava/lang/Object;)V @@ -27349,15 +27379,15 @@ 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;->poll()Ljava/lang/Object;+]Ljava/util/ArrayDeque;Ljava/util/ArrayDeque; 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;->pop()Ljava/lang/Object;+]Ljava/util/ArrayDeque;Ljava/util/ArrayDeque; +HSPLjava/util/ArrayDeque;->push(Ljava/lang/Object;)V+]Ljava/util/ArrayDeque;Ljava/util/ArrayDeque; +HSPLjava/util/ArrayDeque;->remove()Ljava/lang/Object;+]Ljava/util/ArrayDeque;Ljava/util/ArrayDeque; 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;->removeFirst()Ljava/lang/Object;+]Ljava/util/ArrayDeque;Ljava/util/ArrayDeque; +HSPLjava/util/ArrayDeque;->removeFirstOccurrence(Ljava/lang/Object;)Z+]Ljava/util/ArrayDeque;Ljava/util/ArrayDeque; HSPLjava/util/ArrayDeque;->removeLast()Ljava/lang/Object; HSPLjava/util/ArrayDeque;->size()I HSPLjava/util/ArrayDeque;->sub(III)I @@ -27373,7 +27403,7 @@ HSPLjava/util/ArrayList$ArrayListSpliterator;->tryAdvance(Ljava/util/function/Co 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;->next()Ljava/lang/Object;+]Ljava/util/ArrayList$Itr;Ljava/util/ArrayList$ListItr;,Ljava/util/ArrayList$Itr; HSPLjava/util/ArrayList$Itr;->remove()V HSPLjava/util/ArrayList$ListItr;-><init>(Ljava/util/ArrayList;I)V HSPLjava/util/ArrayList$ListItr;->hasPrevious()Z @@ -27383,17 +27413,17 @@ 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$1;->next()Ljava/lang/Object;+]Ljava/util/ArrayList$SubList$1;Ljava/util/ArrayList$SubList$1; 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;->get(I)Ljava/lang/Object;+]Ljava/util/ArrayList;Ljava/util/ArrayList; 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;->removeRange(II)V+]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLjava/util/ArrayList$SubList;->size()I HSPLjava/util/ArrayList$SubList;->subList(II)Ljava/util/List; HSPLjava/util/ArrayList$SubList;->toArray()[Ljava/lang/Object; @@ -27401,12 +27431,12 @@ 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;-><init>(Ljava/util/Collection;)V+]Ljava/util/Collection;missing_types]Ljava/lang/Object;missing_types 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;->addAll(Ljava/util/Collection;)Z+]Ljava/util/Collection;missing_types HSPLjava/util/ArrayList;->batchRemove(Ljava/util/Collection;ZII)Z HSPLjava/util/ArrayList;->checkForComodification(I)V HSPLjava/util/ArrayList;->clear()V @@ -27419,11 +27449,11 @@ 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;->forEach(Ljava/util/function/Consumer;)V+]Ljava/util/function/Consumer;Ljava/util/ArrayDeque$$ExternalSyntheticLambda1; HSPLjava/util/ArrayList;->get(I)Ljava/lang/Object;+]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLjava/util/ArrayList;->grow()[Ljava/lang/Object; HSPLjava/util/ArrayList;->grow(I)[Ljava/lang/Object; -HSPLjava/util/ArrayList;->hashCode()I +HSPLjava/util/ArrayList;->hashCode()I+]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLjava/util/ArrayList;->hashCodeRange(II)I HSPLjava/util/ArrayList;->indexOf(Ljava/lang/Object;)I+]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLjava/util/ArrayList;->indexOfRange(Ljava/lang/Object;II)I+]Ljava/lang/Object;missing_types @@ -27435,36 +27465,36 @@ 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;->remove(Ljava/lang/Object;)Z+]Ljava/lang/Object;missing_types 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;->set(ILjava/lang/Object;)Ljava/lang/Object;+]Ljava/util/ArrayList;Ljava/util/ArrayList; 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;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;+]Ljava/lang/Object;missing_types 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;->contains(Ljava/lang/Object;)Z+]Ljava/util/Arrays$ArrayList;Ljava/util/Arrays$ArrayList; 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;->indexOf(Ljava/lang/Object;)I+]Ljava/lang/Object;missing_types 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;missing_types HSPLjava/util/Arrays$ArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; HSPLjava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List; HSPLjava/util/Arrays;->binarySearch([CC)I @@ -27485,8 +27515,8 @@ 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([Ljava/lang/Object;I)[Ljava/lang/Object;+]Ljava/lang/Object;megamorphic_types +HSPLjava/util/Arrays;->copyOf([Ljava/lang/Object;ILjava/lang/Class;)[Ljava/lang/Object;+]Ljava/lang/Class;Ljava/lang/Class; HSPLjava/util/Arrays;->copyOf([ZI)[Z HSPLjava/util/Arrays;->copyOfRange([BII)[B HSPLjava/util/Arrays;->copyOfRange([CII)[C @@ -27495,10 +27525,10 @@ 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;->deepEquals0(Ljava/lang/Object;Ljava/lang/Object;)Z+]Ljava/lang/Object;Landroid/view/RoundedCorner; +HSPLjava/util/Arrays;->deepHashCode([Ljava/lang/Object;)I+]Ljava/lang/Object;missing_types]Ljava/lang/Class;Ljava/lang/Class; +HSPLjava/util/Arrays;->deepToString([Ljava/lang/Object;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; +HSPLjava/util/Arrays;->deepToString([Ljava/lang/Object;Ljava/lang/StringBuilder;Ljava/util/Set;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/Object;Ljava/lang/String;,Ljava/lang/StackTraceElement;]Ljava/lang/Class;Ljava/lang/Class;]Ljava/util/Set;Ljava/util/HashSet; HSPLjava/util/Arrays;->equals([B[B)Z HSPLjava/util/Arrays;->equals([F[F)Z HSPLjava/util/Arrays;->equals([I[I)Z @@ -27539,7 +27569,7 @@ 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([B)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HSPLjava/util/Arrays;->toString([F)Ljava/lang/String; HSPLjava/util/Arrays;->toString([I)Ljava/lang/String; HSPLjava/util/Arrays;->toString([J)Ljava/lang/String; @@ -27559,7 +27589,7 @@ 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;->clone()Ljava/lang/Object;+][J[J HSPLjava/util/BitSet;->ensureCapacity(I)V HSPLjava/util/BitSet;->equals(Ljava/lang/Object;)Z HSPLjava/util/BitSet;->expandTo(I)V @@ -27579,7 +27609,7 @@ 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(Ljava/nio/ByteBuffer;)Ljava/util/BitSet;+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; HSPLjava/util/BitSet;->valueOf([J)Ljava/util/BitSet; HSPLjava/util/BitSet;->wordIndex(I)I HSPLjava/util/Calendar;-><init>()V @@ -27590,10 +27620,10 @@ 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;->complete()V+]Ljava/util/Calendar;Ljava/util/GregorianCalendar; 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;->get(I)I+]Ljava/util/Calendar;Ljava/util/GregorianCalendar; HSPLjava/util/Calendar;->getFirstDayOfWeek()I HSPLjava/util/Calendar;->getInstance()Ljava/util/Calendar; HSPLjava/util/Calendar;->getInstance(Ljava/util/Locale;)Ljava/util/Calendar; @@ -27615,19 +27645,19 @@ 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(II)V+]Ljava/util/Calendar;Ljava/util/GregorianCalendar; 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;->setTime(Ljava/util/Date;)V+]Ljava/util/Date;Ljava/util/Date;]Ljava/util/Calendar;Ljava/util/GregorianCalendar; +HSPLjava/util/Calendar;->setTimeInMillis(J)V+]Ljava/util/Calendar;Ljava/util/GregorianCalendar; 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;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator; +HSPLjava/util/Collection;->removeIf(Ljava/util/function/Predicate;)Z+]Ljava/util/Collection;Landroid/util/MapCollections$EntrySet;,Landroid/util/MapCollections$ValuesCollection;,Ljava/util/HashSet;,Ljava/util/LinkedList;,Ljava/util/HashMap$EntrySet;]Ljava/util/Iterator;Landroid/util/MapCollections$MapIterator;,Landroid/util/MapCollections$ArrayIterator;,Ljava/util/HashMap$KeyIterator;,Ljava/util/LinkedList$ListItr;,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 @@ -27671,17 +27701,17 @@ 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$ReverseComparator;->compare(Ljava/lang/Comparable;Ljava/lang/Comparable;)I+]Ljava/lang/Comparable;missing_types +HSPLjava/util/Collections$ReverseComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I+]Ljava/util/Collections$ReverseComparator;Ljava/util/Collections$ReverseComparator; HSPLjava/util/Collections$SetFromMap;-><init>(Ljava/util/Map;)V -HSPLjava/util/Collections$SetFromMap;->add(Ljava/lang/Object;)Z +HSPLjava/util/Collections$SetFromMap;->add(Ljava/lang/Object;)Z+]Ljava/util/Map;missing_types 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;->remove(Ljava/lang/Object;)Z+]Ljava/util/Map;missing_types +HSPLjava/util/Collections$SetFromMap;->size()I+]Ljava/util/Map;Ljava/util/IdentityHashMap; 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 @@ -27710,9 +27740,9 @@ 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;->iterator()Ljava/util/Iterator;+]Ljava/util/Collection;Ljava/util/EnumMap$EntrySet;,Ljava/util/ArrayList; HSPLjava/util/Collections$SynchronizedCollection;->remove(Ljava/lang/Object;)Z -HSPLjava/util/Collections$SynchronizedCollection;->size()I +HSPLjava/util/Collections$SynchronizedCollection;->size()I+]Ljava/util/Collection;Ljava/util/EnumMap$EntrySet; 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; @@ -27722,29 +27752,29 @@ 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;->get(Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/util/Map;Ljava/util/TreeMap; 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;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/util/Map;Ljava/util/WeakHashMap; HSPLjava/util/Collections$SynchronizedMap;->putAll(Ljava/util/Map;)V -HSPLjava/util/Collections$SynchronizedMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; +HSPLjava/util/Collections$SynchronizedMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/util/Map;Ljava/util/WeakHashMap; 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$1;-><init>(Ljava/util/Collections$UnmodifiableCollection;)V+]Ljava/util/Collection;missing_types +HSPLjava/util/Collections$UnmodifiableCollection$1;->hasNext()Z+]Ljava/util/Iterator;missing_types +HSPLjava/util/Collections$UnmodifiableCollection$1;->next()Ljava/lang/Object;+]Ljava/util/Iterator;megamorphic_types 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;->contains(Ljava/lang/Object;)Z+]Ljava/util/Collection;megamorphic_types +HSPLjava/util/Collections$UnmodifiableCollection;->containsAll(Ljava/util/Collection;)Z+]Ljava/util/Collection;Ljava/util/HashSet; HSPLjava/util/Collections$UnmodifiableCollection;->forEach(Ljava/util/function/Consumer;)V -HSPLjava/util/Collections$UnmodifiableCollection;->isEmpty()Z +HSPLjava/util/Collections$UnmodifiableCollection;->isEmpty()Z+]Ljava/util/Collection;megamorphic_types HSPLjava/util/Collections$UnmodifiableCollection;->iterator()Ljava/util/Iterator; -HSPLjava/util/Collections$UnmodifiableCollection;->size()I +HSPLjava/util/Collections$UnmodifiableCollection;->size()I+]Ljava/util/Collection;missing_types 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; @@ -27755,29 +27785,29 @@ 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;->get(I)Ljava/lang/Object;+]Ljava/util/List;missing_types 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$1;-><init>(Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet;)V+]Ljava/util/Collection;missing_types +HSPLjava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$1;->hasNext()Z+]Ljava/util/Iterator;missing_types +HSPLjava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$1;->next()Ljava/lang/Object;+]Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$1;Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$1; +HSPLjava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$1;->next()Ljava/util/Map$Entry;+]Ljava/util/Iterator;missing_types 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$UnmodifiableEntry;->getKey()Ljava/lang/Object;+]Ljava/util/Map$Entry;missing_types +HSPLjava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry;->getValue()Ljava/lang/Object;+]Ljava/util/Map$Entry;missing_types 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;->entrySet()Ljava/util/Set;+]Ljava/util/Map;missing_types 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;->get(Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/util/Map;missing_types HSPLjava/util/Collections$UnmodifiableMap;->hashCode()I HSPLjava/util/Collections$UnmodifiableMap;->isEmpty()Z -HSPLjava/util/Collections$UnmodifiableMap;->keySet()Ljava/util/Set; +HSPLjava/util/Collections$UnmodifiableMap;->keySet()Ljava/util/Set;+]Ljava/util/Map;missing_types HSPLjava/util/Collections$UnmodifiableMap;->size()I HSPLjava/util/Collections$UnmodifiableMap;->toString()Ljava/lang/String; HSPLjava/util/Collections$UnmodifiableMap;->values()Ljava/util/Collection; @@ -27787,7 +27817,7 @@ 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;->addAll(Ljava/util/Collection;[Ljava/lang/Object;)Z+]Ljava/util/Collection;Ljava/util/ArrayList; 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 @@ -27799,8 +27829,8 @@ 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;->indexedBinarySearch(Ljava/util/List;Ljava/lang/Object;)I+]Ljava/util/List;Ljava/util/ArrayList; +HSPLjava/util/Collections;->indexedBinarySearch(Ljava/util/List;Ljava/lang/Object;Ljava/util/Comparator;)I+]Ljava/util/List;missing_types]Ljava/util/Comparator;Ljava/lang/String$CaseInsensitiveComparator; 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; @@ -27819,8 +27849,8 @@ HSPLjava/util/Collections;->singletonIterator(Ljava/lang/Object;)Ljava/util/Iter 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;->sort(Ljava/util/List;Ljava/util/Comparator;)V+]Ldalvik/system/VMRuntime;Ldalvik/system/VMRuntime;]Ljava/util/List;Ljava/util/ArrayList; +HSPLjava/util/Collections;->swap(Ljava/util/List;II)V+]Ljava/util/List;Ljava/util/ArrayList; 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; @@ -27828,8 +27858,8 @@ 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;->unmodifiableList(Ljava/util/List;)Ljava/util/List;+]Ljava/lang/Object;missing_types +HSPLjava/util/Collections;->unmodifiableMap(Ljava/util/Map;)Ljava/util/Map;+]Ljava/lang/Object;missing_types 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; @@ -27842,7 +27872,7 @@ HSPLjava/util/ComparableTimSort;->gallopRight(Ljava/lang/Comparable;[Ljava/lang/ 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;->mergeHi(IIII)V+]Ljava/lang/Comparable;Ljava/lang/String; HSPLjava/util/ComparableTimSort;->mergeLo(IIII)V HSPLjava/util/ComparableTimSort;->minRunLength(I)I HSPLjava/util/ComparableTimSort;->pushRun(II)V @@ -27869,9 +27899,9 @@ 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/lang/String;)Ljava/util/Currency;+]Ljava/util/concurrent/ConcurrentMap;Ljava/util/concurrent/ConcurrentHashMap; HSPLjava/util/Currency;->getInstance(Ljava/util/Locale;)Ljava/util/Currency; -HSPLjava/util/Currency;->getSymbol(Ljava/util/Locale;)Ljava/lang/String; +HSPLjava/util/Currency;->getSymbol(Ljava/util/Locale;)Ljava/lang/String;+]Landroid/icu/util/Currency;Landroid/icu/util/Currency; HSPLjava/util/Date;-><init>()V HSPLjava/util/Date;-><init>(J)V HSPLjava/util/Date;->after(Ljava/util/Date;)Z @@ -27915,32 +27945,32 @@ 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$EntryIterator;->next()Ljava/util/Map$Entry;+]Ljava/util/EnumMap$EntryIterator;Ljava/util/EnumMap$EntryIterator; 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$KeyIterator;->next()Ljava/lang/Enum;+]Ljava/util/EnumMap$KeyIterator;Ljava/util/EnumMap$KeyIterator; +HSPLjava/util/EnumMap$KeyIterator;->next()Ljava/lang/Object;+]Ljava/util/EnumMap$KeyIterator;Ljava/util/EnumMap$KeyIterator; 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$ValueIterator;->next()Ljava/lang/Object;+]Ljava/util/EnumMap$ValueIterator;Ljava/util/EnumMap$ValueIterator; 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;-><init>(Ljava/util/Map;)V+]Ljava/util/EnumMap;Ljava/util/EnumMap;]Ljava/util/Map;Ljava/util/Collections$SingletonMap;]Ljava/util/Iterator;Ljava/util/Collections$1;]Ljava/util/Set;Ljava/util/Collections$SingletonSet; 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;->get(Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/lang/Enum;missing_types HSPLjava/util/EnumMap;->getKeyUniverse(Ljava/lang/Class;)[Ljava/lang/Enum; -HSPLjava/util/EnumMap;->isValidKey(Ljava/lang/Object;)Z +HSPLjava/util/EnumMap;->isValidKey(Ljava/lang/Object;)Z+]Ljava/lang/Object;missing_types 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; @@ -27957,7 +27987,7 @@ 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;->getUniverse(Ljava/lang/Class;)[Ljava/lang/Enum;+]Ljava/lang/Class;Ljava/lang/Class; 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; @@ -27974,58 +28004,58 @@ 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$FixedString;->print(Ljava/lang/Object;Ljava/util/Locale;)V+]Ljava/lang/Appendable;Ljava/lang/StringBuilder; 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;->add(Ljava/util/Formatter$Flags;)Ljava/util/Formatter$Flags;+]Ljava/util/Formatter$Flags;Ljava/util/Formatter$Flags; +HSPLjava/util/Formatter$Flags;->contains(Ljava/util/Formatter$Flags;)Z+]Ljava/util/Formatter$Flags;Ljava/util/Formatter$Flags; 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;->parse(Ljava/lang/String;II)Ljava/util/Formatter$Flags;+]Ljava/lang/String;Ljava/lang/String;]Ljava/util/Formatter$Flags;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;-><init>(Ljava/util/Formatter;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String; +HSPLjava/util/Formatter$FormatSpecifier;->addZeros(Ljava/lang/StringBuilder;I)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HSPLjava/util/Formatter$FormatSpecifier;->adjustWidth(ILjava/util/Formatter$Flags;Z)I -HSPLjava/util/Formatter$FormatSpecifier;->checkBadFlags([Ljava/util/Formatter$Flags;)V +HSPLjava/util/Formatter$FormatSpecifier;->checkBadFlags([Ljava/util/Formatter$Flags;)V+]Ljava/util/Formatter$Flags;Ljava/util/Formatter$Flags; 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;->checkGeneral()V+]Ljava/util/Formatter$Flags;Ljava/util/Formatter$Flags; HSPLjava/util/Formatter$FormatSpecifier;->checkInteger()V -HSPLjava/util/Formatter$FormatSpecifier;->checkNumeric()V +HSPLjava/util/Formatter$FormatSpecifier;->checkNumeric()V+]Ljava/util/Formatter$Flags;Ljava/util/Formatter$Flags; HSPLjava/util/Formatter$FormatSpecifier;->checkText()V -HSPLjava/util/Formatter$FormatSpecifier;->getZero(Ljava/util/Locale;)C +HSPLjava/util/Formatter$FormatSpecifier;->getZero(Ljava/util/Locale;)C+]Ljava/util/Formatter;Ljava/util/Formatter;]Ljava/util/Locale;Ljava/util/Locale; HSPLjava/util/Formatter$FormatSpecifier;->index()I -HSPLjava/util/Formatter$FormatSpecifier;->leadingSign(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder; +HSPLjava/util/Formatter$FormatSpecifier;->leadingSign(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/util/Formatter$Flags;Ljava/util/Formatter$Flags; 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;->localizedMagnitude(Ljava/lang/StringBuilder;Ljava/lang/CharSequence;ILjava/util/Formatter$Flags;ILjava/util/Locale;)Ljava/lang/StringBuilder;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/util/Formatter$Flags;Ljava/util/Formatter$Flags;]Ljava/util/Locale;Ljava/util/Locale;]Ljava/lang/CharSequence;Ljava/lang/String;,Ljava/lang/StringBuilder;]Ljava/text/DecimalFormatSymbols;Ljava/text/DecimalFormatSymbols; 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(JLjava/util/Locale;)V+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/util/Formatter$Flags;Ljava/util/Formatter$Flags; 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/String;Ljava/util/Locale;)V+]Ljava/util/Formatter$Flags;Ljava/util/Formatter$Flags; +HSPLjava/util/Formatter$FormatSpecifier;->print(Ljava/lang/StringBuilder;DLjava/util/Locale;Ljava/util/Formatter$Flags;CIZ)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/util/Formatter$Flags;Ljava/util/Formatter$Flags;]Ljdk/internal/math/FormattedFloatingDecimal;Ljdk/internal/math/FormattedFloatingDecimal; 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;->printFloat(Ljava/lang/Object;Ljava/util/Locale;)V+]Ljava/lang/Double;Ljava/lang/Double;]Ljava/lang/Float;Ljava/lang/Float; +HSPLjava/util/Formatter$FormatSpecifier;->printInteger(Ljava/lang/Object;Ljava/util/Locale;)V+]Ljava/lang/Integer;Ljava/lang/Integer;]Ljava/lang/Long;Ljava/lang/Long;]Ljava/lang/Byte;Ljava/lang/Byte; +HSPLjava/util/Formatter$FormatSpecifier;->printString(Ljava/lang/Object;Ljava/util/Locale;)V+]Ljava/util/Formatter$Flags;Ljava/util/Formatter$Flags;]Ljava/lang/Object;missing_types 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$FormatSpecifierParser;-><init>(Ljava/util/Formatter;Ljava/lang/String;I)V -HSPLjava/util/Formatter$FormatSpecifierParser;->advance()C +HSPLjava/util/Formatter$FormatSpecifier;->trailingZeros(Ljava/lang/StringBuilder;I)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; +HSPLjava/util/Formatter$FormatSpecifierParser;-><init>(Ljava/util/Formatter;Ljava/lang/String;I)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/String;Ljava/lang/String; +HSPLjava/util/Formatter$FormatSpecifierParser;->advance()C+]Ljava/lang/String;Ljava/lang/String; 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;->isEnd()Z+]Ljava/lang/String;Ljava/lang/String; +HSPLjava/util/Formatter$FormatSpecifierParser;->nextInt()Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String; HSPLjava/util/Formatter$FormatSpecifierParser;->nextIsInt()Z -HSPLjava/util/Formatter$FormatSpecifierParser;->peek()C +HSPLjava/util/Formatter$FormatSpecifierParser;->peek()C+]Ljava/lang/String;Ljava/lang/String; HSPLjava/util/Formatter;->-$$Nest$fgeta(Ljava/util/Formatter;)Ljava/lang/Appendable; HSPLjava/util/Formatter;-><init>()V HSPLjava/util/Formatter;-><init>(Ljava/lang/Appendable;)V @@ -28034,29 +28064,29 @@ 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;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;+]Ljava/util/Formatter;Ljava/util/Formatter; +HSPLjava/util/Formatter;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;+]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/Formatter$FormatString;Ljava/util/Formatter$FixedString;,Ljava/util/Formatter$FormatSpecifier;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr; 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;->parse(Ljava/lang/String;)Ljava/util/List;+]Ljava/lang/String;Ljava/lang/String;]Ljava/util/Formatter$FormatSpecifierParser;Ljava/util/Formatter$FormatSpecifierParser;]Ljava/util/ArrayList;Ljava/util/ArrayList; +HSPLjava/util/Formatter;->toString()Ljava/lang/String;+]Ljava/lang/Object;Ljava/lang/StringBuilder; 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;-><init>(Ljava/util/TimeZone;Ljava/util/Locale;)V+]Lsun/util/calendar/Gregorian;Lsun/util/calendar/Gregorian;]Ljava/util/GregorianCalendar;Ljava/util/GregorianCalendar; 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;->computeFields()V+]Ljava/util/GregorianCalendar;Ljava/util/GregorianCalendar; +HSPLjava/util/GregorianCalendar;->computeFields(II)I+]Lsun/util/calendar/Gregorian;Lsun/util/calendar/Gregorian;]Ljava/util/GregorianCalendar;Ljava/util/GregorianCalendar;]Ljava/util/TimeZone;Ljava/util/SimpleTimeZone;]Lsun/util/calendar/BaseCalendar$Date;Lsun/util/calendar/Gregorian$Date;]Lsun/util/calendar/BaseCalendar;Lsun/util/calendar/Gregorian;]Llibcore/util/ZoneInfo;Llibcore/util/ZoneInfo; +HSPLjava/util/GregorianCalendar;->computeTime()V+]Ljava/util/GregorianCalendar;Ljava/util/GregorianCalendar; 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;->getFixedDate(Lsun/util/calendar/BaseCalendar;II)J+]Ljava/util/GregorianCalendar;Ljava/util/GregorianCalendar;]Lsun/util/calendar/BaseCalendar;Lsun/util/calendar/Gregorian; HSPLjava/util/GregorianCalendar;->getGregorianCutoverDate()Lsun/util/calendar/BaseCalendar$Date; HSPLjava/util/GregorianCalendar;->getJulianCalendarSystem()Lsun/util/calendar/BaseCalendar; HSPLjava/util/GregorianCalendar;->getLeastMaximum(I)I @@ -28064,8 +28094,8 @@ 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;->getWeekNumber(JJ)I+]Ljava/util/GregorianCalendar;Ljava/util/GregorianCalendar; +HSPLjava/util/GregorianCalendar;->internalGetEra()I+]Ljava/util/GregorianCalendar;Ljava/util/GregorianCalendar; HSPLjava/util/GregorianCalendar;->isCutoverYear(I)Z HSPLjava/util/GregorianCalendar;->isLeapYear(I)Z HSPLjava/util/GregorianCalendar;->monthLength(I)I @@ -28075,8 +28105,8 @@ 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$EntryIterator;->next()Ljava/lang/Object;+]Ljava/util/HashMap$EntryIterator;Ljava/util/HashMap$EntryIterator; +HSPLjava/util/HashMap$EntryIterator;->next()Ljava/util/Map$Entry;+]Ljava/util/HashMap$EntryIterator;Ljava/util/HashMap$EntryIterator; HSPLjava/util/HashMap$EntrySet;-><init>(Ljava/util/HashMap;)V HSPLjava/util/HashMap$EntrySet;->iterator()Ljava/util/Iterator; HSPLjava/util/HashMap$EntrySet;->size()I @@ -28088,10 +28118,10 @@ 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;->estimateSize()J+]Ljava/util/HashMap$HashMapSpliterator;Ljava/util/HashMap$KeySpliterator; 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$KeyIterator;->next()Ljava/lang/Object;+]Ljava/util/HashMap$KeyIterator;Ljava/util/HashMap$KeyIterator; 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 @@ -28102,7 +28132,7 @@ 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;->forEachRemaining(Ljava/util/function/Consumer;)V+]Ljava/util/function/Consumer;Ljava/util/stream/ReferencePipeline$4$1; 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; @@ -28111,17 +28141,17 @@ 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;->find(ILjava/lang/Object;Ljava/lang/Class;)Ljava/util/HashMap$TreeNode;+]Ljava/lang/Object;Ljava/lang/Integer;,Ljava/lang/Long; +HSPLjava/util/HashMap$TreeNode;->getTreeNode(ILjava/lang/Object;)Ljava/util/HashMap$TreeNode;+]Ljava/util/HashMap$TreeNode;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;->putTreeVal(Ljava/util/HashMap;[Ljava/util/HashMap$Node;ILjava/lang/Object;Ljava/lang/Object;)Ljava/util/HashMap$TreeNode;+]Ljava/util/HashMap;missing_types 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$TreeNode;->untreeify(Ljava/util/HashMap;)Ljava/util/HashMap$Node;+]Ljava/util/HashMap;missing_types HSPLjava/util/HashMap$ValueIterator;-><init>(Ljava/util/HashMap;)V -HSPLjava/util/HashMap$ValueIterator;->next()Ljava/lang/Object; +HSPLjava/util/HashMap$ValueIterator;->next()Ljava/lang/Object;+]Ljava/util/HashMap$ValueIterator;Ljava/util/HashMap$ValueIterator; 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 @@ -28143,13 +28173,13 @@ HSPLjava/util/HashMap;->afterNodeRemoval(Ljava/util/HashMap$Node;)V HSPLjava/util/HashMap;->capacity()I HSPLjava/util/HashMap;->clear()V HSPLjava/util/HashMap;->clone()Ljava/lang/Object; -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;->computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;+]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/util/function/Function;missing_types]Ljava/lang/Object;Ljava/lang/Long; +HSPLjava/util/HashMap;->containsKey(Ljava/lang/Object;)Z+]Ljava/util/HashMap;missing_types 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;+]Ljava/lang/Object;megamorphic_types +HSPLjava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/util/HashMap;missing_types +HSPLjava/util/HashMap;->getNode(Ljava/lang/Object;)Ljava/util/HashMap$Node;+]Ljava/lang/Object;megamorphic_types]Ljava/util/HashMap$TreeNode;Ljava/util/HashMap$TreeNode; HSPLjava/util/HashMap;->getOrDefault(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; HSPLjava/util/HashMap;->hash(Ljava/lang/Object;)I+]Ljava/lang/Object;megamorphic_types HSPLjava/util/HashMap;->internalWriteEntries(Ljava/io/ObjectOutputStream;)V @@ -28161,21 +28191,21 @@ HSPLjava/util/HashMap;->merge(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/fun 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;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/util/HashMap;megamorphic_types +HSPLjava/util/HashMap;->putAll(Ljava/util/Map;)V+]Ljava/util/HashMap;missing_types +HSPLjava/util/HashMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/util/HashMap;Ljava/util/HashMap; +HSPLjava/util/HashMap;->putMapEntries(Ljava/util/Map;Z)V+]Ljava/util/Map$Entry;megamorphic_types]Ljava/util/HashMap;missing_types]Ljava/util/Map;missing_types]Ljava/util/Iterator;missing_types]Ljava/util/Set;missing_types +HSPLjava/util/HashMap;->putVal(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object;+]Ljava/util/HashMap;megamorphic_types]Ljava/lang/Object;megamorphic_types]Ljava/util/HashMap$TreeNode;Ljava/util/HashMap$TreeNode; 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;->remove(Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/util/HashMap;Ljava/util/HashMap;,Ljava/util/LinkedHashMap; +HSPLjava/util/HashMap;->removeNode(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/util/HashMap$Node;+]Ljava/util/HashMap;missing_types]Ljava/lang/Object;missing_types]Ljava/util/HashMap$TreeNode;Ljava/util/HashMap$TreeNode; 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;->resize()[Ljava/util/HashMap$Node;+]Ljava/util/HashMap$TreeNode;Ljava/util/HashMap$TreeNode; HSPLjava/util/HashMap;->size()I HSPLjava/util/HashMap;->tableSizeFor(I)I -HSPLjava/util/HashMap;->treeifyBin([Ljava/util/HashMap$Node;I)V +HSPLjava/util/HashMap;->treeifyBin([Ljava/util/HashMap$Node;I)V+]Ljava/util/HashMap;missing_types]Ljava/util/HashMap$TreeNode;Ljava/util/HashMap$TreeNode; 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 @@ -28184,15 +28214,15 @@ 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;->add(Ljava/lang/Object;)Z+]Ljava/util/HashMap;Ljava/util/HashMap;,Ljava/util/LinkedHashMap; 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;->contains(Ljava/lang/Object;)Z+]Ljava/util/HashMap;Ljava/util/HashMap;,Ljava/util/LinkedHashMap; +HSPLjava/util/HashSet;->isEmpty()Z+]Ljava/util/HashMap;Ljava/util/HashMap;,Ljava/util/LinkedHashMap; +HSPLjava/util/HashSet;->iterator()Ljava/util/Iterator;+]Ljava/util/HashMap;Ljava/util/HashMap;,Ljava/util/LinkedHashMap;]Ljava/util/Set;Ljava/util/HashMap$KeySet;,Ljava/util/LinkedHashMap$LinkedKeySet; HSPLjava/util/HashSet;->readObject(Ljava/io/ObjectInputStream;)V -HSPLjava/util/HashSet;->remove(Ljava/lang/Object;)Z -HSPLjava/util/HashSet;->size()I +HSPLjava/util/HashSet;->remove(Ljava/lang/Object;)Z+]Ljava/util/HashMap;Ljava/util/HashMap;,Ljava/util/LinkedHashMap; +HSPLjava/util/HashSet;->size()I+]Ljava/util/HashMap;Ljava/util/HashMap;,Ljava/util/LinkedHashMap; HSPLjava/util/HashSet;->spliterator()Ljava/util/Spliterator; HSPLjava/util/HashSet;->writeObject(Ljava/io/ObjectOutputStream;)V HSPLjava/util/Hashtable$EntrySet;-><init>(Ljava/util/Hashtable;)V @@ -28222,7 +28252,7 @@ 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;->get(Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/lang/Object;Ljava/lang/String; HSPLjava/util/Hashtable;->getEnumeration(I)Ljava/util/Enumeration; HSPLjava/util/Hashtable;->getIterator(I)Ljava/util/Iterator; HSPLjava/util/Hashtable;->isEmpty()Z @@ -28303,7 +28333,7 @@ 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/Iterator;->forEachRemaining(Ljava/util/function/Consumer;)V+]Ljava/util/function/Consumer;missing_types]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator; +HSPLjava/util/Iterator;->forEachRemaining(Ljava/util/function/Consumer;)V+]Ljava/util/function/Consumer;megamorphic_types]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator; HSPLjava/util/JumboEnumSet$EnumSetIterator;-><init>(Ljava/util/JumboEnumSet;)V HSPLjava/util/JumboEnumSet$EnumSetIterator;->hasNext()Z HSPLjava/util/JumboEnumSet$EnumSetIterator;->next()Ljava/lang/Enum; @@ -28319,18 +28349,18 @@ 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$LinkedEntryIterator;-><init>(Ljava/util/LinkedHashMap;)V -HSPLjava/util/LinkedHashMap$LinkedEntryIterator;->next()Ljava/lang/Object; -HSPLjava/util/LinkedHashMap$LinkedEntryIterator;->next()Ljava/util/Map$Entry; +HSPLjava/util/LinkedHashMap$LinkedEntryIterator;->next()Ljava/lang/Object;+]Ljava/util/LinkedHashMap$LinkedEntryIterator;Ljava/util/LinkedHashMap$LinkedEntryIterator; +HSPLjava/util/LinkedHashMap$LinkedEntryIterator;->next()Ljava/util/Map$Entry;+]Ljava/util/LinkedHashMap$LinkedEntryIterator;Ljava/util/LinkedHashMap$LinkedEntryIterator; HSPLjava/util/LinkedHashMap$LinkedEntrySet;-><init>(Ljava/util/LinkedHashMap;)V HSPLjava/util/LinkedHashMap$LinkedEntrySet;->iterator()Ljava/util/Iterator; HSPLjava/util/LinkedHashMap$LinkedEntrySet;->size()I HSPLjava/util/LinkedHashMap$LinkedHashIterator;-><init>(Ljava/util/LinkedHashMap;)V HSPLjava/util/LinkedHashMap$LinkedHashIterator;->hasNext()Z HSPLjava/util/LinkedHashMap$LinkedHashIterator;->nextNode()Ljava/util/LinkedHashMap$LinkedHashMapEntry; -HSPLjava/util/LinkedHashMap$LinkedHashIterator;->remove()V +HSPLjava/util/LinkedHashMap$LinkedHashIterator;->remove()V+]Ljava/util/LinkedHashMap;Ljava/util/LinkedHashMap; HSPLjava/util/LinkedHashMap$LinkedHashMapEntry;-><init>(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)V HSPLjava/util/LinkedHashMap$LinkedKeyIterator;-><init>(Ljava/util/LinkedHashMap;)V -HSPLjava/util/LinkedHashMap$LinkedKeyIterator;->next()Ljava/lang/Object; +HSPLjava/util/LinkedHashMap$LinkedKeyIterator;->next()Ljava/lang/Object;+]Ljava/util/LinkedHashMap$LinkedHashMapEntry;Ljava/util/LinkedHashMap$LinkedHashMapEntry;]Ljava/util/LinkedHashMap$LinkedKeyIterator;Ljava/util/LinkedHashMap$LinkedKeyIterator; HSPLjava/util/LinkedHashMap$LinkedKeySet;-><init>(Ljava/util/LinkedHashMap;)V HSPLjava/util/LinkedHashMap$LinkedKeySet;->contains(Ljava/lang/Object;)Z HSPLjava/util/LinkedHashMap$LinkedKeySet;->iterator()Ljava/util/Iterator; @@ -28346,7 +28376,7 @@ 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;->afterNodeInsertion(Z)V+]Ljava/util/LinkedHashMap;missing_types HSPLjava/util/LinkedHashMap;->afterNodeRemoval(Ljava/util/HashMap$Node;)V HSPLjava/util/LinkedHashMap;->clear()V HSPLjava/util/LinkedHashMap;->eldest()Ljava/util/Map$Entry; @@ -28364,13 +28394,13 @@ HSPLjava/util/LinkedHashMap;->values()Ljava/util/Collection; 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;-><init>(Ljava/util/LinkedList;I)V+]Ljava/util/LinkedList;Ljava/util/LinkedList; +HSPLjava/util/LinkedList$ListItr;->add(Ljava/lang/Object;)V+]Ljava/util/LinkedList;Ljava/util/LinkedList;]Ljava/util/LinkedList$ListItr;Ljava/util/LinkedList$ListItr; 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;->next()Ljava/lang/Object;+]Ljava/util/LinkedList$ListItr;Ljava/util/LinkedList$ListItr; +HSPLjava/util/LinkedList$ListItr;->previous()Ljava/lang/Object;+]Ljava/util/LinkedList$ListItr;Ljava/util/LinkedList$ListItr; 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 @@ -28448,15 +28478,15 @@ HSPLjava/util/Locale;-><init>(Lsun/util/locale/BaseLocale;Lsun/util/locale/Local 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;->convertOldISOCodes(Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String; HSPLjava/util/Locale;->equals(Ljava/lang/Object;)Z+]Lsun/util/locale/BaseLocale;Lsun/util/locale/BaseLocale; -HSPLjava/util/Locale;->forLanguageTag(Ljava/lang/String;)Ljava/util/Locale; +HSPLjava/util/Locale;->forLanguageTag(Ljava/lang/String;)Ljava/util/Locale;+]Lsun/util/locale/InternalLocaleBuilder;Lsun/util/locale/InternalLocaleBuilder;]Ljava/lang/String;Ljava/lang/String;]Lsun/util/locale/BaseLocale;Lsun/util/locale/BaseLocale; 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;->getCompatibilityExtensions(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lsun/util/locale/LocaleExtensions;+]Ljava/lang/String;Ljava/lang/String; HSPLjava/util/Locale;->getCountry()Ljava/lang/String;+]Lsun/util/locale/BaseLocale;Lsun/util/locale/BaseLocale; HSPLjava/util/Locale;->getDefault()Ljava/util/Locale; -HSPLjava/util/Locale;->getDefault(Ljava/util/Locale$Category;)Ljava/util/Locale; +HSPLjava/util/Locale;->getDefault(Ljava/util/Locale$Category;)Ljava/util/Locale;+]Ljava/util/Locale$Category;Ljava/util/Locale$Category; 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; @@ -28465,19 +28495,19 @@ 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;->getInstance(Lsun/util/locale/BaseLocale;Lsun/util/locale/LocaleExtensions;)Ljava/util/Locale;+]Ljava/util/Locale$Cache;Ljava/util/Locale$Cache; HSPLjava/util/Locale;->getLanguage()Ljava/lang/String;+]Lsun/util/locale/BaseLocale;Lsun/util/locale/BaseLocale; HSPLjava/util/Locale;->getScript()Ljava/lang/String; -HSPLjava/util/Locale;->getUnicodeLocaleType(Ljava/lang/String;)Ljava/lang/String; +HSPLjava/util/Locale;->getUnicodeLocaleType(Ljava/lang/String;)Ljava/lang/String;+]Ljava/util/Locale;Ljava/util/Locale; HSPLjava/util/Locale;->getVariant()Ljava/lang/String;+]Lsun/util/locale/BaseLocale;Lsun/util/locale/BaseLocale; HSPLjava/util/Locale;->hasExtensions()Z -HSPLjava/util/Locale;->hashCode()I -HSPLjava/util/Locale;->isUnicodeExtensionKey(Ljava/lang/String;)Z +HSPLjava/util/Locale;->hashCode()I+]Lsun/util/locale/BaseLocale;Lsun/util/locale/BaseLocale; +HSPLjava/util/Locale;->isUnicodeExtensionKey(Ljava/lang/String;)Z+]Ljava/lang/String;Ljava/lang/String; 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;->readObject(Ljava/io/ObjectInputStream;)V+]Ljava/lang/String;Ljava/lang/String;]Ljava/io/ObjectInputStream;Landroid/os/Parcel$2;]Ljava/io/ObjectInputStream$GetField;Ljava/io/ObjectInputStream$GetFieldImpl; +HSPLjava/util/Locale;->readResolve()Ljava/lang/Object;+]Lsun/util/locale/BaseLocale;Lsun/util/locale/BaseLocale; 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;+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lsun/util/locale/LanguageTag;Lsun/util/locale/LanguageTag;]Ljava/util/List;Ljava/util/Collections$EmptyList;]Ljava/util/Iterator;Ljava/util/Collections$EmptyIterator; @@ -28494,7 +28524,7 @@ HSPLjava/util/Objects;->checkFromIndexSize(III)I HSPLjava/util/Objects;->checkIndex(II)I HSPLjava/util/Objects;->equals(Ljava/lang/Object;Ljava/lang/Object;)Z+]Ljava/lang/Object;megamorphic_types HSPLjava/util/Objects;->hash([Ljava/lang/Object;)I -HSPLjava/util/Objects;->hashCode(Ljava/lang/Object;)I +HSPLjava/util/Objects;->hashCode(Ljava/lang/Object;)I+]Ljava/lang/Object;megamorphic_types 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; @@ -28560,7 +28590,7 @@ 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;->getProperty(Ljava/lang/String;)Ljava/lang/String; +HSPLjava/util/Properties;->getProperty(Ljava/lang/String;)Ljava/lang/String;+]Ljava/util/Properties;Ljava/util/Properties; 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 @@ -28572,16 +28602,16 @@ 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;-><init>(J)V+]Ljava/util/Random;missing_types]Ljava/lang/Object;missing_types HSPLjava/util/Random;->initialScramble(J)J -HSPLjava/util/Random;->next(I)I +HSPLjava/util/Random;->next(I)I+]Ljava/util/concurrent/atomic/AtomicLong;Ljava/util/concurrent/atomic/AtomicLong; 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;->nextInt(I)I+]Ljava/util/Random;Ljava/util/Random; HSPLjava/util/Random;->nextLong()J HSPLjava/util/Random;->readObject(Ljava/io/ObjectInputStream;)V HSPLjava/util/Random;->resetSeed(J)V @@ -28599,7 +28629,7 @@ 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;->contains(Ljava/lang/Object;)Z+]Ljava/lang/Object;missing_types]Ljava/lang/Enum;missing_types HSPLjava/util/RegularEnumSet;->containsAll(Ljava/util/Collection;)Z HSPLjava/util/RegularEnumSet;->equals(Ljava/lang/Object;)Z HSPLjava/util/RegularEnumSet;->isEmpty()Z @@ -28694,12 +28724,12 @@ 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;->forEachRemaining(Ljava/util/function/IntConsumer;)V+]Ljava/util/function/IntConsumer;Ljava/util/stream/IntPipeline$4$1; 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;->forEachRemaining(Ljava/util/function/Consumer;)V+]Ljava/util/Iterator;Ljava/util/ArrayDeque$DeqIterator; HSPLjava/util/Spliterators$IteratorSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z HSPLjava/util/Spliterators;->checkFromToBounds(III)V HSPLjava/util/Spliterators;->emptyIntSpliterator()Ljava/util/Spliterator$OfInt; @@ -28714,21 +28744,21 @@ 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;-><init>(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)V+]Ljava/lang/CharSequence;Ljava/lang/String; +HSPLjava/util/StringJoiner;->add(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;+]Ljava/lang/String;Ljava/lang/String; HSPLjava/util/StringJoiner;->compactElts()V HSPLjava/util/StringJoiner;->getChars(Ljava/lang/String;[CI)I -HSPLjava/util/StringJoiner;->toString()Ljava/lang/String; +HSPLjava/util/StringJoiner;->toString()Ljava/lang/String;+]Ljava/lang/String;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;-><init>(Ljava/lang/String;Ljava/lang/String;Z)V+]Ljava/lang/String;Ljava/lang/String; 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/StringTokenizer;->nextToken()Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String; +HSPLjava/util/StringTokenizer;->scanToken(I)I+]Ljava/lang/String;Ljava/lang/String; +HSPLjava/util/StringTokenizer;->setMaxDelimCodePoint()V+]Ljava/lang/String;Ljava/lang/String; +HSPLjava/util/StringTokenizer;->skipDelimiters(I)I+]Ljava/lang/String;Ljava/lang/String; HSPLjava/util/TaskQueue;-><init>()V HSPLjava/util/TaskQueue;->add(Ljava/util/TimerTask;)V HSPLjava/util/TaskQueue;->clear()V @@ -28738,16 +28768,16 @@ 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;-><init>([Ljava/lang/Object;Ljava/util/Comparator;[Ljava/lang/Object;II)V+]Ljava/lang/Class;Ljava/lang/Class;]Ljava/lang/Object;[Ljava/lang/Object; +HSPLjava/util/TimSort;->binarySort([Ljava/lang/Object;IIILjava/util/Comparator;)V+]Ljava/util/Comparator;missing_types +HSPLjava/util/TimSort;->countRunAndMakeAscending([Ljava/lang/Object;IILjava/util/Comparator;)I+]Ljava/util/Comparator;missing_types 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;->mergeHi(IIII)V+]Ljava/util/Comparator;Ljava/lang/reflect/Method$1; HSPLjava/util/TimSort;->mergeLo(IIII)V HSPLjava/util/TimSort;->minRunLength(I)I HSPLjava/util/TimSort;->pushRun(II)V @@ -28790,16 +28820,16 @@ HSPLjava/util/TreeMap$DescendingSubMap;-><init>(Ljava/util/TreeMap;ZLjava/lang/O 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$EntryIterator;->next()Ljava/lang/Object;+]Ljava/util/TreeMap$EntryIterator;Ljava/util/TreeMap$EntryIterator; +HSPLjava/util/TreeMap$EntryIterator;->next()Ljava/util/Map$Entry;+]Ljava/util/TreeMap$EntryIterator;Ljava/util/TreeMap$EntryIterator; 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$KeyIterator;->next()Ljava/lang/Object;+]Ljava/util/TreeMap$KeyIterator;Ljava/util/TreeMap$KeyIterator; 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;->iterator()Ljava/util/Iterator;+]Ljava/util/TreeMap;Ljava/util/TreeMap; 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; @@ -28839,7 +28869,7 @@ 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$ValueIterator;->next()Ljava/lang/Object;+]Ljava/util/TreeMap$ValueIterator;Ljava/util/TreeMap$ValueIterator; HSPLjava/util/TreeMap$Values;-><init>(Ljava/util/TreeMap;)V HSPLjava/util/TreeMap$Values;->iterator()Ljava/util/Iterator; HSPLjava/util/TreeMap$Values;->size()I @@ -28858,7 +28888,7 @@ 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;->containsKey(Ljava/lang/Object;)Z+]Ljava/util/TreeMap;Ljava/util/TreeMap; HSPLjava/util/TreeMap;->deleteEntry(Ljava/util/TreeMap$TreeMapEntry;)V HSPLjava/util/TreeMap;->descendingKeySet()Ljava/util/NavigableSet; HSPLjava/util/TreeMap;->descendingMap()Ljava/util/NavigableMap; @@ -28869,10 +28899,10 @@ 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;->get(Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/util/TreeMap;Ljava/util/TreeMap; 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;->getEntry(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;+]Ljava/lang/Comparable;missing_types]Ljava/util/TreeMap;Ljava/util/TreeMap; +HSPLjava/util/TreeMap;->getEntryUsingComparator(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;+]Ljava/util/Comparator;missing_types 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; @@ -28880,9 +28910,9 @@ 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;->keyIterator()Ljava/util/Iterator;+]Ljava/util/TreeMap;Ljava/util/TreeMap; HSPLjava/util/TreeMap;->keyOrNull(Ljava/util/TreeMap$TreeMapEntry;)Ljava/lang/Object; -HSPLjava/util/TreeMap;->keySet()Ljava/util/Set; +HSPLjava/util/TreeMap;->keySet()Ljava/util/Set;+]Ljava/util/TreeMap;Ljava/util/TreeMap; 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; @@ -28890,9 +28920,9 @@ 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;)Ljava/lang/Object;+]Ljava/util/TreeMap;missing_types]Ljava/lang/Comparable;missing_types]Ljava/util/Comparator;missing_types]Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry; HSPLjava/util/TreeMap;->putAll(Ljava/util/Map;)V -HSPLjava/util/TreeMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; +HSPLjava/util/TreeMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/util/TreeMap;Ljava/util/TreeMap; 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 @@ -28908,25 +28938,25 @@ 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;->add(Ljava/lang/Object;)Z+]Ljava/util/NavigableMap;Ljava/util/TreeMap; 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;->contains(Ljava/lang/Object;)Z+]Ljava/util/NavigableMap;Ljava/util/TreeMap; 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;->isEmpty()Z+]Ljava/util/NavigableMap;Ljava/util/TreeMap; 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;->remove(Ljava/lang/Object;)Z+]Ljava/util/NavigableMap;Ljava/util/TreeMap; 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;->digits(JI)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String; HSPLjava/util/UUID;->equals(Ljava/lang/Object;)Z HSPLjava/util/UUID;->fromString(Ljava/lang/String;)Ljava/util/UUID; HSPLjava/util/UUID;->fromStringJava8(Ljava/lang/String;)Ljava/util/UUID; @@ -28935,7 +28965,7 @@ HSPLjava/util/UUID;->getMostSignificantBits()J HSPLjava/util/UUID;->hashCode()I HSPLjava/util/UUID;->nameUUIDFromBytes([B)Ljava/util/UUID; HSPLjava/util/UUID;->randomUUID()Ljava/util/UUID; -HSPLjava/util/UUID;->toString()Ljava/lang/String; +HSPLjava/util/UUID;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HSPLjava/util/Vector$1;-><init>(Ljava/util/Vector;)V HSPLjava/util/Vector$1;->hasMoreElements()Z HSPLjava/util/Vector$1;->nextElement()Ljava/lang/Object; @@ -28952,10 +28982,10 @@ 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;->elementAt(I)Ljava/lang/Object;+]Ljava/util/Vector;Ljava/util/Stack;,Ljava/util/Vector; 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;->get(I)Ljava/lang/Object;+]Ljava/util/Vector;Ljava/util/Stack; HSPLjava/util/Vector;->indexOf(Ljava/lang/Object;)I HSPLjava/util/Vector;->indexOf(Ljava/lang/Object;I)I HSPLjava/util/Vector;->isEmpty()Z @@ -28968,7 +28998,7 @@ 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;->getKey()Ljava/lang/Object;+]Ljava/util/WeakHashMap$Entry;Ljava/util/WeakHashMap$Entry; 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; @@ -28976,11 +29006,11 @@ 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;->hasNext()Z+]Ljava/util/WeakHashMap$Entry;Ljava/util/WeakHashMap$Entry; 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$KeyIterator;->next()Ljava/lang/Object;+]Ljava/util/WeakHashMap$KeyIterator;Ljava/util/WeakHashMap$KeyIterator;]Ljava/util/WeakHashMap$Entry;Ljava/util/WeakHashMap$Entry; 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; @@ -28995,19 +29025,19 @@ 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;->expungeStaleEntries()V+]Ljava/lang/ref/ReferenceQueue;Ljava/lang/ref/ReferenceQueue; +HSPLjava/util/WeakHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/util/WeakHashMap;Ljava/util/WeakHashMap; 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;->hash(Ljava/lang/Object;)I+]Ljava/lang/Object;missing_types 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;->matchesKey(Ljava/util/WeakHashMap$Entry;Ljava/lang/Object;)Z+]Ljava/util/WeakHashMap$Entry;Ljava/util/WeakHashMap$Entry; 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;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/util/WeakHashMap;Ljava/util/WeakHashMap; +HSPLjava/util/WeakHashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/util/WeakHashMap;Ljava/util/WeakHashMap; HSPLjava/util/WeakHashMap;->resize(I)V HSPLjava/util/WeakHashMap;->size()I HSPLjava/util/WeakHashMap;->transfer([Ljava/util/WeakHashMap$Entry;[Ljava/util/WeakHashMap$Entry;)V @@ -29104,14 +29134,14 @@ 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+]Ljdk/internal/misc/Unsafe;Ljdk/internal/misc/Unsafe;]Ljava/util/concurrent/ConcurrentHashMap;Ljava/util/concurrent/ConcurrentHashMap; -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;->casTabAt([Ljava/util/concurrent/ConcurrentHashMap$Node;ILjava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$Node;)Z+]Ljdk/internal/misc/Unsafe;Ljdk/internal/misc/Unsafe; 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;->get(Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/lang/Object;megamorphic_types 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; @@ -29125,15 +29155,15 @@ HSPLjava/util/concurrent/ConcurrentHashMap;->putVal(Ljava/lang/Object;Ljava/lang 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;+]Ljava/lang/Object;Landroid/icu/impl/locale/BaseLocale$Key; +HSPLjava/util/concurrent/ConcurrentHashMap;->replaceNode(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/lang/Object;Lsun/nio/ch/FileKey;,Landroid/icu/impl/locale/BaseLocale$Key; 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;->tabAt([Ljava/util/concurrent/ConcurrentHashMap$Node;I)Ljava/util/concurrent/ConcurrentHashMap$Node;+]Ljdk/internal/misc/Unsafe;Ljdk/internal/misc/Unsafe; 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;->transfer([Ljava/util/concurrent/ConcurrentHashMap$Node;[Ljava/util/concurrent/ConcurrentHashMap$Node;)V+]Ljdk/internal/misc/Unsafe;Ljdk/internal/misc/Unsafe; 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; @@ -29158,29 +29188,29 @@ HSPLjava/util/concurrent/ConcurrentLinkedDeque;->unlinkLast(Ljava/util/concurren 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;-><init>(Ljava/util/concurrent/ConcurrentLinkedQueue;)V+]Ljava/util/concurrent/ConcurrentLinkedQueue;Ljava/util/concurrent/ConcurrentLinkedQueue; HSPLjava/util/concurrent/ConcurrentLinkedQueue$Itr;->hasNext()Z -HSPLjava/util/concurrent/ConcurrentLinkedQueue$Itr;->next()Ljava/lang/Object; +HSPLjava/util/concurrent/ConcurrentLinkedQueue$Itr;->next()Ljava/lang/Object;+]Ljava/util/concurrent/ConcurrentLinkedQueue;Ljava/util/concurrent/ConcurrentLinkedQueue; 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;->add(Ljava/lang/Object;)Z+]Ljava/util/concurrent/ConcurrentLinkedQueue;Ljava/util/concurrent/ConcurrentLinkedQueue; 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;->first()Ljava/util/concurrent/ConcurrentLinkedQueue$Node;+]Ljava/util/concurrent/ConcurrentLinkedQueue;Ljava/util/concurrent/ConcurrentLinkedQueue; +HSPLjava/util/concurrent/ConcurrentLinkedQueue;->isEmpty()Z+]Ljava/util/concurrent/ConcurrentLinkedQueue;Ljava/util/concurrent/ConcurrentLinkedQueue; 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;->poll()Ljava/lang/Object;+]Ljava/util/concurrent/ConcurrentLinkedQueue;Ljava/util/concurrent/ConcurrentLinkedQueue;]Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node; 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;->toArrayInternal([Ljava/lang/Object;)[Ljava/lang/Object;+]Ljava/util/concurrent/ConcurrentLinkedQueue;Ljava/util/concurrent/ConcurrentLinkedQueue; 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 @@ -29206,8 +29236,8 @@ HSPLjava/util/concurrent/CopyOnWriteArrayList$$ExternalSyntheticLambda2;-><init> 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$COWIterator;->next()Ljava/lang/Object;+]Ljava/util/concurrent/CopyOnWriteArrayList$COWIterator;Ljava/util/concurrent/CopyOnWriteArrayList$COWIterator; +HSPLjava/util/concurrent/CopyOnWriteArrayList;-><init>()V+]Ljava/util/concurrent/CopyOnWriteArrayList;Ljava/util/concurrent/CopyOnWriteArrayList; 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 @@ -29250,9 +29280,9 @@ 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$Sync;->tryReleaseShared(I)Z+]Ljava/util/concurrent/CountDownLatch$Sync;Ljava/util/concurrent/CountDownLatch$Sync; HSPLjava/util/concurrent/CountDownLatch;-><init>(I)V -HSPLjava/util/concurrent/CountDownLatch;->await()V +HSPLjava/util/concurrent/CountDownLatch;->await()V+]Ljava/util/concurrent/CountDownLatch$Sync;Ljava/util/concurrent/CountDownLatch$Sync; HSPLjava/util/concurrent/CountDownLatch;->await(JLjava/util/concurrent/TimeUnit;)Z HSPLjava/util/concurrent/CountDownLatch;->countDown()V HSPLjava/util/concurrent/CountDownLatch;->getCount()J @@ -29303,7 +29333,7 @@ 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;->finishCompletion()V+]Ljava/util/concurrent/FutureTask;missing_types 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 @@ -29311,7 +29341,7 @@ 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;->run()V+]Ljava/util/concurrent/Callable;missing_types]Ljava/util/concurrent/FutureTask;missing_types HSPLjava/util/concurrent/FutureTask;->runAndReset()Z HSPLjava/util/concurrent/FutureTask;->set(Ljava/lang/Object;)V HSPLjava/util/concurrent/FutureTask;->setException(Ljava/lang/Throwable;)V @@ -29346,14 +29376,14 @@ 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;->offer(Ljava/lang/Object;)Z+]Ljava/util/concurrent/locks/ReentrantLock;Ljava/util/concurrent/locks/ReentrantLock;]Ljava/util/concurrent/locks/Condition;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;]Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicInteger; +HSPLjava/util/concurrent/LinkedBlockingQueue;->poll()Ljava/lang/Object;+]Ljava/util/concurrent/locks/ReentrantLock;Ljava/util/concurrent/locks/ReentrantLock;]Ljava/util/concurrent/locks/Condition;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;]Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicInteger; +HSPLjava/util/concurrent/LinkedBlockingQueue;->poll(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;+]Ljava/util/concurrent/locks/ReentrantLock;Ljava/util/concurrent/locks/ReentrantLock;]Ljava/util/concurrent/locks/Condition;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;]Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicInteger;]Ljava/util/concurrent/TimeUnit;Ljava/util/concurrent/TimeUnit; +HSPLjava/util/concurrent/LinkedBlockingQueue;->put(Ljava/lang/Object;)V+]Ljava/util/concurrent/locks/ReentrantLock;Ljava/util/concurrent/locks/ReentrantLock;]Ljava/util/concurrent/locks/Condition;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;]Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicInteger; +HSPLjava/util/concurrent/LinkedBlockingQueue;->signalNotEmpty()V+]Ljava/util/concurrent/locks/ReentrantLock;Ljava/util/concurrent/locks/ReentrantLock;]Ljava/util/concurrent/locks/Condition;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject; HSPLjava/util/concurrent/LinkedBlockingQueue;->signalNotFull()V -HSPLjava/util/concurrent/LinkedBlockingQueue;->size()I -HSPLjava/util/concurrent/LinkedBlockingQueue;->take()Ljava/lang/Object; +HSPLjava/util/concurrent/LinkedBlockingQueue;->size()I+]Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicInteger; +HSPLjava/util/concurrent/LinkedBlockingQueue;->take()Ljava/lang/Object;+]Ljava/util/concurrent/locks/ReentrantLock;Ljava/util/concurrent/locks/ReentrantLock;]Ljava/util/concurrent/locks/Condition;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;]Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicInteger; HSPLjava/util/concurrent/PriorityBlockingQueue;-><init>()V HSPLjava/util/concurrent/PriorityBlockingQueue;-><init>(ILjava/util/Comparator;)V HSPLjava/util/concurrent/PriorityBlockingQueue;->add(Ljava/lang/Object;)Z @@ -29378,49 +29408,49 @@ HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue$Itr;->next 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;->add(Ljava/lang/Object;)Z+]Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue; +HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->add(Ljava/lang/Runnable;)Z+]Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue; 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;->iterator()Ljava/util/Iterator;+]Ljava/util/concurrent/locks/ReentrantLock;Ljava/util/concurrent/locks/ReentrantLock; +HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->offer(Ljava/lang/Runnable;)Z+]Ljava/util/concurrent/locks/ReentrantLock;Ljava/util/concurrent/locks/ReentrantLock;]Ljava/util/concurrent/locks/Condition;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject; 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;->remove(Ljava/lang/Object;)Z+]Ljava/util/concurrent/locks/ReentrantLock;Ljava/util/concurrent/locks/ReentrantLock; 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;->siftDown(ILjava/util/concurrent/RunnableScheduledFuture;)V+]Ljava/util/concurrent/RunnableScheduledFuture;Ljava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask; +HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->siftUp(ILjava/util/concurrent/RunnableScheduledFuture;)V+]Ljava/util/concurrent/RunnableScheduledFuture;Ljava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask; 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;->take()Ljava/lang/Object;+]Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue; +HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->take()Ljava/util/concurrent/RunnableScheduledFuture;+]Ljava/util/concurrent/locks/ReentrantLock;Ljava/util/concurrent/locks/ReentrantLock;]Ljava/util/concurrent/RunnableScheduledFuture;Ljava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;]Ljava/util/concurrent/locks/Condition;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject; 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;->cancel(Z)Z+]Ljava/util/concurrent/ScheduledThreadPoolExecutor;missing_types +HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;->compareTo(Ljava/lang/Object;)I+]Ljava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;Ljava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask; 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;->getDelay(Ljava/util/concurrent/TimeUnit;)J+]Ljava/util/concurrent/TimeUnit;Ljava/util/concurrent/TimeUnit; HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;->isPeriodic()Z -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;->run()V +HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;->run()V+]Ljava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;Ljava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;]Ljava/util/concurrent/ScheduledThreadPoolExecutor;missing_types 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;->canRunInCurrentRunState(Ljava/util/concurrent/RunnableScheduledFuture;)Z+]Ljava/util/concurrent/ScheduledThreadPoolExecutor;missing_types 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;->delayedExecute(Ljava/util/concurrent/RunnableScheduledFuture;)V+]Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;]Ljava/util/concurrent/ScheduledThreadPoolExecutor;missing_types +HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->execute(Ljava/lang/Runnable;)V+]Ljava/util/concurrent/ScheduledThreadPoolExecutor;missing_types 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/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;+]Ljava/util/concurrent/ScheduledThreadPoolExecutor;missing_types]Ljava/util/concurrent/atomic/AtomicLong;Ljava/util/concurrent/atomic/AtomicLong; 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; @@ -29430,14 +29460,14 @@ HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->shutdownNow()Ljava/util/L 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/ScheduledThreadPoolExecutor;->triggerTime(JLjava/util/concurrent/TimeUnit;)J+]Ljava/util/concurrent/ScheduledThreadPoolExecutor;missing_types]Ljava/util/concurrent/TimeUnit;Ljava/util/concurrent/TimeUnit; 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$NonfairSync;->tryAcquireShared(I)I+]Ljava/util/concurrent/Semaphore$NonfairSync;Ljava/util/concurrent/Semaphore$NonfairSync; 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;->nonfairTryAcquireShared(I)I+]Ljava/util/concurrent/Semaphore$Sync;Ljava/util/concurrent/Semaphore$NonfairSync; HSPLjava/util/concurrent/Semaphore$Sync;->tryReleaseShared(I)Z HSPLjava/util/concurrent/Semaphore;-><init>(I)V HSPLjava/util/concurrent/Semaphore;-><init>(IZ)V @@ -29454,20 +29484,20 @@ 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;->isReleasable()Z+]Ljava/lang/Thread;Ljava/lang/Thread; 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$TransferStack;->transfer(Ljava/lang/Object;ZJ)Ljava/lang/Object;+]Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;]Ljava/lang/Thread;missing_types]Ljava/util/concurrent/SynchronousQueue$TransferStack;Ljava/util/concurrent/SynchronousQueue$TransferStack; 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;->offer(Ljava/lang/Object;)Z+]Ljava/util/concurrent/SynchronousQueue$Transferer;Ljava/util/concurrent/SynchronousQueue$TransferStack; +HSPLjava/util/concurrent/SynchronousQueue;->poll(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;+]Ljava/util/concurrent/SynchronousQueue$Transferer;Ljava/util/concurrent/SynchronousQueue$TransferStack;]Ljava/util/concurrent/TimeUnit;Ljava/util/concurrent/TimeUnit; HSPLjava/util/concurrent/SynchronousQueue;->size()I HSPLjava/util/concurrent/SynchronousQueue;->take()Ljava/lang/Object; HSPLjava/util/concurrent/ThreadLocalRandom;-><clinit>()V @@ -29486,17 +29516,17 @@ HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;-><init>(Ljava/util/concurren 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;->lock()V+]Ljava/util/concurrent/ThreadPoolExecutor$Worker;Ljava/util/concurrent/ThreadPoolExecutor$Worker; HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;->run()V -HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;->tryAcquire(I)Z +HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;->tryAcquire(I)Z+]Ljava/util/concurrent/ThreadPoolExecutor$Worker;Ljava/util/concurrent/ThreadPoolExecutor$Worker; 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$Worker;->tryRelease(I)Z+]Ljava/util/concurrent/ThreadPoolExecutor$Worker;Ljava/util/concurrent/ThreadPoolExecutor$Worker; +HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;->unlock()V+]Ljava/util/concurrent/ThreadPoolExecutor$Worker;Ljava/util/concurrent/ThreadPoolExecutor$Worker; 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;->addWorker(Ljava/lang/Runnable;Z)Z+]Ljava/lang/Thread;missing_types]Ljava/util/concurrent/locks/ReentrantLock;Ljava/util/concurrent/locks/ReentrantLock;]Ljava/util/HashSet;Ljava/util/HashSet;]Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicInteger; 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 @@ -29508,31 +29538,31 @@ 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;->ensurePrestart()V+]Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicInteger; +HSPLjava/util/concurrent/ThreadPoolExecutor;->execute(Ljava/lang/Runnable;)V+]Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/SynchronousQueue;,Ljava/util/concurrent/LinkedBlockingQueue;,Ljava/util/concurrent/PriorityBlockingQueue;]Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicInteger; 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;->getTask()Ljava/lang/Runnable;+]Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;,Ljava/util/concurrent/SynchronousQueue;,Ljava/util/concurrent/LinkedBlockingQueue;,Ljava/util/concurrent/PriorityBlockingQueue;]Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicInteger; 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;->isShutdown()Z+]Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicInteger; 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;->processWorkerExit(Ljava/util/concurrent/ThreadPoolExecutor$Worker;Z)V+]Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/SynchronousQueue;,Ljava/util/concurrent/LinkedBlockingQueue;]Ljava/util/concurrent/locks/ReentrantLock;Ljava/util/concurrent/locks/ReentrantLock;]Ljava/util/HashSet;Ljava/util/HashSet;]Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicInteger; +HSPLjava/util/concurrent/ThreadPoolExecutor;->purge()V+]Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;]Ljava/util/concurrent/ThreadPoolExecutor;Ljava/util/concurrent/ScheduledThreadPoolExecutor;]Ljava/util/Iterator;Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue$Itr; 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;->runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V+]Ljava/util/concurrent/ThreadPoolExecutor;missing_types]Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicInteger;]Ljava/util/concurrent/ThreadPoolExecutor$Worker;Ljava/util/concurrent/ThreadPoolExecutor$Worker;]Ljava/lang/Runnable;missing_types HSPLjava/util/concurrent/ThreadPoolExecutor;->setCorePoolSize(I)V HSPLjava/util/concurrent/ThreadPoolExecutor;->setKeepAliveTime(JLjava/util/concurrent/TimeUnit;)V HSPLjava/util/concurrent/ThreadPoolExecutor;->setMaximumPoolSize(I)V @@ -29542,9 +29572,9 @@ 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;->tryTerminate()V+]Ljava/util/concurrent/ThreadPoolExecutor;Ljava/util/concurrent/ScheduledThreadPoolExecutor;]Ljava/util/concurrent/locks/ReentrantLock;Ljava/util/concurrent/locks/ReentrantLock;]Ljava/util/concurrent/locks/Condition;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;]Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicInteger; HSPLjava/util/concurrent/ThreadPoolExecutor;->workerCountOf(I)I -HSPLjava/util/concurrent/TimeUnit;->convert(JLjava/util/concurrent/TimeUnit;)J +HSPLjava/util/concurrent/TimeUnit;->convert(JLjava/util/concurrent/TimeUnit;)J+]Ljava/util/concurrent/TimeUnit;Ljava/util/concurrent/TimeUnit; HSPLjava/util/concurrent/TimeUnit;->cvt(JJJ)J HSPLjava/util/concurrent/TimeUnit;->sleep(J)V HSPLjava/util/concurrent/TimeUnit;->toDays(J)J @@ -29581,8 +29611,8 @@ 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;->accessCheck(Ljava/lang/Object;)V+]Ljava/lang/Class;Ljava/lang/Class; +HSPLjava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;->compareAndSet(Ljava/lang/Object;II)Z+]Ljdk/internal/misc/Unsafe;Ljdk/internal/misc/Unsafe; 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 @@ -29632,12 +29662,12 @@ 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;->accessCheck(Ljava/lang/Object;)V+]Ljava/lang/Class;Ljava/lang/Class; +HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z+]Ljdk/internal/misc/Unsafe;Ljdk/internal/misc/Unsafe; +HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->get(Ljava/lang/Object;)Ljava/lang/Object;+]Ljdk/internal/misc/Unsafe;Ljdk/internal/misc/Unsafe; 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$AtomicReferenceFieldUpdaterImpl;->lazySet(Ljava/lang/Object;Ljava/lang/Object;)V+]Ljdk/internal/misc/Unsafe;Ljdk/internal/misc/Unsafe; +HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->valueCheck(Ljava/lang/Object;)V+]Ljava/lang/Class;Ljava/lang/Class; 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 @@ -29653,38 +29683,38 @@ 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$ConditionNode;->block()Z+]Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode; +HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;->isReleasable()Z+]Ljava/lang/Thread;missing_types 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;->await()V+]Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;]Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;Ljava/util/concurrent/locks/ReentrantLock$NonfairSync; +HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->awaitNanos(J)J+]Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;]Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;Ljava/util/concurrent/locks/ReentrantLock$NonfairSync; +HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->canReacquire(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;)Z+]Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;Ljava/util/concurrent/locks/ReentrantLock$NonfairSync; +HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->doSignal(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;Z)V+]Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;]Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;Ljava/util/concurrent/locks/ReentrantLock$NonfairSync; +HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->enableWait(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;)I+]Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;]Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;Ljava/util/concurrent/locks/ReentrantLock$NonfairSync; 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;->signal()V+]Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;Ljava/util/concurrent/locks/ReentrantLock$NonfairSync; +HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->signalAll()V+]Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;Ljava/util/concurrent/locks/ReentrantLock$NonfairSync; 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$Node;->clearStatus()V+]Ljdk/internal/misc/Unsafe;Ljdk/internal/misc/Unsafe; +HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->getAndUnsetStatus(I)I+]Ljdk/internal/misc/Unsafe;Ljdk/internal/misc/Unsafe; +HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->setPrevRelaxed(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V+]Ljdk/internal/misc/Unsafe;Ljdk/internal/misc/Unsafe; +HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->setStatusRelaxed(I)V+]Ljdk/internal/misc/Unsafe;Ljdk/internal/misc/Unsafe; 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;->acquire(I)V+]Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;Ljava/util/concurrent/locks/ReentrantLock$NonfairSync;,Ljava/util/concurrent/ThreadPoolExecutor$Worker;,Ljava/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync; +HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->acquire(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;IZZZJ)I+]Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ExclusiveNode;,Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;,Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$SharedNode;]Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;Ljava/util/concurrent/CountDownLatch$Sync;,Ljava/util/concurrent/Semaphore$FairSync;,Ljava/util/concurrent/locks/ReentrantLock$NonfairSync;,Ljava/util/concurrent/Semaphore$NonfairSync;,Ljava/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync;]Ljava/lang/Thread;Ljava/lang/Thread; HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->acquireInterruptibly(I)V -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->acquireShared(I)V +HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->acquireShared(I)V+]Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;Ljava/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync; 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;->casTail(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z+]Ljdk/internal/misc/Unsafe;Ljdk/internal/misc/Unsafe; 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;->compareAndSetState(II)Z+]Ljdk/internal/misc/Unsafe;Ljdk/internal/misc/Unsafe; +HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->enqueue(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V+]Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode; HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->getFirstQueuedThread()Ljava/lang/Thread; HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->getState()I HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->hasQueuedPredecessors()Z @@ -29692,10 +29722,10 @@ 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;->release(I)Z+]Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;megamorphic_types +HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->releaseShared(I)Z+]Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;Ljava/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync;,Ljava/util/concurrent/CountDownLatch$Sync;,Ljava/util/concurrent/locks/ReentrantReadWriteLock$FairSync; 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;->signalNext(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V+]Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ExclusiveNode;,Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;,Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$SharedNode; 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 @@ -29703,42 +29733,42 @@ 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/LockSupport;->parkNanos(Ljava/lang/Object;J)V+]Ljdk/internal/misc/Unsafe;Ljdk/internal/misc/Unsafe; +HSPLjava/util/concurrent/locks/LockSupport;->setBlocker(Ljava/lang/Thread;Ljava/lang/Object;)V+]Ljdk/internal/misc/Unsafe;Ljdk/internal/misc/Unsafe; +HSPLjava/util/concurrent/locks/LockSupport;->setCurrentBlocker(Ljava/lang/Object;)V+]Ljdk/internal/misc/Unsafe;Ljdk/internal/misc/Unsafe; +HSPLjava/util/concurrent/locks/LockSupport;->unpark(Ljava/lang/Thread;)V+]Ljdk/internal/misc/Unsafe;Ljdk/internal/misc/Unsafe; HSPLjava/util/concurrent/locks/ReentrantLock$FairSync;-><init>()V -HSPLjava/util/concurrent/locks/ReentrantLock$FairSync;->initialTryLock()Z +HSPLjava/util/concurrent/locks/ReentrantLock$FairSync;->initialTryLock()Z+]Ljava/util/concurrent/locks/ReentrantLock$FairSync;Ljava/util/concurrent/locks/ReentrantLock$FairSync; 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$NonfairSync;->initialTryLock()Z+]Ljava/util/concurrent/locks/ReentrantLock$NonfairSync;Ljava/util/concurrent/locks/ReentrantLock$NonfairSync; +HSPLjava/util/concurrent/locks/ReentrantLock$NonfairSync;->tryAcquire(I)Z+]Ljava/util/concurrent/locks/ReentrantLock$NonfairSync;Ljava/util/concurrent/locks/ReentrantLock$NonfairSync; 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;->isHeldExclusively()Z+]Ljava/util/concurrent/locks/ReentrantLock$Sync;Ljava/util/concurrent/locks/ReentrantLock$NonfairSync;,Ljava/util/concurrent/locks/ReentrantLock$FairSync; +HSPLjava/util/concurrent/locks/ReentrantLock$Sync;->lock()V+]Ljava/util/concurrent/locks/ReentrantLock$Sync;Ljava/util/concurrent/locks/ReentrantLock$NonfairSync;,Ljava/util/concurrent/locks/ReentrantLock$FairSync; +HSPLjava/util/concurrent/locks/ReentrantLock$Sync;->lockInterruptibly()V+]Ljava/util/concurrent/locks/ReentrantLock$Sync;Ljava/util/concurrent/locks/ReentrantLock$NonfairSync; 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$Sync;->tryLock()Z+]Ljava/util/concurrent/locks/ReentrantLock$Sync;Ljava/util/concurrent/locks/ReentrantLock$NonfairSync; +HSPLjava/util/concurrent/locks/ReentrantLock$Sync;->tryRelease(I)Z+]Ljava/util/concurrent/locks/ReentrantLock$Sync;Ljava/util/concurrent/locks/ReentrantLock$NonfairSync;,Ljava/util/concurrent/locks/ReentrantLock$FairSync; 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;->isHeldByCurrentThread()Z+]Ljava/util/concurrent/locks/ReentrantLock$Sync;Ljava/util/concurrent/locks/ReentrantLock$NonfairSync; +HSPLjava/util/concurrent/locks/ReentrantLock;->lock()V+]Ljava/util/concurrent/locks/ReentrantLock$Sync;Ljava/util/concurrent/locks/ReentrantLock$NonfairSync;,Ljava/util/concurrent/locks/ReentrantLock$FairSync; +HSPLjava/util/concurrent/locks/ReentrantLock;->lockInterruptibly()V+]Ljava/util/concurrent/locks/ReentrantLock$Sync;Ljava/util/concurrent/locks/ReentrantLock$NonfairSync; 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/ReentrantLock;->unlock()V+]Ljava/util/concurrent/locks/ReentrantLock$Sync;Ljava/util/concurrent/locks/ReentrantLock$NonfairSync;,Ljava/util/concurrent/locks/ReentrantLock$FairSync; 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;->readerShouldBlock()Z+]Ljava/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync;Ljava/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync; 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$ReadLock;->lock()V+]Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;Ljava/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync; +HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;->unlock()V+]Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;Ljava/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync;,Ljava/util/concurrent/locks/ReentrantReadWriteLock$FairSync; 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; @@ -29751,16 +29781,16 @@ 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;->tryAcquireShared(I)I+]Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;Ljava/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync;,Ljava/util/concurrent/locks/ReentrantReadWriteLock$FairSync; HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->tryRelease(I)Z -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->tryReleaseShared(I)Z +HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->tryReleaseShared(I)Z+]Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;Ljava/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync;,Ljava/util/concurrent/locks/ReentrantReadWriteLock$FairSync; 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/Lock;+]Ljava/util/concurrent/locks/ReentrantReadWriteLock;Ljava/util/concurrent/locks/ReentrantReadWriteLock; 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; @@ -29786,7 +29816,7 @@ HSPLjava/util/jar/Attributes;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/la 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+]Ljava/util/jar/Attributes;Ljava/util/jar/Attributes;]Ljava/util/jar/Manifest$FastInputStream;Ljava/util/jar/Manifest$FastInputStream; -HSPLjava/util/jar/Attributes;->size()I +HSPLjava/util/jar/Attributes;->size()I+]Ljava/util/Map;Ljava/util/LinkedHashMap; HSPLjava/util/jar/JarEntry;-><init>(Ljava/util/zip/ZipEntry;)V HSPLjava/util/jar/JarFile$JarFileEntry;-><init>(Ljava/util/jar/JarFile;Ljava/util/zip/ZipEntry;)V HSPLjava/util/jar/JarFile;-><init>(Ljava/io/File;ZI)V @@ -29817,11 +29847,11 @@ 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([B)I+]Ljava/util/jar/Manifest$FastInputStream;Ljava/util/jar/Manifest$FastInputStream; 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;->getAttributes(Ljava/lang/String;)Ljava/util/jar/Attributes;+]Ljava/util/jar/Manifest;Ljava/util/jar/Manifest;]Ljava/util/Map;Ljava/util/HashMap; 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; @@ -29845,7 +29875,7 @@ 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;->publish(Ljava/util/logging/LogRecord;)V+]Ljava/util/logging/FileHandler;Ljava/util/logging/FileHandler; HSPLjava/util/logging/FileHandler;->rotate()V HSPLjava/util/logging/Formatter;-><init>()V HSPLjava/util/logging/Formatter;->getHead(Ljava/util/logging/Handler;)Ljava/lang/String; @@ -29856,7 +29886,7 @@ 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;->isLoggable(Ljava/util/logging/LogRecord;)Z+]Ljava/util/logging/Handler;Ljava/util/logging/FileHandler;]Ljava/util/logging/Level;Ljava/util/logging/Level;]Ljava/util/logging/LogRecord;Ljava/util/logging/LogRecord; 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 @@ -29923,7 +29953,7 @@ HSPLjava/util/logging/LogManager;->loadLoggerHandlers(Ljava/util/logging/Logger; 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;-><init>(Ljava/util/logging/Level;Ljava/lang/String;)V+]Ljava/lang/Object;Ljava/util/logging/Level;]Ljava/util/concurrent/atomic/AtomicLong;Ljava/util/concurrent/atomic/AtomicLong; HSPLjava/util/logging/LogRecord;->defaultThreadID()I HSPLjava/util/logging/LogRecord;->getLevel()Ljava/util/logging/Level; HSPLjava/util/logging/LogRecord;->getLoggerName()Ljava/lang/String; @@ -29944,12 +29974,12 @@ HSPLjava/util/logging/Logger;->accessCheckedHandlers()[Ljava/util/logging/Handle 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;->doLog(Ljava/util/logging/LogRecord;)V+]Ljava/util/logging/LogRecord;Ljava/util/logging/LogRecord;]Ljava/util/logging/Logger;Ljava/util/logging/Logger; 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;->getEffectiveLoggerBundle()Ljava/util/logging/Logger$LoggerBundle;+]Ljava/util/logging/Logger$LoggerBundle;Ljava/util/logging/Logger$LoggerBundle;]Ljava/util/logging/Logger;Ljava/util/logging/LogManager$RootLogger;,Ljava/util/logging/Logger; 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; @@ -29959,9 +29989,9 @@ 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;->isLoggable(Ljava/util/logging/Level;)Z+]Ljava/util/logging/Level;Ljava/util/logging/Level; 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;->log(Ljava/util/logging/LogRecord;)V+]Ljava/util/logging/Handler;Ljava/util/logging/FileHandler;]Ljava/util/logging/LogRecord;Ljava/util/logging/LogRecord;]Ljava/util/logging/Logger;Ljava/util/logging/Logger; 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 @@ -29984,15 +30014,15 @@ 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;->publish(Ljava/util/logging/LogRecord;)V+]Ljava/io/Writer;Ljava/io/OutputStreamWriter;]Ljava/util/logging/StreamHandler;Ljava/util/logging/FileHandler; 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;-><init>(Ljava/util/regex/Pattern;Ljava/lang/CharSequence;)V+]Ljava/util/regex/Matcher;Ljava/util/regex/Matcher; 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;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/util/regex/Matcher;Ljava/util/regex/Matcher; -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;->appendExpandedReplacement(Ljava/lang/String;Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/util/regex/Matcher;Ljava/util/regex/Matcher;]Ljava/lang/String;Ljava/lang/String; +HSPLjava/util/regex/Matcher;->appendReplacement(Ljava/lang/StringBuffer;Ljava/lang/String;)Ljava/util/regex/Matcher;+]Ljava/lang/StringBuffer;Ljava/lang/StringBuffer;]Ljava/util/regex/Matcher;Ljava/util/regex/Matcher; +HSPLjava/util/regex/Matcher;->appendReplacement(Ljava/lang/StringBuilder;Ljava/lang/String;)Ljava/util/regex/Matcher;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/util/regex/Matcher;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; @@ -30000,27 +30030,27 @@ 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+]Lcom/android/icu/util/regex/MatcherNative;Lcom/android/icu/util/regex/MatcherNative; -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;->find(I)Z+]Lcom/android/icu/util/regex/MatcherNative;Lcom/android/icu/util/regex/MatcherNative;]Ljava/util/regex/Matcher;Ljava/util/regex/Matcher; +HSPLjava/util/regex/Matcher;->getSubSequence(II)Ljava/lang/CharSequence;+]Ljava/lang/String;Ljava/lang/String; +HSPLjava/util/regex/Matcher;->getTextLength()I+]Ljava/lang/String;Ljava/lang/String; HSPLjava/util/regex/Matcher;->group()Ljava/lang/String; -HSPLjava/util/regex/Matcher;->group(I)Ljava/lang/String; +HSPLjava/util/regex/Matcher;->group(I)Ljava/lang/String;+]Ljava/lang/CharSequence;Ljava/lang/String;]Ljava/util/regex/Matcher;Ljava/util/regex/Matcher; HSPLjava/util/regex/Matcher;->groupCount()I+]Lcom/android/icu/util/regex/MatcherNative;Lcom/android/icu/util/regex/MatcherNative; HSPLjava/util/regex/Matcher;->hitEnd()Z -HSPLjava/util/regex/Matcher;->lookingAt()Z -HSPLjava/util/regex/Matcher;->matches()Z +HSPLjava/util/regex/Matcher;->lookingAt()Z+]Lcom/android/icu/util/regex/MatcherNative;Lcom/android/icu/util/regex/MatcherNative; +HSPLjava/util/regex/Matcher;->matches()Z+]Lcom/android/icu/util/regex/MatcherNative;Lcom/android/icu/util/regex/MatcherNative; 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;+]Ljava/lang/CharSequence;Ljava/lang/String; +HSPLjava/util/regex/Matcher;->reset()Ljava/util/regex/Matcher;+]Ljava/lang/CharSequence;Ljava/lang/String; +HSPLjava/util/regex/Matcher;->reset(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;+]Ljava/lang/CharSequence;Ljava/lang/String;,Ljava/lang/StringBuilder;,Landroid/text/SpannableStringBuilder;,Ljava/nio/HeapCharBuffer;,Landroid/text/SpannableString; +HSPLjava/util/regex/Matcher;->reset(Ljava/lang/CharSequence;II)Ljava/util/regex/Matcher;+]Ljava/lang/CharSequence;Ljava/lang/String;,Ljava/lang/StringBuilder;,Ljava/nio/HeapCharBuffer;,Landroid/text/SpannableStringBuilder;,Landroid/text/SpannableString; HSPLjava/util/regex/Matcher;->resetForInput()V+]Lcom/android/icu/util/regex/MatcherNative;Lcom/android/icu/util/regex/MatcherNative; 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;->usePattern(Ljava/util/regex/Pattern;)Ljava/util/regex/Matcher;+]Ljava/util/regex/Matcher;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 @@ -30032,25 +30062,25 @@ HSPLjava/util/regex/Pattern;->matches(Ljava/lang/String;Ljava/lang/CharSequence; 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;->split(Ljava/lang/CharSequence;I)[Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Ljava/util/List;Ljava/util/ArrayList$SubList;]Ljava/lang/CharSequence;Ljava/lang/String;]Ljava/util/regex/Pattern;Ljava/util/regex/Pattern;]Ljava/util/regex/Matcher;Ljava/util/regex/Matcher;]Ljava/util/ArrayList;Ljava/util/ArrayList; 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+]Ljava/util/stream/AbstractPipeline;Ljava/util/stream/IntPipeline$4;,Ljava/util/stream/ReferencePipeline$4; HSPLjava/util/stream/AbstractPipeline;->close()V HSPLjava/util/stream/AbstractPipeline;->copyInto(Ljava/util/stream/Sink;Ljava/util/Spliterator;)V+]Ljava/util/Spliterator;Ljava/util/Spliterators$IntArraySpliterator;,Ljava/util/HashMap$KeySpliterator;]Ljava/util/stream/AbstractPipeline;Ljava/util/stream/IntPipeline$4;,Ljava/util/stream/ReferencePipeline$4;]Ljava/util/stream/Sink;Ljava/util/stream/ReferencePipeline$4$1;,Ljava/util/stream/IntPipeline$4$1;]Ljava/util/stream/StreamOpFlag;Ljava/util/stream/StreamOpFlag; -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;->evaluate(Ljava/util/Spliterator;ZLjava/util/function/IntFunction;)Ljava/util/stream/Node;+]Ljava/util/stream/Node$Builder;Ljava/util/stream/Nodes$IntFixedNodeBuilder;]Ljava/util/stream/AbstractPipeline;Ljava/util/stream/ReferencePipeline$4; +HSPLjava/util/stream/AbstractPipeline;->evaluate(Ljava/util/stream/TerminalOp;)Ljava/lang/Object;+]Ljava/util/stream/TerminalOp;Ljava/util/stream/ReduceOps$3;]Ljava/util/stream/AbstractPipeline;Ljava/util/stream/IntPipeline$4; +HSPLjava/util/stream/AbstractPipeline;->evaluateToArrayNode(Ljava/util/function/IntFunction;)Ljava/util/stream/Node;+]Ljava/util/stream/AbstractPipeline;Ljava/util/stream/ReferencePipeline$4; +HSPLjava/util/stream/AbstractPipeline;->exactOutputSizeIfKnown(Ljava/util/Spliterator;)J+]Ljava/util/Spliterator;Ljava/util/HashMap$KeySpliterator;]Ljava/util/stream/AbstractPipeline;Ljava/util/stream/ReferencePipeline$4;]Ljava/util/stream/StreamOpFlag;Ljava/util/stream/StreamOpFlag; 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;->sourceSpliterator(I)Ljava/util/Spliterator;+]Ljava/util/stream/AbstractPipeline;Ljava/util/stream/IntPipeline$4;,Ljava/util/stream/ReferencePipeline$4; 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/AbstractPipeline;->wrapAndCopyInto(Ljava/util/stream/Sink;Ljava/util/Spliterator;)Ljava/util/stream/Sink;+]Ljava/util/stream/AbstractPipeline;Ljava/util/stream/IntPipeline$4;,Ljava/util/stream/ReferencePipeline$4; +HSPLjava/util/stream/AbstractPipeline;->wrapSink(Ljava/util/stream/Sink;)Ljava/util/stream/Sink;+]Ljava/util/stream/AbstractPipeline;Ljava/util/stream/IntPipeline$4;,Ljava/util/stream/ReferencePipeline$4; HSPLjava/util/stream/AbstractSpinedBuffer;-><init>()V HSPLjava/util/stream/AbstractSpinedBuffer;->count()J HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda0;-><init>()V @@ -30058,7 +30088,8 @@ HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda20;->accept(Ljava/lang/O HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda42;-><init>()V HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda65;->get()Ljava/lang/Object; HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda74;-><init>()V -HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda75;-><init>()V +HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda74;->get()Ljava/lang/Object; +HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda75;->accept(Ljava/lang/Object;Ljava/lang/Object;)V+]Ljava/util/List;Ljava/util/ArrayList; 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 @@ -30084,11 +30115,11 @@ HSPLjava/util/stream/Collectors;->toMap(Ljava/util/function/Function;Ljava/util/ 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/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$2;->accept(Ljava/lang/Object;)V+]Ljava/util/stream/Sink;Ljava/util/stream/ReferencePipeline$5$1;]Ljava/util/Set;Ljava/util/HashSet; +HSPLjava/util/stream/DistinctOps$1$2;->begin(J)V+]Ljava/util/stream/Sink;Ljava/util/stream/ReferencePipeline$5$1; +HSPLjava/util/stream/DistinctOps$1$2;->end()V+]Ljava/util/stream/Sink;Ljava/util/stream/ReferencePipeline$5$1; 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$1;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink;+]Ljava/util/stream/StreamOpFlag;Ljava/util/stream/StreamOpFlag; 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 @@ -30117,7 +30148,7 @@ HSPLjava/util/stream/ForEachOps;->makeRef(Ljava/util/function/Consumer;Z)Ljava/u HSPLjava/util/stream/IntPipeline$$ExternalSyntheticLambda7;-><init>()V HSPLjava/util/stream/IntPipeline$$ExternalSyntheticLambda8;-><init>()V 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$1;->accept(I)V+]Ljava/util/function/IntFunction;Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda8;]Ljava/util/stream/Sink;Ljava/util/stream/ReduceOps$3ReducingSink; 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 @@ -30130,14 +30161,14 @@ 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;->boxed()Ljava/util/stream/Stream;+]Ljava/util/stream/IntPipeline;Ljava/util/stream/IntPipeline$Head; 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;->reduce(ILjava/util/function/IntBinaryOperator;)I HSPLjava/util/stream/IntPipeline;->sum()I -HSPLjava/util/stream/IntPipeline;->toArray()[I +HSPLjava/util/stream/IntPipeline;->toArray()[I+]Ljava/util/stream/IntPipeline;Ljava/util/stream/ReferencePipeline$4;]Ljava/util/stream/Node$OfInt;Ljava/util/stream/Nodes$IntFixedNodeBuilder; 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; @@ -30146,8 +30177,9 @@ 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/LongPipeline;->reduce(JLjava/util/function/LongBinaryOperator;)J+]Ljava/lang/Long;Ljava/lang/Long;]Ljava/util/stream/LongPipeline;Ljava/util/stream/ReferencePipeline$5; +HSPLjava/util/stream/LongPipeline;->sum()J+]Ljava/util/stream/LongPipeline;Ljava/util/stream/ReferencePipeline$5; +HSPLjava/util/stream/MatchOps$$ExternalSyntheticLambda0;-><init>(Ljava/util/stream/MatchOps$MatchKind;Ljava/util/function/IntPredicate;)V 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; @@ -30177,13 +30209,13 @@ 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()Ljava/lang/Object;+]Ljava/util/stream/Nodes$IntArrayNode;Ljava/util/stream/Nodes$IntFixedNodeBuilder; 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;->build()Ljava/util/stream/Node;+]Ljava/util/stream/Nodes$IntFixedNodeBuilder;Ljava/util/stream/Nodes$IntFixedNodeBuilder; HSPLjava/util/stream/Nodes$IntFixedNodeBuilder;->end()V HSPLjava/util/stream/Nodes$SpinedNodeBuilder;-><clinit>()V HSPLjava/util/stream/Nodes$SpinedNodeBuilder;-><init>()V @@ -30195,7 +30227,7 @@ 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;->flattenInt(Ljava/util/stream/Node$OfInt;)Ljava/util/stream/Node$OfInt;+]Ljava/util/stream/Node$OfInt;Ljava/util/stream/Nodes$IntFixedNodeBuilder; 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; @@ -30213,12 +30245,12 @@ 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;->getOpFlags()I+]Ljava/util/stream/Collector;Ljava/util/stream/Collectors$CollectorImpl;]Ljava/util/Set;Ljava/util/Collections$UnmodifiableSet; 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$3;->makeSink()Ljava/util/stream/ReduceOps$AccumulatingSink;+]Ljava/util/stream/ReduceOps$3;Ljava/util/stream/ReduceOps$3; 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$3ReducingSink;->accept(Ljava/lang/Object;)V+]Ljava/util/function/BiConsumer;Ljava/util/stream/Collectors$$ExternalSyntheticLambda75; +HSPLjava/util/stream/ReduceOps$3ReducingSink;->begin(J)V+]Ljava/util/function/Supplier;Ljava/util/stream/Collectors$$ExternalSyntheticLambda74; 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 @@ -30227,19 +30259,19 @@ 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;->accept(J)V+]Ljava/util/function/LongBinaryOperator;Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda7; 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$8ReducingSink;->get()Ljava/lang/Object;+]Ljava/util/stream/ReduceOps$8ReducingSink;Ljava/util/stream/ReduceOps$8ReducingSink; 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$ReduceOp;->evaluateSequential(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;)Ljava/lang/Object;+]Ljava/util/stream/ReduceOps$AccumulatingSink;Ljava/util/stream/ReduceOps$3ReducingSink;]Ljava/util/stream/PipelineHelper;Ljava/util/stream/IntPipeline$4;]Ljava/util/stream/ReduceOps$ReduceOp;Ljava/util/stream/ReduceOps$3; 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/ReduceOps;->makeRef(Ljava/util/stream/Collector;)Ljava/util/stream/TerminalOp;+]Ljava/util/stream/Collector;Ljava/util/stream/Collectors$CollectorImpl; 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 @@ -30250,11 +30282,11 @@ 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$1;->accept(Ljava/lang/Object;)V+]Ljava/util/function/ToIntFunction;Landroid/media/AudioPort$$ExternalSyntheticLambda0;]Ljava/util/stream/Sink;Ljava/util/stream/Nodes$IntFixedNodeBuilder; 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$1;->accept(Ljava/lang/Object;)V+]Ljava/util/stream/Sink;Ljava/util/stream/ReduceOps$8ReducingSink; 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 @@ -30276,8 +30308,8 @@ 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;->collect(Ljava/util/stream/Collector;)Ljava/lang/Object;+]Ljava/util/stream/Collector;Ljava/util/stream/Collectors$CollectorImpl;]Ljava/util/stream/ReferencePipeline;Ljava/util/stream/IntPipeline$4;]Ljava/util/Set;Ljava/util/Collections$UnmodifiableSet; +HSPLjava/util/stream/ReferencePipeline;->count()J+]Ljava/util/stream/ReferencePipeline;Ljava/util/stream/DistinctOps$1;]Ljava/util/stream/LongStream;Ljava/util/stream/ReferencePipeline$5; 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; @@ -30298,12 +30330,12 @@ HSPLjava/util/stream/ReferencePipeline;->sorted(Ljava/util/Comparator;)Ljava/uti 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$ChainedInt;->begin(J)V+]Ljava/util/stream/Sink;Ljava/util/stream/ReduceOps$3ReducingSink; +HSPLjava/util/stream/Sink$ChainedInt;->end()V+]Ljava/util/stream/Sink;Ljava/util/stream/ReduceOps$3ReducingSink; HSPLjava/util/stream/Sink$ChainedReference;-><init>(Ljava/util/stream/Sink;)V -HSPLjava/util/stream/Sink$ChainedReference;->begin(J)V +HSPLjava/util/stream/Sink$ChainedReference;->begin(J)V+]Ljava/util/stream/Sink;Ljava/util/stream/Nodes$IntFixedNodeBuilder; HSPLjava/util/stream/Sink$ChainedReference;->cancellationRequested()Z -HSPLjava/util/stream/Sink$ChainedReference;->end()V +HSPLjava/util/stream/Sink$ChainedReference;->end()V+]Ljava/util/stream/Sink;Ljava/util/stream/Nodes$IntFixedNodeBuilder; 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 @@ -30332,7 +30364,7 @@ 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;->fromCharacteristics(Ljava/util/Spliterator;)I+]Ljava/util/Spliterator;Ljava/util/Spliterators$IntArraySpliterator;,Ljava/util/HashMap$KeySpliterator; 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; @@ -30412,14 +30444,14 @@ HSPLjava/util/zip/Inflater;-><init>()V HSPLjava/util/zip/Inflater;-><init>(Z)V HSPLjava/util/zip/Inflater;->end()V HSPLjava/util/zip/Inflater;->ended()Z -HSPLjava/util/zip/Inflater;->ensureOpen()V +HSPLjava/util/zip/Inflater;->ensureOpen()V+]Ljava/util/zip/ZStreamRef;Ljava/util/zip/ZStreamRef; HSPLjava/util/zip/Inflater;->finalize()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;->inflate([BII)I+]Ljava/util/zip/ZStreamRef;Ljava/util/zip/ZStreamRef; HSPLjava/util/zip/Inflater;->needsDictionary()Z HSPLjava/util/zip/Inflater;->needsInput()Z HSPLjava/util/zip/Inflater;->reset()V @@ -30429,19 +30461,19 @@ HSPLjava/util/zip/InflaterInputStream;-><init>(Ljava/io/InputStream;Ljava/util/z 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;->fill()V+]Ljava/io/InputStream;Ljava/io/PushbackInputStream;,Ljava/io/ByteArrayInputStream;]Ljava/util/zip/Inflater;Ljava/util/zip/Inflater; HSPLjava/util/zip/InflaterInputStream;->read()I -HSPLjava/util/zip/InflaterInputStream;->read([BII)I +HSPLjava/util/zip/InflaterInputStream;->read([BII)I+]Ljava/util/zip/InflaterInputStream;Ljava/util/zip/ZipInputStream;,Ljava/util/zip/GZIPInputStream;]Ljava/util/zip/Inflater;Ljava/util/zip/Inflater; HSPLjava/util/zip/ZStreamRef;-><init>(J)V HSPLjava/util/zip/ZStreamRef;->address()J HSPLjava/util/zip/ZStreamRef;->clear()V HSPLjava/util/zip/ZipCoder;-><init>(Ljava/nio/charset/Charset;)V -HSPLjava/util/zip/ZipCoder;->decoder()Ljava/nio/charset/CharsetDecoder; +HSPLjava/util/zip/ZipCoder;->decoder()Ljava/nio/charset/CharsetDecoder;+]Ljava/nio/charset/Charset;Lcom/android/icu/charset/CharsetICU;]Ljava/nio/charset/CharsetDecoder;Lcom/android/icu/charset/CharsetDecoderICU; 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;->getBytes(Ljava/lang/String;)[B+]Ljava/lang/String;Ljava/lang/String;]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer;]Ljava/nio/charset/CharsetEncoder;Lcom/android/icu/charset/CharsetEncoderICU;]Ljava/nio/charset/CoderResult;Ljava/nio/charset/CoderResult; HSPLjava/util/zip/ZipCoder;->isUTF8()Z -HSPLjava/util/zip/ZipCoder;->toString([BI)Ljava/lang/String; +HSPLjava/util/zip/ZipCoder;->toString([BI)Ljava/lang/String;+]Ljava/nio/CharBuffer;Ljava/nio/HeapCharBuffer;]Ljava/nio/charset/CoderResult;Ljava/nio/charset/CoderResult;]Ljava/nio/charset/CharsetDecoder;Lcom/android/icu/charset/CharsetDecoderICU; 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 @@ -30473,18 +30505,18 @@ 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;ILjava/nio/charset/Charset;Z)V+]Ljava/io/File;Ljava/io/File;]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard; 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;->finalize()V -HSPLjava/util/zip/ZipFile;->getEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry; +HSPLjava/util/zip/ZipFile;->getEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry;+]Ljava/util/zip/ZipCoder;Ljava/util/zip/ZipCoder; HSPLjava/util/zip/ZipFile;->getInflater()Ljava/util/zip/Inflater; HSPLjava/util/zip/ZipFile;->getInputStream(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream; -HSPLjava/util/zip/ZipFile;->getZipEntry(Ljava/lang/String;J)Ljava/util/zip/ZipEntry; -HSPLjava/util/zip/ZipFile;->onZipEntryAccess([BI)V +HSPLjava/util/zip/ZipFile;->getZipEntry(Ljava/lang/String;J)Ljava/util/zip/ZipEntry;+]Ljava/util/zip/ZipEntry;Ljava/util/zip/ZipEntry;]Ljava/util/zip/ZipCoder;Ljava/util/zip/ZipCoder; +HSPLjava/util/zip/ZipFile;->onZipEntryAccess([BI)V+]Ldalvik/system/ZipPathValidator$Callback;Lcom/android/internal/os/SafeZipPathValidatorCallback;]Ljava/util/zip/ZipCoder;Ljava/util/zip/ZipCoder; HSPLjava/util/zip/ZipFile;->releaseInflater(Ljava/util/zip/Inflater;)V HSPLjava/util/zip/ZipInputStream;-><init>(Ljava/io/InputStream;)V HSPLjava/util/zip/ZipInputStream;-><init>(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V @@ -30493,10 +30525,10 @@ 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;->read([BII)I+]Ljava/util/zip/CRC32;Ljava/util/zip/CRC32;]Ljava/io/InputStream;Ljava/io/PushbackInputStream; 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/ZipInputStream;->readLOC()Ljava/util/zip/ZipEntry;+]Ldalvik/system/ZipPathValidator$Callback;Lcom/android/internal/os/SafeZipPathValidatorCallback;]Ljava/util/zip/ZipEntry;Ljava/util/zip/ZipEntry;]Ljava/util/zip/ZipInputStream;Ljava/util/zip/ZipInputStream;]Ljava/util/zip/ZipCoder;Ljava/util/zip/ZipCoder; 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; @@ -30504,12 +30536,12 @@ HSPLjavax/crypto/Cipher$CipherSpiAndProvider;-><init>(Ljavax/crypto/CipherSpi;Lj 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$SpiAndProviderUpdater;->updateAndGetSpiAndProvider(Ljavax/crypto/Cipher$InitParams;Ljavax/crypto/CipherSpi;Ljava/security/Provider;)Ljavax/crypto/Cipher$CipherSpiAndProvider;+]Ljavax/crypto/Cipher$SpiAndProviderUpdater;Ljavax/crypto/Cipher$SpiAndProviderUpdater; 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;->chooseProvider(Ljavax/crypto/Cipher$InitType;ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/AlgorithmParameters;Ljava/security/SecureRandom;)V+]Ljavax/crypto/Cipher$SpiAndProviderUpdater;Ljavax/crypto/Cipher$SpiAndProviderUpdater; 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 @@ -30527,9 +30559,9 @@ HSPLjavax/crypto/Cipher;->init(ILjava/security/Key;Ljava/security/SecureRandom;) 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;->tokenizeTransformation(Ljava/lang/String;)[Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Ljava/util/StringTokenizer;Ljava/util/StringTokenizer; +HSPLjavax/crypto/Cipher;->tryCombinations(Ljavax/crypto/Cipher$InitParams;Ljava/security/Provider;[Ljava/lang/String;)Ljavax/crypto/Cipher$CipherSpiAndProvider;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/security/Provider$Service;Ljava/security/Provider$Service;]Ljava/security/Provider;missing_types]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr; +HSPLjavax/crypto/Cipher;->tryTransformWithProvider(Ljavax/crypto/Cipher$InitParams;[Ljava/lang/String;Ljavax/crypto/Cipher$NeedToSet;Ljava/security/Provider$Service;)Ljavax/crypto/Cipher$CipherSpiAndProvider;+]Ljava/security/Provider$Service;Ljava/security/Provider$Service;]Ljavax/crypto/Cipher$InitType;Ljavax/crypto/Cipher$InitType;]Ljavax/crypto/CipherSpi;missing_types HSPLjavax/crypto/Cipher;->unwrap([BLjava/lang/String;I)Ljava/security/Key; HSPLjavax/crypto/Cipher;->update([BII[BI)I HSPLjavax/crypto/Cipher;->updateAAD([B)V @@ -30558,17 +30590,17 @@ 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;->chooseProvider(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V+]Ljava/security/Provider$Service;Ljava/security/Provider$Service;]Ljava/util/List;Lsun/security/jca/ProviderList$ServiceList;]Ljava/util/Iterator;Lsun/security/jca/ProviderList$ServiceList$1; +HSPLjavax/crypto/Mac;->doFinal()[B+]Ljavax/crypto/Mac;Ljavax/crypto/Mac; +HSPLjavax/crypto/Mac;->doFinal([B)[B+]Ljavax/crypto/Mac;Ljavax/crypto/Mac; 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;)Ljavax/crypto/Mac;+]Ljava/security/Provider$Service;Ljava/security/Provider$Service;]Ljava/util/List;Lsun/security/jca/ProviderList$ServiceList;]Ljava/util/Iterator;Lsun/security/jca/ProviderList$ServiceList$1; 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(B)V+]Ljavax/crypto/Mac;Ljavax/crypto/Mac; +HSPLjavax/crypto/Mac;->update([B)V+]Ljavax/crypto/Mac;Ljavax/crypto/Mac; HSPLjavax/crypto/Mac;->update([BII)V HSPLjavax/crypto/MacSpi;-><init>()V HSPLjavax/crypto/SecretKeyFactory;-><init>(Ljava/lang/String;)V @@ -30589,7 +30621,7 @@ 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;-><init>([BLjava/lang/String;)V+][B[B HSPLjavax/crypto/spec/SecretKeySpec;->getAlgorithm()Ljava/lang/String; HSPLjavax/crypto/spec/SecretKeySpec;->getEncoded()[B HSPLjavax/crypto/spec/SecretKeySpec;->getFormat()Ljava/lang/String; @@ -30658,7 +30690,7 @@ 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;->setServerNames(Ljava/util/List;)V+]Ljavax/net/ssl/SNIServerName;Ljavax/net/ssl/SNIHostName;]Ljava/util/List;Ljava/util/Collections$SingletonList;]Ljava/util/Map;Ljava/util/LinkedHashMap;]Ljava/util/Iterator;Ljava/util/Collections$1; HSPLjavax/net/ssl/SSLParameters;->setUseCipherSuitesOrder(Z)V HSPLjavax/net/ssl/SSLServerSocketFactory;-><init>()V HSPLjavax/net/ssl/SSLServerSocketFactory;->getDefault()Ljavax/net/ServerSocketFactory; @@ -30688,7 +30720,7 @@ 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;->equals(Ljava/lang/Object;)Z+]Lsun/security/x509/X500Name;Lsun/security/x509/X500Name; 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; @@ -30711,7 +30743,7 @@ HSPLjdk/internal/math/FDBigInteger;->addAndCmp(Ljdk/internal/math/FDBigInteger;L 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;->cmpPow52(II)I+]Ljdk/internal/math/FDBigInteger;Ljdk/internal/math/FDBigInteger; 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; @@ -30728,20 +30760,20 @@ HSPLjdk/internal/math/FDBigInteger;->quoRemIteration(Ljdk/internal/math/FDBigInt 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;->valueOfMulPow52(JII)Ljdk/internal/math/FDBigInteger;+]Ljdk/internal/math/FDBigInteger;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;->doubleValue()D+]Ljdk/internal/math/FDBigInteger;Ljdk/internal/math/FDBigInteger; 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;->appendTo(Ljava/lang/Appendable;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->developLongDigits(IJI)V -HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->dtoa(IJIZ)V +HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->dtoa(IJIZ)V+]Ljdk/internal/math/FDBigInteger;Ljdk/internal/math/FDBigInteger; HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->estimateDecExp(JI)I HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->getChars([C)I HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->getDecimalExponent()I @@ -30753,14 +30785,14 @@ 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;->appendTo(FLjava/lang/Appendable;)V+]Ljdk/internal/math/FloatingDecimal$BinaryToASCIIConverter;Ljdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer; +HSPLjdk/internal/math/FloatingDecimal;->getBinaryToASCIIBuffer()Ljdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;+]Ljava/lang/ThreadLocal;Ljdk/internal/math/FloatingDecimal$1; 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;->readJavaFormatString(Ljava/lang/String;)Ljdk/internal/math/FloatingDecimal$ASCIIToBinaryConverter;+]Ljava/lang/String;Ljava/lang/String; 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 @@ -30770,11 +30802,11 @@ 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;-><init>(ILjdk/internal/math/FormattedFloatingDecimal$Form;Ljdk/internal/math/FloatingDecimal$BinaryToASCIIConverter;)V+]Ljdk/internal/math/FormattedFloatingDecimal$Form;Ljdk/internal/math/FormattedFloatingDecimal$Form;]Ljdk/internal/math/FloatingDecimal$BinaryToASCIIConverter;Ljdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer; 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;->getBuffer()[C+]Ljava/lang/ThreadLocal;Ljdk/internal/math/FormattedFloatingDecimal$1; HSPLjdk/internal/math/FormattedFloatingDecimal;->getExponent()[C HSPLjdk/internal/math/FormattedFloatingDecimal;->getExponentRounded()I HSPLjdk/internal/math/FormattedFloatingDecimal;->getMantissa()[C @@ -30782,33 +30814,33 @@ HSPLjdk/internal/math/FormattedFloatingDecimal;->valueOf(DILjdk/internal/math/Fo 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;->getAndBitwiseAndInt(Ljava/lang/Object;JI)I+]Ljdk/internal/misc/Unsafe;Ljdk/internal/misc/Unsafe; 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;->getIntAcquire(Ljava/lang/Object;J)I -HSPLjdk/internal/misc/Unsafe;->getIntUnaligned(Ljava/lang/Object;J)I +HSPLjdk/internal/misc/Unsafe;->getIntUnaligned(Ljava/lang/Object;J)I+]Ljdk/internal/misc/Unsafe;Ljdk/internal/misc/Unsafe; HSPLjdk/internal/misc/Unsafe;->getLongAcquire(Ljava/lang/Object;J)J HSPLjdk/internal/misc/Unsafe;->getLongUnaligned(Ljava/lang/Object;J)J+]Ljdk/internal/misc/Unsafe;Ljdk/internal/misc/Unsafe; 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;->getReferenceAcquire(Ljava/lang/Object;J)Ljava/lang/Object;+]Ljdk/internal/misc/Unsafe;Ljdk/internal/misc/Unsafe; 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;->putIntOpaque(Ljava/lang/Object;JI)V+]Ljdk/internal/misc/Unsafe;Ljdk/internal/misc/Unsafe; 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;->putReferenceOpaque(Ljava/lang/Object;JLjava/lang/Object;)V+]Ljdk/internal/misc/Unsafe;Ljdk/internal/misc/Unsafe; +HSPLjdk/internal/misc/Unsafe;->putReferenceRelease(Ljava/lang/Object;JLjava/lang/Object;)V+]Ljdk/internal/misc/Unsafe;Ljdk/internal/misc/Unsafe; HSPLjdk/internal/misc/Unsafe;->toUnsignedLong(I)J -HSPLjdk/internal/misc/Unsafe;->weakCompareAndSetInt(Ljava/lang/Object;JII)Z +HSPLjdk/internal/misc/Unsafe;->weakCompareAndSetInt(Ljava/lang/Object;JII)Z+]Ljdk/internal/misc/Unsafe;Ljdk/internal/misc/Unsafe; 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/reflect/Reflection;->getCallerClass()Ljava/lang/Class; @@ -30821,7 +30853,7 @@ HSPLjdk/internal/util/ArraysSupport;->newLength(III)I HSPLjdk/internal/util/ArraysSupport;->vectorizedMismatch(Ljava/lang/Object;JLjava/lang/Object;JII)I+]Ljdk/internal/misc/Unsafe;Ljdk/internal/misc/Unsafe; HSPLjdk/internal/util/Preconditions;->checkFromIndexSize(IIILjava/util/function/BiFunction;)I HSPLjdk/internal/util/Preconditions;->checkIndex(IILjava/util/function/BiFunction;)I -HSPLlibcore/content/type/MimeMap$Builder$Element;-><init>(Ljava/lang/String;Z)V +HSPLlibcore/content/type/MimeMap$Builder$Element;-><init>(Ljava/lang/String;Z)V+]Ljava/lang/String;Ljava/lang/String; 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; @@ -30830,10 +30862,10 @@ 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/content/type/MimeMap;->getDefault()Llibcore/content/type/MimeMap;+]Llibcore/content/type/MimeMap$MemoizingSupplier;Llibcore/content/type/MimeMap$MemoizingSupplier; +HSPLlibcore/content/type/MimeMap;->guessMimeTypeFromExtension(Ljava/lang/String;)Ljava/lang/String;+]Ljava/util/Map;Ljava/util/HashMap; +HSPLlibcore/content/type/MimeMap;->isValidMimeTypeOrExtension(Ljava/lang/String;)Z+]Ljava/lang/String;Ljava/lang/String; +HSPLlibcore/content/type/MimeMap;->toLowerCase(Ljava/lang/String;)Ljava/lang/String;+]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 @@ -30866,7 +30898,7 @@ 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;->getCompatibleLocaleForBug159514442(Ljava/util/Locale;)Ljava/util/Locale;+]Ljava/util/Locale;Ljava/util/Locale;]Ldalvik/system/VMRuntime;Ldalvik/system/VMRuntime; 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 @@ -30875,16 +30907,16 @@ 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;->contentEquals(Ljava/lang/String;[CII)Z+]Ljava/lang/String;Ljava/lang/String; 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;->access(Ljava/lang/String;I)Z+]Ldalvik/system/BlockGuard$VmPolicy;Landroid/os/StrictMode$5;]Ldalvik/system/BlockGuard$Policy;Ldalvik/system/BlockGuard$1;,Landroid/os/StrictMode$AndroidBlockGuardPolicy; 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;->chmod(Ljava/lang/String;I)V+]Ldalvik/system/BlockGuard$VmPolicy;Ldalvik/system/BlockGuard$2;]Ldalvik/system/BlockGuard$Policy;Ldalvik/system/BlockGuard$1;,Landroid/os/StrictMode$AndroidBlockGuardPolicy; +HSPLlibcore/io/BlockGuardOs;->close(Ljava/io/FileDescriptor;)V+]Ljava/io/FileDescriptor;Ljava/io/FileDescriptor; 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;->fstat(Ljava/io/FileDescriptor;)Landroid/system/StructStat;+]Ldalvik/system/BlockGuard$Policy;Ldalvik/system/BlockGuard$1;,Landroid/os/StrictMode$AndroidBlockGuardPolicy; 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 @@ -30897,47 +30929,47 @@ 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;->open(Ljava/lang/String;II)Ljava/io/FileDescriptor;+]Ldalvik/system/BlockGuard$VmPolicy;Ldalvik/system/BlockGuard$2;]Ldalvik/system/BlockGuard$Policy;Ldalvik/system/BlockGuard$1;,Landroid/os/StrictMode$AndroidBlockGuardPolicy; +HSPLlibcore/io/BlockGuardOs;->poll([Landroid/system/StructPollfd;I)I+]Ldalvik/system/BlockGuard$Policy;Ldalvik/system/BlockGuard$1; 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;->read(Ljava/io/FileDescriptor;[BII)I+]Ldalvik/system/BlockGuard$Policy;Ldalvik/system/BlockGuard$1;,Landroid/os/StrictMode$AndroidBlockGuardPolicy; 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;->remove(Ljava/lang/String;)V+]Ldalvik/system/BlockGuard$VmPolicy;Ldalvik/system/BlockGuard$2;]Ldalvik/system/BlockGuard$Policy;Ldalvik/system/BlockGuard$1;,Landroid/os/StrictMode$AndroidBlockGuardPolicy; +HSPLlibcore/io/BlockGuardOs;->rename(Ljava/lang/String;Ljava/lang/String;)V+]Ldalvik/system/BlockGuard$Policy;Ldalvik/system/BlockGuard$1;,Landroid/os/StrictMode$AndroidBlockGuardPolicy;]Ldalvik/system/BlockGuard$VmPolicy;Ldalvik/system/BlockGuard$2; 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/BlockGuardOs;->write(Ljava/io/FileDescriptor;[BII)I+]Ldalvik/system/BlockGuard$Policy;Ldalvik/system/BlockGuard$1;,Landroid/os/StrictMode$AndroidBlockGuardPolicy; 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;->getEntryUrlOrNull(Ljava/lang/String;)Ljava/net/URL; +HSPLlibcore/io/ClassPathURLStreamHandler;->getEntryUrlOrNull(Ljava/lang/String;)Ljava/net/URL;+]Ljava/util/jar/JarFile;Ljava/util/jar/JarFile; 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;->access(Ljava/lang/String;I)Z+]Llibcore/io/Os;Llibcore/io/BlockGuardOs;,Llibcore/io/Linux; 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;->chmod(Ljava/lang/String;I)V+]Llibcore/io/Os;Llibcore/io/BlockGuardOs;,Llibcore/io/Linux; +HSPLlibcore/io/ForwardingOs;->close(Ljava/io/FileDescriptor;)V+]Llibcore/io/Os;Llibcore/io/BlockGuardOs;,Llibcore/io/Linux; 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;->fstat(Ljava/io/FileDescriptor;)Landroid/system/StructStat;+]Llibcore/io/Os;Llibcore/io/BlockGuardOs;,Llibcore/io/Linux; 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; @@ -30945,12 +30977,12 @@ 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;->getpid()I+]Llibcore/io/Os;Llibcore/io/BlockGuardOs;,Llibcore/io/Linux; 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;->gettid()I+]Llibcore/io/Os;Llibcore/io/BlockGuardOs;,Llibcore/io/Linux; +HSPLlibcore/io/ForwardingOs;->getuid()I+]Llibcore/io/Os;Llibcore/io/BlockGuardOs;,Llibcore/io/Linux; 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 @@ -30959,15 +30991,15 @@ 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;->open(Ljava/lang/String;II)Ljava/io/FileDescriptor;+]Llibcore/io/Os;Llibcore/io/BlockGuardOs;,Llibcore/io/Linux; HSPLlibcore/io/ForwardingOs;->pipe2(I)[Ljava/io/FileDescriptor; -HSPLlibcore/io/ForwardingOs;->poll([Landroid/system/StructPollfd;I)I +HSPLlibcore/io/ForwardingOs;->poll([Landroid/system/StructPollfd;I)I+]Llibcore/io/Os;Llibcore/io/BlockGuardOs;,Llibcore/io/Linux; 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;->read(Ljava/io/FileDescriptor;[BII)I+]Llibcore/io/Os;Llibcore/io/BlockGuardOs;,Llibcore/io/Linux; 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;->remove(Ljava/lang/String;)V+]Llibcore/io/Os;Llibcore/io/BlockGuardOs;,Llibcore/io/Linux; 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 @@ -30983,11 +31015,11 @@ 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/ForwardingOs;->write(Ljava/io/FileDescriptor;[BII)I+]Llibcore/io/Os;Llibcore/io/BlockGuardOs;,Llibcore/io/Linux; 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;->closeAndSignalBlockedThreads(Ljava/io/FileDescriptor;)V+]Llibcore/io/Os;Landroid/app/ActivityThread$AndroidOs;]Ljava/io/FileDescriptor;Ljava/io/FileDescriptor; 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; @@ -30995,20 +31027,20 @@ HSPLlibcore/io/IoBridge;->getLocalInetSocketAddress(Ljava/io/FileDescriptor;)Lja 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;->open(Ljava/lang/String;I)Ljava/io/FileDescriptor;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Llibcore/io/Os;Landroid/app/ActivityThread$AndroidOs;]Landroid/system/ErrnoException;Landroid/system/ErrnoException;]Ljava/io/FileNotFoundException;Ljava/io/FileNotFoundException; 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;->read(Ljava/io/FileDescriptor;[BII)I+]Llibcore/io/Os;Landroid/app/ActivityThread$AndroidOs; 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/IoBridge;->write(Ljava/io/FileDescriptor;[BII)V+]Llibcore/io/Os;Landroid/app/ActivityThread$AndroidOs; 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/IoTracker;->trackIo(I)V+]Ldalvik/system/BlockGuard$Policy;Ldalvik/system/BlockGuard$1;,Landroid/os/StrictMode$AndroidBlockGuardPolicy; +HSPLlibcore/io/IoTracker;->trackIo(ILlibcore/io/IoTracker$Mode;)V+]Llibcore/io/IoTracker;Llibcore/io/IoTracker; HSPLlibcore/io/IoUtils;->acquireRawFd(Ljava/io/FileDescriptor;)I HSPLlibcore/io/IoUtils;->canOpenReadOnly(Ljava/lang/String;)Z HSPLlibcore/io/IoUtils;->close(Ljava/io/FileDescriptor;)V @@ -31017,7 +31049,7 @@ 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/IoUtils;->setFdOwner(Ljava/io/FileDescriptor;Ljava/lang/Object;)V+]Llibcore/io/Os;Landroid/app/ActivityThread$AndroidOs;]Ljava/io/FileDescriptor;Ljava/io/FileDescriptor; 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 @@ -31054,11 +31086,11 @@ HSPLlibcore/net/http/HttpURLConnectionFactory;->createInstance()Llibcore/net/htt 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;-><init>(Ljava/lang/Class;[Llibcore/reflect/AnnotationMember;)V+]Ljava/lang/String;Ljava/lang/String;]Llibcore/reflect/AnnotationMember;Llibcore/reflect/AnnotationMember; +HSPLlibcore/reflect/AnnotationFactory;->createAnnotation(Ljava/lang/Class;[Llibcore/reflect/AnnotationMember;)Ljava/lang/annotation/Annotation;+]Ljava/lang/Class;Ljava/lang/Class; +HSPLlibcore/reflect/AnnotationFactory;->getElementsDescription(Ljava/lang/Class;)[Llibcore/reflect/AnnotationMember;+]Ljava/util/Map;Ljava/util/WeakHashMap; 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;)V+]Ljava/lang/Object;megamorphic_types]Ljava/lang/Class;Ljava/lang/Class; 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; @@ -31068,11 +31100,11 @@ 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;->parseClassTypeSignature()Ljava/lang/reflect/Type;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Llibcore/reflect/GenericSignatureParser;Llibcore/reflect/GenericSignatureParser; 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;->parseForField(Ljava/lang/reflect/GenericDeclaration;Ljava/lang/String;)V+]Llibcore/reflect/GenericSignatureParser;Llibcore/reflect/GenericSignatureParser; 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 @@ -31082,7 +31114,7 @@ HSPLlibcore/reflect/GenericSignatureParser;->parseReturnType()Ljava/lang/reflect 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;->scanIdentifier()V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Llibcore/reflect/GenericSignatureParser;Llibcore/reflect/GenericSignatureParser; HSPLlibcore/reflect/GenericSignatureParser;->scanSymbol()V HSPLlibcore/reflect/GenericSignatureParser;->setInput(Ljava/lang/reflect/GenericDeclaration;Ljava/lang/String;)V HSPLlibcore/reflect/ListOfTypes;-><init>(I)V @@ -31119,10 +31151,10 @@ 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;->get(Ljava/lang/Object;)Ljava/lang/Object;+]Llibcore/util/BasicLruCache;Llibcore/util/BasicLruCache;,Ljava/lang/Enum$1;]Ljava/util/LinkedHashMap;Ljava/util/LinkedHashMap; 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/CollectionUtils;->removeDuplicates(Ljava/util/List;Ljava/util/Comparator;)V+]Ljava/util/Comparator;Ljava/lang/reflect/Method$1;]Ljava/util/List;Ljava/util/ArrayList$SubList;,Ljava/util/ArrayList; HSPLlibcore/util/FP16;->ceil(S)S HSPLlibcore/util/FP16;->compare(SS)I HSPLlibcore/util/FP16;->floor(S)S @@ -31153,13 +31185,13 @@ HSPLlibcore/util/NativeAllocationRegistry;->registerNativeFree(J)V+]Ldalvik/syst 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;-><init>(Lcom/android/i18n/timezone/ZoneInfoData;IZ)V+]Lcom/android/i18n/timezone/ZoneInfoData;Lcom/android/i18n/timezone/ZoneInfoData;]Llibcore/util/ZoneInfo;Llibcore/util/ZoneInfo; 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;->getOffset(J)I+]Lcom/android/i18n/timezone/ZoneInfoData;Lcom/android/i18n/timezone/ZoneInfoData; +HSPLlibcore/util/ZoneInfo;->getOffsetsByUtcTime(J[I)I+]Lcom/android/i18n/timezone/ZoneInfoData;Lcom/android/i18n/timezone/ZoneInfoData; HSPLlibcore/util/ZoneInfo;->getRawOffset()I HSPLlibcore/util/ZoneInfo;->hasSameRules(Ljava/util/TimeZone;)Z HSPLlibcore/util/ZoneInfo;->hashCode()I @@ -31333,7 +31365,7 @@ 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;->getInt(I)I+]Ljava/lang/Integer;Ljava/lang/Integer;]Lorg/json/JSONArray;Lorg/json/JSONArray; HSPLorg/json/JSONArray;->getJSONArray(I)Lorg/json/JSONArray; HSPLorg/json/JSONArray;->getJSONObject(I)Lorg/json/JSONObject; HSPLorg/json/JSONArray;->getString(I)Ljava/lang/String; @@ -31344,7 +31376,7 @@ 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;->put(Ljava/lang/Object;)Lorg/json/JSONArray;+]Ljava/util/List;Ljava/util/ArrayList; HSPLorg/json/JSONArray;->toString()Ljava/lang/String; HSPLorg/json/JSONArray;->writeTo(Lorg/json/JSONStringer;)V HSPLorg/json/JSONException;-><init>(Ljava/lang/String;)V @@ -31354,68 +31386,68 @@ 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;->get(Ljava/lang/String;)Ljava/lang/Object;+]Ljava/util/LinkedHashMap;Ljava/util/LinkedHashMap; 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;->getString(Ljava/lang/String;)Ljava/lang/String;+]Lorg/json/JSONObject;Lorg/json/JSONObject; 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;->numberToString(Ljava/lang/Number;)Ljava/lang/String;+]Ljava/lang/Number;Ljava/lang/Integer;,Ljava/lang/Float;]Ljava/lang/Object;Ljava/lang/Integer;,Ljava/lang/Float; +HSPLorg/json/JSONObject;->opt(Ljava/lang/String;)Ljava/lang/Object;+]Ljava/util/LinkedHashMap;Ljava/util/LinkedHashMap; 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;->optInt(Ljava/lang/String;I)I+]Ljava/lang/Integer;Ljava/lang/Integer;]Lorg/json/JSONObject;Lorg/json/JSONObject; 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;->optString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;+]Lorg/json/JSONObject;Lorg/json/JSONObject; 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;I)Lorg/json/JSONObject;+]Ljava/util/LinkedHashMap;Ljava/util/LinkedHashMap; 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;Ljava/lang/Object;)Lorg/json/JSONObject;+]Ljava/util/LinkedHashMap;Ljava/util/LinkedHashMap;]Ljava/lang/Number;Ljava/lang/Integer;,Ljava/lang/Float;,Ljava/lang/Double;]Lorg/json/JSONObject;missing_types 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/JSONObject;->writeTo(Lorg/json/JSONStringer;)V+]Ljava/util/Map$Entry;Ljava/util/LinkedHashMap$LinkedHashMapEntry;]Ljava/util/LinkedHashMap;Ljava/util/LinkedHashMap;]Lorg/json/JSONStringer;Lorg/json/JSONStringer;]Ljava/util/Iterator;Ljava/util/LinkedHashMap$LinkedEntryIterator;]Ljava/util/Set;Ljava/util/LinkedHashMap$LinkedEntrySet; 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;->beforeKey()V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; +HSPLorg/json/JSONStringer;->beforeValue()V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/util/List;Ljava/util/ArrayList; +HSPLorg/json/JSONStringer;->close(Lorg/json/JSONStringer$Scope;Lorg/json/JSONStringer$Scope;Ljava/lang/String;)Lorg/json/JSONStringer;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/util/List;Ljava/util/ArrayList; HSPLorg/json/JSONStringer;->endArray()Lorg/json/JSONStringer; -HSPLorg/json/JSONStringer;->endObject()Lorg/json/JSONStringer; +HSPLorg/json/JSONStringer;->endObject()Lorg/json/JSONStringer;+]Lorg/json/JSONStringer;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;->object()Lorg/json/JSONStringer;+]Lorg/json/JSONStringer;Lorg/json/JSONStringer; +HSPLorg/json/JSONStringer;->open(Lorg/json/JSONStringer$Scope;Ljava/lang/String;)Lorg/json/JSONStringer;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/util/List;Ljava/util/ArrayList; +HSPLorg/json/JSONStringer;->peek()Lorg/json/JSONStringer$Scope;+]Ljava/util/List;Ljava/util/ArrayList; +HSPLorg/json/JSONStringer;->replaceTop(Lorg/json/JSONStringer$Scope;)V+]Ljava/util/List;Ljava/util/ArrayList; +HSPLorg/json/JSONStringer;->string(Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HSPLorg/json/JSONStringer;->toString()Ljava/lang/String; -HSPLorg/json/JSONStringer;->value(Ljava/lang/Object;)Lorg/json/JSONStringer; +HSPLorg/json/JSONStringer;->value(Ljava/lang/Object;)Lorg/json/JSONStringer;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/Object;Ljava/lang/String;]Lorg/json/JSONObject;Lorg/json/JSONObject;]Ljava/util/List;Ljava/util/ArrayList;]Lorg/json/JSONArray;Lorg/json/JSONArray; 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;->nextCleanInternal()I+]Ljava/lang/String;Ljava/lang/String; +HSPLorg/json/JSONTokener;->nextString(C)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/String;Ljava/lang/String; +HSPLorg/json/JSONTokener;->nextToInternal(Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String; +HSPLorg/json/JSONTokener;->nextValue()Ljava/lang/Object;+]Lorg/json/JSONTokener;Lorg/json/JSONTokener; +HSPLorg/json/JSONTokener;->readArray()Lorg/json/JSONArray;+]Lorg/json/JSONTokener;Lorg/json/JSONTokener;]Lorg/json/JSONArray;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;->readLiteral()Ljava/lang/Object;+]Ljava/lang/String;Ljava/lang/String; +HSPLorg/json/JSONTokener;->readObject()Lorg/json/JSONObject;+]Ljava/lang/String;Ljava/lang/String;]Lorg/json/JSONObject;Lorg/json/JSONObject;]Lorg/json/JSONTokener;Lorg/json/JSONTokener; 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 @@ -31452,15 +31484,15 @@ HSPLsun/misc/ASCIICaseInsensitiveComparator;->lowerCaseHashCode(Ljava/lang/Strin 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;->clean()V+]Ljava/lang/Runnable;Llibcore/util/NativeAllocationRegistry$CleanerThunk; +HSPLsun/misc/Cleaner;->clean()V+]Ljava/lang/Runnable;megamorphic_types 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;->next()Z+]Ljava/util/Enumeration;Lsun/misc/CompoundEnumeration;,Ljava/util/Collections$3; HSPLsun/misc/CompoundEnumeration;->nextElement()Ljava/lang/Object; -HSPLsun/misc/IOUtils;->readFully(Ljava/io/InputStream;IZ)[B +HSPLsun/misc/IOUtils;->readFully(Ljava/io/InputStream;IZ)[B+]Ljava/io/InputStream;Lsun/security/util/DerInputBuffer;,Ljava/io/ByteArrayInputStream; 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 @@ -31489,7 +31521,7 @@ 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;->getReventOps(I)I+]Lsun/nio/ch/AllocatedNativeObject;Lsun/nio/ch/AllocatedNativeObject; HSPLsun/nio/ch/AbstractPollArrayWrapper;->putDescriptor(II)V HSPLsun/nio/ch/AbstractPollArrayWrapper;->putEventOps(II)V HSPLsun/nio/ch/AbstractPollArrayWrapper;->putReventOps(II)V @@ -31497,7 +31529,7 @@ HSPLsun/nio/ch/AbstractPollSelectorImpl;-><init>(Ljava/nio/channels/spi/Selector 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/AbstractPollSelectorImpl;->updateSelectedKeys()I+]Lsun/nio/ch/PollArrayWrapper;Lsun/nio/ch/PollArrayWrapper;]Lsun/nio/ch/SelChImpl;Lsun/nio/ch/SocketChannelImpl;,Lsun/nio/ch/DatagramChannelImpl;]Lsun/nio/ch/SelectionKeyImpl;Lsun/nio/ch/SelectionKeyImpl;]Ljava/util/Set;Ljava/util/HashSet; HSPLsun/nio/ch/AllocatedNativeObject;-><init>(IZ)V HSPLsun/nio/ch/AllocatedNativeObject;->free()V HSPLsun/nio/ch/ChannelInputStream;-><init>(Ljava/nio/channels/ReadableByteChannel;)V @@ -31510,23 +31542,23 @@ 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$Unmapper;->run()V+]Ljava/io/FileDescriptor;Ljava/io/FileDescriptor; HSPLsun/nio/ch/FileChannelImpl;-><init>(Ljava/io/FileDescriptor;Ljava/lang/String;ZZZLjava/lang/Object;)V -HSPLsun/nio/ch/FileChannelImpl;->ensureOpen()V +HSPLsun/nio/ch/FileChannelImpl;->ensureOpen()V+]Lsun/nio/ch/FileChannelImpl;Lsun/nio/ch/FileChannelImpl; 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;->map(Ljava/nio/channels/FileChannel$MapMode;JJ)Ljava/nio/MappedByteBuffer;+]Lsun/nio/ch/NativeThreadSet;Lsun/nio/ch/NativeThreadSet;]Lsun/nio/ch/FileDispatcher;Lsun/nio/ch/FileDispatcherImpl;]Lsun/nio/ch/FileChannelImpl;Lsun/nio/ch/FileChannelImpl;]Ldalvik/system/BlockGuard$Policy;Ldalvik/system/BlockGuard$1; HSPLsun/nio/ch/FileChannelImpl;->open(Ljava/io/FileDescriptor;Ljava/lang/String;ZZLjava/lang/Object;)Ljava/nio/channels/FileChannel; HSPLsun/nio/ch/FileChannelImpl;->open(Ljava/io/FileDescriptor;Ljava/lang/String;ZZZLjava/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;->size()J+]Lsun/nio/ch/NativeThreadSet;Lsun/nio/ch/NativeThreadSet;]Lsun/nio/ch/FileDispatcher;Lsun/nio/ch/FileDispatcherImpl;]Lsun/nio/ch/FileChannelImpl;Lsun/nio/ch/FileChannelImpl; 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 @@ -31538,7 +31570,7 @@ 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;->size(Ljava/io/FileDescriptor;)J+]Ldalvik/system/BlockGuard$Policy;Ldalvik/system/BlockGuard$1;,Landroid/os/StrictMode$AndroidBlockGuardPolicy; 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 @@ -31554,15 +31586,15 @@ 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;->read(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I+]Ljava/nio/ByteBuffer;Ljava/nio/DirectByteBuffer; +HSPLsun/nio/ch/IOUtil;->readIntoNativeBuffer(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I+]Lsun/nio/ch/NativeDispatcher;Lsun/nio/ch/FileDispatcherImpl;]Ljava/nio/ByteBuffer;Ljava/nio/DirectByteBuffer;]Lsun/nio/ch/DirectBuffer;Ljava/nio/DirectByteBuffer; 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;->getShort(I)S+]Lsun/misc/Unsafe;Lsun/misc/Unsafe; HSPLsun/nio/ch/NativeObject;->putInt(II)V HSPLsun/nio/ch/NativeObject;->putShort(IS)V HSPLsun/nio/ch/NativeThreadSet;-><init>(I)V @@ -31642,17 +31674,17 @@ 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;->get(I)Ljava/nio/ByteBuffer;+]Ljava/nio/ByteBuffer;Ljava/nio/DirectByteBuffer; 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;->getTemporaryDirectBuffer(I)Ljava/nio/ByteBuffer;+]Ljava/lang/ThreadLocal;Lsun/nio/ch/Util$1;]Lsun/nio/ch/Util$BufferCache;Lsun/nio/ch/Util$BufferCache; 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;->isBufferTooLarge(Ljava/nio/ByteBuffer;)Z+]Ljava/nio/ByteBuffer;Ljava/nio/DirectByteBuffer; +HSPLsun/nio/ch/Util;->offerFirstTemporaryDirectBuffer(Ljava/nio/ByteBuffer;)V+]Ljava/lang/ThreadLocal;Lsun/nio/ch/Util$1;]Lsun/nio/ch/Util$BufferCache;Lsun/nio/ch/Util$BufferCache; 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 @@ -31662,13 +31694,13 @@ HSPLsun/nio/cs/StreamDecoder;->forInputStreamReader(Ljava/io/InputStream;Ljava/l 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;->implRead([CII)I+]Ljava/nio/CharBuffer;Ljava/nio/HeapCharBuffer;]Ljava/nio/charset/CoderResult;Ljava/nio/charset/CoderResult;]Ljava/nio/charset/CharsetDecoder;Lcom/android/icu/charset/CharsetDecoderICU; 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;->read([CII)I+]Lsun/nio/cs/StreamDecoder;Lsun/nio/cs/StreamDecoder; HSPLsun/nio/cs/StreamDecoder;->read0()I -HSPLsun/nio/cs/StreamDecoder;->readBytes()I +HSPLsun/nio/cs/StreamDecoder;->readBytes()I+]Ljava/io/InputStream;missing_types]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; 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 @@ -31681,11 +31713,11 @@ HSPLsun/nio/cs/StreamEncoder;->forOutputStreamWriter(Ljava/io/OutputStream;Ljava HSPLsun/nio/cs/StreamEncoder;->implClose()V HSPLsun/nio/cs/StreamEncoder;->implFlush()V HSPLsun/nio/cs/StreamEncoder;->implFlushBuffer()V -HSPLsun/nio/cs/StreamEncoder;->implWrite([CII)V +HSPLsun/nio/cs/StreamEncoder;->implWrite([CII)V+]Ljava/nio/CharBuffer;Ljava/nio/HeapCharBuffer;]Ljava/nio/charset/CharsetEncoder;Lcom/android/icu/charset/CharsetEncoderICU;]Ljava/nio/charset/CoderResult;Ljava/nio/charset/CoderResult; 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/StreamEncoder;->writeBytes()V+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer;]Ljava/io/OutputStream;Ljava/util/logging/FileHandler$MeteredStream;,Ljava/io/FileOutputStream; 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; @@ -31709,7 +31741,7 @@ 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;->copyCStringToNativeBuffer([BLsun/nio/fs/NativeBuffer;)V+]Lsun/nio/fs/NativeBuffer;Lsun/nio/fs/NativeBuffer;]Lsun/misc/Unsafe;Lsun/misc/Unsafe; 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 @@ -31741,7 +31773,7 @@ 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$Basic;->readAttributes()Ljava/nio/file/attribute/BasicFileAttributes;+]Lsun/nio/fs/UnixPath;Lsun/nio/fs/UnixPath;]Lsun/nio/fs/UnixFileAttributes;Lsun/nio/fs/UnixFileAttributes; 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; @@ -31776,9 +31808,9 @@ HSPLsun/nio/fs/UnixFileSystemProvider;->getFileAttributeView(Ljava/nio/file/Path 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/UnixFileSystemProvider;->readAttributes(Ljava/nio/file/Path;Ljava/lang/Class;[Ljava/nio/file/LinkOption;)Ljava/nio/file/attribute/BasicFileAttributes;+]Ljava/nio/file/attribute/BasicFileAttributeView;Lsun/nio/fs/UnixFileAttributeViews$Basic;]Lsun/nio/fs/UnixFileSystemProvider;Lsun/nio/fs/LinuxFileSystemProvider; 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;->copyToNativeBuffer(Lsun/nio/fs/UnixPath;)Lsun/nio/fs/NativeBuffer;+]Lsun/nio/fs/UnixPath;Lsun/nio/fs/UnixPath;]Lsun/nio/fs/NativeBuffer;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 @@ -31789,7 +31821,7 @@ 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;->encode(Lsun/nio/fs/UnixFileSystem;Ljava/lang/String;)[B+]Ljava/lang/ref/SoftReference;Ljava/lang/ref/SoftReference;]Ljava/lang/String;Ljava/lang/String;]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer;]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal;]Ljava/nio/charset/CharsetEncoder;Lcom/android/icu/charset/CharsetEncoderICU;]Lsun/nio/fs/UnixFileSystem;Lsun/nio/fs/LinuxFileSystem;]Ljava/nio/charset/CoderResult;Ljava/nio/charset/CoderResult;]Ljava/nio/charset/Charset;Lcom/android/icu/charset/CharsetICU; HSPLsun/nio/fs/UnixPath;->getByteArrayForSysCalls()[B HSPLsun/nio/fs/UnixPath;->getFileSystem()Ljava/nio/file/FileSystem; HSPLsun/nio/fs/UnixPath;->getFileSystem()Lsun/nio/fs/UnixFileSystem; @@ -31799,7 +31831,7 @@ 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;->normalizeAndCheck(Ljava/lang/String;)Ljava/lang/String;+]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; @@ -31854,10 +31886,10 @@ HSPLsun/security/jca/ProviderList$ServiceList;->-$$Nest$mtryGet(Lsun/security/jc 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$ServiceList;->tryGet(I)Ljava/security/Provider$Service;+]Lsun/security/jca/ProviderList;Lsun/security/jca/ProviderList; 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;->getIndex(Ljava/lang/String;)I+]Ljava/lang/String;Ljava/lang/String;]Lsun/security/jca/ProviderList;Lsun/security/jca/ProviderList;]Ljava/security/Provider;missing_types 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; @@ -31924,7 +31956,7 @@ HSPLsun/security/provider/certpath/AdaptableX509CertSelector;->setSkiAndSerialNu 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;->check(Ljava/security/cert/Certificate;Ljava/util/Collection;)V+]Ljava/security/cert/X509Certificate;missing_types]Lsun/security/x509/X509CertImpl;Lsun/security/x509/X509CertImpl;]Lsun/security/x509/AlgorithmId;Lsun/security/x509/AlgorithmId;]Ljava/security/cert/Certificate;missing_types]Lsun/security/util/DisabledAlgorithmConstraints;Lsun/security/util/DisabledAlgorithmConstraints;]Ljava/security/AlgorithmConstraints;Lsun/security/util/DisabledAlgorithmConstraints;]Ljava/util/Set;Ljava/util/RegularEnumSet; 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 @@ -31932,7 +31964,7 @@ HSPLsun/security/provider/certpath/BasicChecker;->check(Ljava/security/cert/Cert 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;->verifyNameChaining(Ljava/security/cert/X509Certificate;)V+]Ljava/security/cert/X509Certificate;missing_types]Ljavax/security/auth/x500/X500Principal;Ljavax/security/auth/x500/X500Principal;]Lsun/security/x509/X500Name;Lsun/security/x509/X500Name; 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 @@ -31945,13 +31977,13 @@ 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;->check(Ljava/security/cert/Certificate;Ljava/util/Collection;)V+]Lsun/security/util/ObjectIdentifier;Lsun/security/util/ObjectIdentifier;]Ljava/util/Collection;Ljava/util/HashSet; 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;->check(Ljava/security/cert/Certificate;Ljava/util/Collection;)V+]Lsun/security/util/ObjectIdentifier;Lsun/security/util/ObjectIdentifier;]Ljava/util/Collection;Ljava/util/HashSet; 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 @@ -31982,9 +32014,9 @@ HSPLsun/security/provider/certpath/PKIX;->isDSAPublicKeyWithoutParams(Ljava/secu 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(Ljava/security/cert/TrustAnchor;Lsun/security/provider/certpath/PKIX$ValidatorParams;)Ljava/security/cert/PKIXCertPathValidatorResult;+]Lsun/security/provider/certpath/PKIX$ValidatorParams;Lsun/security/provider/certpath/PKIX$ValidatorParams;]Lsun/security/provider/certpath/BasicChecker;Lsun/security/provider/certpath/BasicChecker;]Ljava/util/List;Ljava/util/Collections$UnmodifiableRandomAccessList;,Ljava/util/ArrayList;]Lsun/security/provider/certpath/PolicyChecker;Lsun/security/provider/certpath/PolicyChecker;]Ljava/util/Iterator;Ljava/util/Collections$UnmodifiableCollection$1; 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/PKIXMasterCertPathValidator;->validate(Ljava/security/cert/CertPath;Ljava/util/List;Ljava/util/List;)V+]Ljava/security/cert/X509Certificate;missing_types]Ljava/util/List;Ljava/util/ArrayList;]Ljava/security/cert/PKIXCertPathChecker;megamorphic_types]Ljava/util/Set;Ljava/util/HashSet; 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 @@ -31993,23 +32025,23 @@ 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;->processParents(IZZLsun/security/provider/certpath/PolicyNodeImpl;Ljava/lang/String;Ljava/util/Set;Z)Z+]Ljava/lang/String;Ljava/lang/String;]Lsun/security/provider/certpath/PolicyNodeImpl;Lsun/security/provider/certpath/PolicyNodeImpl;]Ljava/util/Iterator;Ljava/util/HashMap$KeyIterator;]Ljava/util/Set;Ljava/util/HashSet; +HSPLsun/security/provider/certpath/PolicyChecker;->processPolicies(ILjava/util/Set;IIIZLsun/security/provider/certpath/PolicyNodeImpl;Lsun/security/x509/X509CertImpl;Z)Lsun/security/provider/certpath/PolicyNodeImpl;+]Lsun/security/x509/CertificatePoliciesExtension;Lsun/security/x509/CertificatePoliciesExtension;]Ljava/lang/String;Ljava/lang/String;]Lsun/security/x509/CertificatePolicyId;Lsun/security/x509/CertificatePolicyId;]Lsun/security/x509/X509CertImpl;Lsun/security/x509/X509CertImpl;]Lsun/security/util/ObjectIdentifier;Lsun/security/util/ObjectIdentifier;]Lsun/security/x509/PolicyInformation;Lsun/security/x509/PolicyInformation;]Ljava/util/List;Ljava/util/ArrayList;]Lsun/security/provider/certpath/PolicyNodeImpl;Lsun/security/provider/certpath/PolicyNodeImpl;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;,Ljava/util/Collections$UnmodifiableCollection$1;]Ljava/util/Set;Ljava/util/HashSet;,Ljava/util/Collections$EmptySet;,Ljava/util/LinkedHashSet; 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;Ljava/lang/String;Ljava/util/Set;ZLjava/util/Set;Z)V+]Lsun/security/provider/certpath/PolicyNodeImpl;Lsun/security/provider/certpath/PolicyNodeImpl; 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;->addChild(Lsun/security/provider/certpath/PolicyNodeImpl;)V+]Ljava/util/HashSet;Ljava/util/HashSet; 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;->copyTree(Lsun/security/provider/certpath/PolicyNodeImpl;)Lsun/security/provider/certpath/PolicyNodeImpl;+]Ljava/util/HashSet;Ljava/util/HashSet;]Ljava/util/Iterator;Ljava/util/HashMap$KeyIterator; 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;->getPolicyNodesExpectedHelper(ILjava/lang/String;Z)Ljava/util/Set;+]Ljava/util/HashSet;Ljava/util/HashSet;]Ljava/util/Iterator;Ljava/util/HashMap$KeyIterator; HSPLsun/security/provider/certpath/PolicyNodeImpl;->getValidPolicy()Ljava/lang/String; -HSPLsun/security/provider/certpath/PolicyNodeImpl;->prune(I)V +HSPLsun/security/provider/certpath/PolicyNodeImpl;->prune(I)V+]Ljava/util/HashSet;Ljava/util/HashSet;]Lsun/security/provider/certpath/PolicyNodeImpl;Lsun/security/provider/certpath/PolicyNodeImpl;]Ljava/util/Iterator;Ljava/util/HashMap$KeyIterator; 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; @@ -32028,9 +32060,9 @@ HSPLsun/security/provider/certpath/RevocationChecker;->init(Ljava/security/cert/ 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/AbstractAlgorithmConstraints;->checkAlgorithm([Ljava/lang/String;Ljava/lang/String;Lsun/security/util/AlgorithmDecomposer;)Z+]Ljava/lang/String;Ljava/lang/String;]Lsun/security/util/AlgorithmDecomposer;Lsun/security/util/AlgorithmDecomposer;]Ljava/util/Iterator;Ljava/util/HashMap$KeyIterator;]Ljava/util/Set;Ljava/util/HashSet; +HSPLsun/security/util/AlgorithmDecomposer;->decompose(Ljava/lang/String;)Ljava/util/Set;+]Ljava/lang/String;Ljava/lang/String;]Ljava/util/Set;Ljava/util/HashSet; +HSPLsun/security/util/AlgorithmDecomposer;->decomposeImpl(Ljava/lang/String;)Ljava/util/Set;+]Ljava/lang/String;Ljava/lang/String;]Ljava/util/regex/Pattern;Ljava/util/regex/Pattern;]Ljava/util/Set;Ljava/util/HashSet; 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 @@ -32050,7 +32082,7 @@ 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;->dup()Lsun/security/util/DerInputBuffer;+]Lsun/security/util/DerInputBuffer;Lsun/security/util/DerInputBuffer;]Ljava/lang/Object;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 @@ -32062,40 +32094,40 @@ 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/DerInputBuffer;->toByteArray()[B+]Lsun/security/util/DerInputBuffer;Lsun/security/util/DerInputBuffer; +HSPLsun/security/util/DerInputBuffer;->truncate(I)V+]Lsun/security/util/DerInputBuffer;Lsun/security/util/DerInputBuffer; +HSPLsun/security/util/DerInputStream;-><init>(Lsun/security/util/DerInputBuffer;)V+]Lsun/security/util/DerInputBuffer;Lsun/security/util/DerInputBuffer; HSPLsun/security/util/DerInputStream;-><init>([B)V -HSPLsun/security/util/DerInputStream;->available()I +HSPLsun/security/util/DerInputStream;->available()I+]Lsun/security/util/DerInputBuffer;Lsun/security/util/DerInputBuffer; 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;->getByte()I+]Lsun/security/util/DerInputBuffer;Lsun/security/util/DerInputBuffer; +HSPLsun/security/util/DerInputStream;->getBytes([B)V+]Lsun/security/util/DerInputBuffer;Lsun/security/util/DerInputBuffer; 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;->getLength(ILjava/io/InputStream;)I+]Ljava/io/InputStream;Lsun/security/util/DerInputBuffer;,Ljava/io/ByteArrayInputStream; +HSPLsun/security/util/DerInputStream;->getLength(Ljava/io/InputStream;)I+]Ljava/io/InputStream;Lsun/security/util/DerInputBuffer; 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;->getSequence(IZ)[Lsun/security/util/DerValue;+]Lsun/security/util/DerInputBuffer;Lsun/security/util/DerInputBuffer;]Lsun/security/util/DerInputStream;Lsun/security/util/DerInputStream; +HSPLsun/security/util/DerInputStream;->getSet(I)[Lsun/security/util/DerValue;+]Lsun/security/util/DerInputBuffer;Lsun/security/util/DerInputBuffer;]Lsun/security/util/DerInputStream;Lsun/security/util/DerInputStream; 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;->init([BIIZ)V+]Lsun/security/util/DerInputBuffer;Lsun/security/util/DerInputBuffer; 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(I)[Lsun/security/util/DerValue;+]Lsun/security/util/DerInputStream;Lsun/security/util/DerInputStream; HSPLsun/security/util/DerInputStream;->readVector(IZ)[Lsun/security/util/DerValue;+]Lsun/security/util/DerInputBuffer;Lsun/security/util/DerInputBuffer;]Ljava/util/Vector;Ljava/util/Vector;]Lsun/security/util/DerInputStream;Lsun/security/util/DerInputStream; -HSPLsun/security/util/DerInputStream;->reset()V +HSPLsun/security/util/DerInputStream;->reset()V+]Lsun/security/util/DerInputBuffer;Lsun/security/util/DerInputBuffer; HSPLsun/security/util/DerInputStream;->subStream(IZ)Lsun/security/util/DerInputStream; -HSPLsun/security/util/DerInputStream;->toByteArray()[B +HSPLsun/security/util/DerInputStream;->toByteArray()[B+]Lsun/security/util/DerInputBuffer;Lsun/security/util/DerInputBuffer; 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;->putLength(I)V+]Lsun/security/util/DerOutputStream;Lsun/security/util/DerOutputStream; HSPLsun/security/util/DerOutputStream;->putNull()V HSPLsun/security/util/DerOutputStream;->putOID(Lsun/security/util/ObjectIdentifier;)V HSPLsun/security/util/DerOutputStream;->putOctetString([B)V @@ -32109,12 +32141,12 @@ 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+]Lsun/security/util/DerInputBuffer;Lsun/security/util/DerInputBuffer; HSPLsun/security/util/DerValue;-><init>([B)V -HSPLsun/security/util/DerValue;->encode(Lsun/security/util/DerOutputStream;)V +HSPLsun/security/util/DerValue;->encode(Lsun/security/util/DerOutputStream;)V+]Lsun/security/util/DerInputBuffer;Lsun/security/util/DerInputBuffer;]Lsun/security/util/DerOutputStream;Lsun/security/util/DerOutputStream; 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;->getDataBytes()[B+]Lsun/security/util/DerInputStream;Lsun/security/util/DerInputStream; HSPLsun/security/util/DerValue;->getIA5String()Ljava/lang/String; HSPLsun/security/util/DerValue;->getInteger()I HSPLsun/security/util/DerValue;->getOID()Lsun/security/util/ObjectIdentifier; @@ -32123,23 +32155,23 @@ 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;->init(ZLjava/io/InputStream;)Lsun/security/util/DerInputStream;+]Ljava/io/InputStream;Lsun/security/util/DerInputBuffer;,Ljava/io/ByteArrayInputStream; 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;->toByteArray()[B+]Lsun/security/util/DerValue;Lsun/security/util/DerValue;]Lsun/security/util/DerOutputStream;Lsun/security/util/DerOutputStream;]Lsun/security/util/DerInputStream;Lsun/security/util/DerInputStream; HSPLsun/security/util/DerValue;->toDerInputStream()Lsun/security/util/DerInputStream; 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$Constraints;->permits(Lsun/security/util/CertConstraintParameters;)V+]Ljava/security/cert/X509Certificate;missing_types]Lsun/security/util/CertConstraintParameters;Lsun/security/util/CertConstraintParameters;]Ljava/security/PublicKey;missing_types]Lsun/security/util/DisabledAlgorithmConstraints$Constraint;Lsun/security/util/DisabledAlgorithmConstraints$KeySizeConstraint;]Ljava/util/Iterator;Ljava/util/HashMap$KeyIterator;]Ljava/util/Set;Ljava/util/HashSet; 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$KeySizeConstraint;->permitsImpl(Ljava/security/Key;)Z+]Ljava/lang/String;Ljava/lang/String;]Ljava/security/Key;missing_types 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;->checkConstraints(Ljava/util/Set;Lsun/security/util/CertConstraintParameters;)V+]Ljava/security/cert/X509Certificate;missing_types]Lsun/security/util/CertConstraintParameters;Lsun/security/util/CertConstraintParameters;]Lsun/security/util/DisabledAlgorithmConstraints;Lsun/security/util/DisabledAlgorithmConstraints;]Ljava/security/PublicKey;missing_types]Lsun/security/util/DisabledAlgorithmConstraints$Constraints;Lsun/security/util/DisabledAlgorithmConstraints$Constraints; 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 @@ -32154,23 +32186,23 @@ HSPLsun/security/util/ManifestDigester;->manifestDigest(Ljava/security/MessageDi 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;->update(B)V+]Ljava/security/MessageDigest;Ljava/security/MessageDigest$Delegate;]Ljava/util/ArrayList;Ljava/util/ArrayList; +HSPLsun/security/util/ManifestEntryVerifier;->update([BII)V+]Ljava/security/MessageDigest;Ljava/security/MessageDigest$Delegate;]Ljava/util/ArrayList;Ljava/util/ArrayList; 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;->emptyQueue()V+]Ljava/lang/ref/ReferenceQueue;Ljava/lang/ref/ReferenceQueue;]Ljava/util/Map;Ljava/util/LinkedHashMap; +HSPLsun/security/util/MemoryCache;->get(Ljava/lang/Object;)Ljava/lang/Object;+]Lsun/security/util/MemoryCache$CacheEntry;Lsun/security/util/MemoryCache$SoftCacheEntry;]Ljava/util/Map;Ljava/util/LinkedHashMap; 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;-><init>(Lsun/security/util/DerInputStream;)V+]Lsun/security/util/DerInputStream;Lsun/security/util/DerInputStream; 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/ObjectIdentifier;->toString()Ljava/lang/String;+]Ljava/lang/StringBuffer;Ljava/lang/StringBuffer; 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; @@ -32184,16 +32216,16 @@ HSPLsun/security/util/SignatureFileVerifier;->updateSigners([Ljava/security/Code 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;-><init>(Lsun/security/util/DerValue;)V+]Lsun/security/util/DerInputStream;Lsun/security/util/DerInputStream; +HSPLsun/security/x509/AVA;->derEncode(Ljava/io/OutputStream;)V+]Lsun/security/util/DerValue;Lsun/security/util/DerValue;]Lsun/security/util/DerOutputStream;Lsun/security/util/DerOutputStream;]Ljava/io/OutputStream;Lsun/security/util/DerOutputStream; 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;->toRFC2253CanonicalString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/String;Ljava/lang/String;]Lsun/security/util/DerValue;Lsun/security/util/DerValue; 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;->getKeyword(Lsun/security/util/ObjectIdentifier;ILjava/util/Map;)Ljava/lang/String;+]Lsun/security/util/ObjectIdentifier;Lsun/security/util/ObjectIdentifier;]Ljava/util/Map;Ljava/util/HashMap;,Ljava/util/Collections$EmptyMap; 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 @@ -32276,11 +32308,11 @@ 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;-><init>(Lsun/security/util/DerValue;)V+]Lsun/security/util/DerValue;Lsun/security/util/DerValue;]Lsun/security/util/DerInputStream;Lsun/security/util/DerInputStream; 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/RDN;->toRFC2253StringInternal(ZLjava/util/Map;)Ljava/lang/String;+]Lsun/security/x509/AVA;Lsun/security/x509/AVA; 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 @@ -32300,32 +32332,32 @@ HSPLsun/security/x509/X500Name;->asX500Name(Ljavax/security/auth/x500/X500Princi 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;->equals(Ljava/lang/Object;)Z+]Ljava/lang/String;Ljava/lang/String;]Lsun/security/x509/X500Name;Lsun/security/x509/X500Name; 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;->getEncodedInternal()[B+]Lsun/security/util/DerOutputStream;Lsun/security/util/DerOutputStream;]Lsun/security/x509/RDN;Lsun/security/x509/RDN; +HSPLsun/security/x509/X500Name;->getRFC2253CanonicalName()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lsun/security/x509/RDN;Lsun/security/x509/RDN; 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;->intern(Lsun/security/util/ObjectIdentifier;)Lsun/security/util/ObjectIdentifier;+]Ljava/util/Map;Ljava/util/HashMap; HSPLsun/security/x509/X500Name;->isEmpty()Z -HSPLsun/security/x509/X500Name;->parseDER(Lsun/security/util/DerInputStream;)V +HSPLsun/security/x509/X500Name;->parseDER(Lsun/security/util/DerInputStream;)V+]Lsun/security/util/DerInputStream;Lsun/security/util/DerInputStream; 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;-><init>(Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String; 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;->get(Ljava/lang/String;)Ljava/lang/Object;+]Ljava/lang/String;Ljava/lang/String;]Lsun/security/x509/X509AttributeName;Lsun/security/x509/X509AttributeName; 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;->getExtension(Lsun/security/util/ObjectIdentifier;)Lsun/security/x509/Extension;+]Lsun/security/x509/Extension;megamorphic_types]Lsun/security/util/ObjectIdentifier;Lsun/security/util/ObjectIdentifier;]Lsun/security/x509/X509CertInfo;Lsun/security/x509/X509CertInfo;]Ljava/util/Collection;Ljava/util/Collections$SynchronizedCollection;]Lsun/security/x509/CertificateExtensions;Lsun/security/x509/CertificateExtensions;]Ljava/util/Iterator;Ljava/util/TreeMap$ValueIterator; 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; @@ -32345,8 +32377,8 @@ 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;->attributeMap(Ljava/lang/String;)I+]Ljava/lang/Integer;Ljava/lang/Integer;]Ljava/util/Map;Ljava/util/HashMap; +HSPLsun/security/x509/X509CertInfo;->get(Ljava/lang/String;)Ljava/lang/Object;+]Lsun/security/x509/CertificateAlgorithmId;Lsun/security/x509/CertificateAlgorithmId;]Lsun/security/x509/X509AttributeName;Lsun/security/x509/X509AttributeName; 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 @@ -32370,10 +32402,10 @@ 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;->getCalendarDateFromFixedDate(Lsun/util/calendar/CalendarDate;J)V+]Lsun/util/calendar/BaseCalendar$Date;Lsun/util/calendar/Gregorian$Date;]Lsun/util/calendar/BaseCalendar;Lsun/util/calendar/Gregorian; 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(IIILsun/util/calendar/BaseCalendar$Date;)J+]Lsun/util/calendar/BaseCalendar$Date;Lsun/util/calendar/Gregorian$Date;]Lsun/util/calendar/BaseCalendar;Lsun/util/calendar/Gregorian; HSPLsun/util/calendar/BaseCalendar;->getFixedDate(Lsun/util/calendar/CalendarDate;)J HSPLsun/util/calendar/BaseCalendar;->getGregorianYearFromFixedDate(J)I HSPLsun/util/calendar/BaseCalendar;->isLeapYear(I)Z @@ -32382,7 +32414,7 @@ HSPLsun/util/calendar/BaseCalendar;->normalizeMonth(Lsun/util/calendar/CalendarD 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;->getDayOfWeek()I+]Lsun/util/calendar/CalendarDate;Lsun/util/calendar/Gregorian$Date; HSPLsun/util/calendar/CalendarDate;->getEra()Lsun/util/calendar/Era; HSPLsun/util/calendar/CalendarDate;->getHours()I HSPLsun/util/calendar/CalendarDate;->getMillis()I @@ -32424,8 +32456,8 @@ 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$Date;->getNormalizedYear()I+]Lsun/util/calendar/Gregorian$Date;Lsun/util/calendar/Gregorian$Date; +HSPLsun/util/calendar/Gregorian$Date;->setNormalizedYear(I)V+]Lsun/util/calendar/Gregorian$Date;Lsun/util/calendar/Gregorian$Date; 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; @@ -32450,10 +32482,10 @@ HSPLsun/util/locale/BaseLocale$Key;->-$$Nest$mgetBaseLocale(Lsun/util/locale/Bas 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+]Ljava/lang/String;Ljava/lang/String;]Lsun/util/locale/BaseLocale;Lsun/util/locale/BaseLocale; -HSPLsun/util/locale/BaseLocale$Key;->getBaseLocale()Lsun/util/locale/BaseLocale; +HSPLsun/util/locale/BaseLocale$Key;->getBaseLocale()Lsun/util/locale/BaseLocale;+]Ljava/lang/ref/SoftReference;Ljava/lang/ref/SoftReference; HSPLsun/util/locale/BaseLocale$Key;->hashCode()I HSPLsun/util/locale/BaseLocale$Key;->hashCode(Lsun/util/locale/BaseLocale;)I+]Ljava/lang/String;Ljava/lang/String;]Lsun/util/locale/BaseLocale;Lsun/util/locale/BaseLocale; -HSPLsun/util/locale/BaseLocale$Key;->normalize(Lsun/util/locale/BaseLocale$Key;)Lsun/util/locale/BaseLocale$Key; +HSPLsun/util/locale/BaseLocale$Key;->normalize(Lsun/util/locale/BaseLocale$Key;)Lsun/util/locale/BaseLocale$Key;+]Lsun/util/locale/BaseLocale;Lsun/util/locale/BaseLocale; HSPLsun/util/locale/BaseLocale;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V+]Ljava/lang/String;Ljava/lang/String; 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 @@ -32463,14 +32495,14 @@ 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/BaseLocale;->hashCode()I+]Ljava/lang/String;Ljava/lang/String; 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;->clear()Lsun/util/locale/InternalLocaleBuilder;+]Lsun/util/locale/InternalLocaleBuilder;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;->setExtensions(Ljava/util/List;Ljava/lang/String;)Lsun/util/locale/InternalLocaleBuilder;+]Lsun/util/locale/InternalLocaleBuilder;Lsun/util/locale/InternalLocaleBuilder;]Ljava/lang/String;Ljava/lang/String; 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;+]Lsun/util/locale/InternalLocaleBuilder;Lsun/util/locale/InternalLocaleBuilder;]Ljava/lang/String;Ljava/lang/String;]Lsun/util/locale/LanguageTag;Lsun/util/locale/LanguageTag;]Ljava/util/List;Ljava/util/Collections$EmptyList; HSPLsun/util/locale/InternalLocaleBuilder;->setRegion(Ljava/lang/String;)Lsun/util/locale/InternalLocaleBuilder; @@ -32480,39 +32512,39 @@ 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;->getExtensions()Ljava/util/List;+]Ljava/util/List;Ljava/util/Collections$EmptyList; +HSPLsun/util/locale/LanguageTag;->getExtlangs()Ljava/util/List;+]Ljava/util/List;Ljava/util/Collections$EmptyList; 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;->getVariants()Ljava/util/List;+]Ljava/util/List;Ljava/util/Collections$EmptyList; +HSPLsun/util/locale/LanguageTag;->isExtlang(Ljava/lang/String;)Z+]Ljava/lang/String;Ljava/lang/String; +HSPLsun/util/locale/LanguageTag;->isLanguage(Ljava/lang/String;)Z+]Ljava/lang/String;Ljava/lang/String; +HSPLsun/util/locale/LanguageTag;->isRegion(Ljava/lang/String;)Z+]Ljava/lang/String;Ljava/lang/String; +HSPLsun/util/locale/LanguageTag;->isScript(Ljava/lang/String;)Z+]Ljava/lang/String;Ljava/lang/String; 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;+]Lsun/util/locale/StringTokenIterator;Lsun/util/locale/StringTokenIterator;]Ljava/util/Map;Ljava/util/HashMap; -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;->parse(Ljava/lang/String;Lsun/util/locale/ParseStatus;)Lsun/util/locale/LanguageTag;+]Lsun/util/locale/StringTokenIterator;Lsun/util/locale/StringTokenIterator;]Ljava/util/Map;Ljava/util/HashMap;]Ljava/lang/String;Ljava/lang/String;]Lsun/util/locale/ParseStatus;Lsun/util/locale/ParseStatus; +HSPLsun/util/locale/LanguageTag;->parseExtensions(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z+]Lsun/util/locale/StringTokenIterator;Lsun/util/locale/StringTokenIterator; +HSPLsun/util/locale/LanguageTag;->parseExtlangs(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z+]Lsun/util/locale/StringTokenIterator;Lsun/util/locale/StringTokenIterator;]Lsun/util/locale/ParseStatus;Lsun/util/locale/ParseStatus; +HSPLsun/util/locale/LanguageTag;->parseLanguage(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z+]Lsun/util/locale/StringTokenIterator;Lsun/util/locale/StringTokenIterator;]Lsun/util/locale/ParseStatus;Lsun/util/locale/ParseStatus; 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/LanguageTag;->parsePrivateuse(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z+]Lsun/util/locale/StringTokenIterator;Lsun/util/locale/StringTokenIterator; +HSPLsun/util/locale/LanguageTag;->parseRegion(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z+]Lsun/util/locale/StringTokenIterator;Lsun/util/locale/StringTokenIterator;]Lsun/util/locale/ParseStatus;Lsun/util/locale/ParseStatus; +HSPLsun/util/locale/LanguageTag;->parseScript(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z+]Lsun/util/locale/StringTokenIterator;Lsun/util/locale/StringTokenIterator;]Lsun/util/locale/ParseStatus;Lsun/util/locale/ParseStatus; +HSPLsun/util/locale/LanguageTag;->parseVariants(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z+]Lsun/util/locale/StringTokenIterator;Lsun/util/locale/StringTokenIterator; 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;->cleanStaleEntries()V+]Ljava/lang/ref/ReferenceQueue;Ljava/lang/ref/ReferenceQueue; HSPLsun/util/locale/LocaleObjectCache;->get(Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/util/concurrent/ConcurrentMap;Ljava/util/concurrent/ConcurrentHashMap;]Lsun/util/locale/LocaleObjectCache;Lsun/util/locale/BaseLocale$Cache;,Ljava/util/Locale$Cache;]Lsun/util/locale/LocaleObjectCache$CacheEntry;Lsun/util/locale/LocaleObjectCache$CacheEntry; 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;->caseIgnoreMatch(Ljava/lang/String;Ljava/lang/String;)Z+]Ljava/lang/String;Ljava/lang/String; 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;->isAlphaNumericString(Ljava/lang/String;)Z+]Ljava/lang/String;Ljava/lang/String; +HSPLsun/util/locale/LocaleUtils;->isAlphaString(Ljava/lang/String;)Z+]Ljava/lang/String;Ljava/lang/String; 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/List;)Z+]Ljava/util/List;Ljava/util/Collections$EmptyList; 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 @@ -32523,17 +32555,17 @@ HSPLsun/util/locale/LocaleUtils;->toLower(C)C HSPLsun/util/locale/LocaleUtils;->toLowerString(Ljava/lang/String;)Ljava/lang/String;+]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;-><init>()V+]Lsun/util/locale/ParseStatus;Lsun/util/locale/ParseStatus; 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;-><init>(Ljava/lang/String;Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String;]Lsun/util/locale/StringTokenIterator;Lsun/util/locale/StringTokenIterator; HSPLsun/util/locale/StringTokenIterator;->current()Ljava/lang/String; HSPLsun/util/locale/StringTokenIterator;->currentEnd()I -HSPLsun/util/locale/StringTokenIterator;->hasNext()Z +HSPLsun/util/locale/StringTokenIterator;->hasNext()Z+]Ljava/lang/String;Ljava/lang/String; 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/StringTokenIterator;->next()Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Lsun/util/locale/StringTokenIterator;Lsun/util/locale/StringTokenIterator; +HSPLsun/util/locale/StringTokenIterator;->nextDelimiter(I)I+]Ljava/lang/String;Ljava/lang/String; +HSPLsun/util/locale/StringTokenIterator;->setStart(I)Lsun/util/locale/StringTokenIterator;+]Ljava/lang/String;Ljava/lang/String; 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; diff --git a/core/api/current.txt b/core/api/current.txt index 87f5b3c1cb3b..1c9adcb595d1 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -4464,6 +4464,7 @@ package android.app { method public boolean onPreparePanel(int, @Nullable android.view.View, @NonNull android.view.Menu); method public void onProvideAssistContent(android.app.assist.AssistContent); method public void onProvideAssistData(android.os.Bundle); + method public void onProvideKeyboardShortcuts(java.util.List<android.view.KeyboardShortcutGroup>, android.view.Menu, int); method public android.net.Uri onProvideReferrer(); method public void onRequestPermissionsResult(int, @NonNull String[], @NonNull int[]); method @FlaggedApi("android.permission.flags.device_aware_permission_apis") public void onRequestPermissionsResult(int, @NonNull String[], @NonNull int[], int); @@ -5315,11 +5316,15 @@ package android.app { method public android.net.Uri getConditionId(); method @Nullable public android.content.ComponentName getConfigurationActivity(); method public long getCreationTime(); + method @FlaggedApi("android.app.modes_api") @DrawableRes public int getIconResId(); method public int getInterruptionFilter(); method public String getName(); method public android.content.ComponentName getOwner(); + method @FlaggedApi("android.app.modes_api") @Nullable public String getTriggerDescription(); + method @FlaggedApi("android.app.modes_api") public int getType(); method public android.service.notification.ZenPolicy getZenPolicy(); method public boolean isEnabled(); + method @FlaggedApi("android.app.modes_api") public boolean isManualInvocationAllowed(); method public void setConditionId(android.net.Uri); method public void setConfigurationActivity(@Nullable android.content.ComponentName); method public void setEnabled(boolean); @@ -5328,6 +5333,32 @@ package android.app { method public void setZenPolicy(android.service.notification.ZenPolicy); method public void writeToParcel(android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.app.AutomaticZenRule> CREATOR; + field @FlaggedApi("android.app.modes_api") public static final int TYPE_BEDTIME = 3; // 0x3 + field @FlaggedApi("android.app.modes_api") public static final int TYPE_DRIVING = 4; // 0x4 + field @FlaggedApi("android.app.modes_api") public static final int TYPE_IMMERSIVE = 5; // 0x5 + field @FlaggedApi("android.app.modes_api") public static final int TYPE_MANAGED = 7; // 0x7 + field @FlaggedApi("android.app.modes_api") public static final int TYPE_OTHER = 0; // 0x0 + field @FlaggedApi("android.app.modes_api") public static final int TYPE_SCHEDULE_CALENDAR = 2; // 0x2 + field @FlaggedApi("android.app.modes_api") public static final int TYPE_SCHEDULE_TIME = 1; // 0x1 + field @FlaggedApi("android.app.modes_api") public static final int TYPE_THEATER = 6; // 0x6 + field @FlaggedApi("android.app.modes_api") public static final int TYPE_UNKNOWN = -1; // 0xffffffff + } + + @FlaggedApi("android.app.modes_api") public static final class AutomaticZenRule.Builder { + ctor public AutomaticZenRule.Builder(@NonNull android.app.AutomaticZenRule); + ctor public AutomaticZenRule.Builder(@NonNull String, @NonNull android.net.Uri); + method @NonNull public android.app.AutomaticZenRule build(); + method @NonNull public android.app.AutomaticZenRule.Builder setConditionId(@NonNull android.net.Uri); + method @NonNull public android.app.AutomaticZenRule.Builder setConfigurationActivity(@Nullable android.content.ComponentName); + method @NonNull public android.app.AutomaticZenRule.Builder setEnabled(boolean); + method @NonNull public android.app.AutomaticZenRule.Builder setIconResId(@DrawableRes int); + method @NonNull public android.app.AutomaticZenRule.Builder setInterruptionFilter(int); + method @NonNull public android.app.AutomaticZenRule.Builder setManualInvocationAllowed(boolean); + method @NonNull public android.app.AutomaticZenRule.Builder setName(@NonNull String); + method @NonNull public android.app.AutomaticZenRule.Builder setOwner(@Nullable android.content.ComponentName); + method @NonNull public android.app.AutomaticZenRule.Builder setTriggerDescription(@Nullable String); + method @NonNull public android.app.AutomaticZenRule.Builder setType(int); + method @NonNull public android.app.AutomaticZenRule.Builder setZenPolicy(@Nullable android.service.notification.ZenPolicy); } public final class BackgroundServiceStartNotAllowedException extends android.app.ServiceStartNotAllowedException implements android.os.Parcelable { @@ -6921,6 +6952,8 @@ package android.app { field public static final String ACTION_NOTIFICATION_CHANNEL_GROUP_BLOCK_STATE_CHANGED = "android.app.action.NOTIFICATION_CHANNEL_GROUP_BLOCK_STATE_CHANGED"; field public static final String ACTION_NOTIFICATION_POLICY_ACCESS_GRANTED_CHANGED = "android.app.action.NOTIFICATION_POLICY_ACCESS_GRANTED_CHANGED"; field public static final String ACTION_NOTIFICATION_POLICY_CHANGED = "android.app.action.NOTIFICATION_POLICY_CHANGED"; + field @FlaggedApi("android.app.modes_api") public static final int AUTOMATIC_RULE_STATUS_ACTIVATED = 4; // 0x4 + field @FlaggedApi("android.app.modes_api") public static final int AUTOMATIC_RULE_STATUS_DEACTIVATED = 5; // 0x5 field public static final int AUTOMATIC_RULE_STATUS_DISABLED = 2; // 0x2 field public static final int AUTOMATIC_RULE_STATUS_ENABLED = 1; // 0x1 field public static final int AUTOMATIC_RULE_STATUS_REMOVED = 3; // 0x3 @@ -13943,6 +13976,7 @@ package android.database { method public String getColumnName(int); method public android.os.Bundle getExtras(); method public android.net.Uri getNotificationUri(); + method public java.util.List<android.net.Uri> getNotificationUris(); method public final int getPosition(); method public int getType(int); method @Deprecated protected Object getUpdatedField(int); @@ -13968,6 +14002,7 @@ package android.database { method public android.os.Bundle respond(android.os.Bundle); method public void setExtras(android.os.Bundle); method public void setNotificationUri(android.content.ContentResolver, android.net.Uri); + method public void setNotificationUris(@NonNull android.content.ContentResolver, @NonNull java.util.List<android.net.Uri>); method public void unregisterContentObserver(android.database.ContentObserver); method public void unregisterDataSetObserver(android.database.DataSetObserver); field @Deprecated protected boolean mClosed; @@ -14099,6 +14134,7 @@ package android.database { method public boolean hasNext(); method public java.util.Iterator<android.database.CursorJoiner.Result> iterator(); method public android.database.CursorJoiner.Result next(); + method public void remove(); } public enum CursorJoiner.Result { @@ -14166,6 +14202,7 @@ package android.database { method public int getInt(int); method public long getLong(int); method public android.net.Uri getNotificationUri(); + method public java.util.List<android.net.Uri> getNotificationUris(); method public int getPosition(); method public short getShort(int); method public String getString(int); @@ -14190,6 +14227,7 @@ package android.database { method public android.os.Bundle respond(android.os.Bundle); method public void setExtras(android.os.Bundle); method public void setNotificationUri(android.content.ContentResolver, android.net.Uri); + method public void setNotificationUris(android.content.ContentResolver, java.util.List<android.net.Uri>); method public void unregisterContentObserver(android.database.ContentObserver); method public void unregisterDataSetObserver(android.database.DataSetObserver); } @@ -22183,6 +22221,9 @@ package android.media { ctor public MediaCodec.CryptoException(int, @Nullable String); method @Nullable public android.media.MediaCodec.CryptoInfo getCryptoInfo(); method public int getErrorCode(); + method public int getErrorContext(); + method public int getOemError(); + method public int getVendorError(); field @Deprecated public static final int ERROR_FRAME_TOO_LARGE = 8; // 0x8 field @Deprecated public static final int ERROR_INSUFFICIENT_OUTPUT_PROTECTION = 4; // 0x4 field @Deprecated public static final int ERROR_INSUFFICIENT_SECURITY = 7; // 0x7 @@ -22695,6 +22736,9 @@ package android.media { public final class MediaCryptoException extends java.lang.Exception implements android.media.MediaDrmThrowable { ctor public MediaCryptoException(@Nullable String); + method public int getErrorContext(); + method public int getOemError(); + method public int getVendorError(); } public abstract class MediaDataSource implements java.io.Closeable { @@ -22919,6 +22963,9 @@ package android.media { public static final class MediaDrm.MediaDrmStateException extends java.lang.IllegalStateException implements android.media.MediaDrmThrowable { method @NonNull public String getDiagnosticInfo(); method public int getErrorCode(); + method public int getErrorContext(); + method public int getOemError(); + method public int getVendorError(); method public boolean isTransient(); } @@ -22992,6 +23039,9 @@ package android.media { public static final class MediaDrm.SessionException extends java.lang.RuntimeException implements android.media.MediaDrmThrowable { ctor public MediaDrm.SessionException(int, @Nullable String); method @Deprecated public int getErrorCode(); + method public int getErrorContext(); + method public int getOemError(); + method public int getVendorError(); method public boolean isTransient(); field @Deprecated public static final int ERROR_RESOURCE_CONTENTION = 1; // 0x1 field @Deprecated public static final int ERROR_UNKNOWN = 0; // 0x0 @@ -22999,6 +23049,9 @@ package android.media { public class MediaDrmException extends java.lang.Exception implements android.media.MediaDrmThrowable { ctor public MediaDrmException(String); + method public int getErrorContext(); + method public int getOemError(); + method public int getVendorError(); } public class MediaDrmResetException extends java.lang.IllegalStateException implements android.media.MediaDrmThrowable { @@ -31888,6 +31941,7 @@ package android.opengl { method public void surfaceCreated(android.view.SurfaceHolder); method public void surfaceDestroyed(android.view.SurfaceHolder); method @Deprecated public void surfaceRedrawNeeded(android.view.SurfaceHolder); + method public void surfaceRedrawNeededAsync(android.view.SurfaceHolder, Runnable); field public static final int DEBUG_CHECK_GL_ERROR = 1; // 0x1 field public static final int DEBUG_LOG_GL_CALLS = 2; // 0x2 field public static final int RENDERMODE_CONTINUOUSLY = 1; // 0x1 @@ -43192,6 +43246,7 @@ package android.telephony { field public static final String KEY_RTT_UPGRADE_SUPPORTED_BOOL = "rtt_upgrade_supported_bool"; field public static final String KEY_RTT_UPGRADE_SUPPORTED_FOR_DOWNGRADED_VT_CALL_BOOL = "rtt_upgrade_supported_for_downgraded_vt_call"; field @FlaggedApi("com.android.internal.telephony.flags.carrier_enabled_satellite_flag") public static final String KEY_SATELLITE_ATTACH_SUPPORTED_BOOL = "satellite_attach_supported_bool"; + field @FlaggedApi("com.android.internal.telephony.flags.carrier_enabled_satellite_flag") public static final String KEY_SATELLITE_CONNECTION_HYSTERESIS_SEC_INT = "satellite_connection_hysteresis_sec_int"; field public static final String KEY_SHOW_4G_FOR_3G_DATA_ICON_BOOL = "show_4g_for_3g_data_icon_bool"; field public static final String KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL = "show_4g_for_lte_data_icon_bool"; field public static final String KEY_SHOW_APN_SETTING_CDMA_BOOL = "show_apn_setting_cdma_bool"; @@ -45461,7 +45516,7 @@ package android.telephony { field public static final int ERI_FLASH = 2; // 0x2 field public static final int ERI_OFF = 1; // 0x1 field public static final int ERI_ON = 0; // 0x0 - field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final String EVENT_DISPLAY_SOS_MESSAGE = "android.telephony.event.DISPLAY_SOS_MESSAGE"; + field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final String EVENT_DISPLAY_EMERGENCY_MESSAGE = "android.telephony.event.DISPLAY_EMERGENCY_MESSAGE"; field public static final String EXTRA_ACTIVE_SIM_SUPPORTED_COUNT = "android.telephony.extra.ACTIVE_SIM_SUPPORTED_COUNT"; field public static final String EXTRA_APN_PROTOCOL = "android.telephony.extra.APN_PROTOCOL"; field public static final String EXTRA_APN_TYPE = "android.telephony.extra.APN_TYPE"; @@ -45470,6 +45525,8 @@ package android.telephony { field public static final String EXTRA_CARRIER_NAME = "android.telephony.extra.CARRIER_NAME"; field public static final String EXTRA_DATA_FAIL_CAUSE = "android.telephony.extra.DATA_FAIL_CAUSE"; field public static final String EXTRA_DEFAULT_NETWORK_AVAILABLE = "android.telephony.extra.DEFAULT_NETWORK_AVAILABLE"; + field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final String EXTRA_EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE = "android.telephony.extra.EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE"; + field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final String EXTRA_EMERGENCY_CALL_TO_SATELLITE_LAUNCH_INTENT = "android.telephony.extra.EMERGENCY_CALL_TO_SATELLITE_LAUNCH_INTENT"; field public static final String EXTRA_HIDE_PUBLIC_SETTINGS = "android.telephony.extra.HIDE_PUBLIC_SETTINGS"; field @Deprecated public static final String EXTRA_INCOMING_NUMBER = "incoming_number"; field public static final String EXTRA_IS_REFRESH = "android.telephony.extra.IS_REFRESH"; @@ -47429,6 +47486,7 @@ package android.text { method public boolean hasNext(); method public java.util.Iterator<java.lang.String> iterator(); method public String next(); + method public void remove(); method public void setString(String); } @@ -48894,6 +48952,7 @@ package android.util { method public void ensureCapacity(int); method public java.util.Set<java.util.Map.Entry<K,V>> entrySet(); method public boolean equals(@Nullable Object); + method public void forEach(java.util.function.BiConsumer<? super K,? super V>); method public V get(Object); method public int hashCode(); method public int indexOfKey(Object); @@ -48907,6 +48966,7 @@ package android.util { method public V remove(Object); method public boolean removeAll(java.util.Collection<?>); method public V removeAt(int); + method public void replaceAll(java.util.function.BiFunction<? super K,? super V,? extends V>); method public boolean retainAll(java.util.Collection<?>); method public V setValueAt(int, V); method public int size(); @@ -48937,6 +48997,7 @@ package android.util { method public boolean removeAll(android.util.ArraySet<? extends E>); method public boolean removeAll(java.util.Collection<?>); method public E removeAt(int); + method public boolean removeIf(java.util.function.Predicate<? super E>); method public boolean retainAll(java.util.Collection<?>); method public int size(); method public Object[] toArray(); @@ -51916,6 +51977,7 @@ package android.view { method public android.view.PointerIcon getPointerIcon(); method @NonNull public final java.util.List<android.graphics.Rect> getPreferKeepClearRects(); method @Nullable public String[] getReceiveContentMimeTypes(); + method @FlaggedApi("android.view.flags.toolkit_set_frame_rate_read_only") public float getRequestedFrameRate(); method public android.content.res.Resources getResources(); method public final boolean getRevealOnFocusHint(); method public final int getRight(); @@ -52292,6 +52354,7 @@ package android.view { method public final void setPreferKeepClearRects(@NonNull java.util.List<android.graphics.Rect>); method public void setPressed(boolean); method public void setRenderEffect(@Nullable android.graphics.RenderEffect); + method @FlaggedApi("android.view.flags.toolkit_set_frame_rate_read_only") public void setRequestedFrameRate(float); method public final void setRevealOnFocusHint(boolean); method public final void setRight(int); method public void setRotation(float); @@ -52474,6 +52537,11 @@ package android.view { field protected static final int[] PRESSED_SELECTED_WINDOW_FOCUSED_STATE_SET; field protected static final int[] PRESSED_STATE_SET; field protected static final int[] PRESSED_WINDOW_FOCUSED_STATE_SET; + field @FlaggedApi("android.view.flags.toolkit_set_frame_rate_read_only") public static final float REQUESTED_FRAME_RATE_CATEGORY_DEFAULT = 0.0f; + field @FlaggedApi("android.view.flags.toolkit_set_frame_rate_read_only") public static final float REQUESTED_FRAME_RATE_CATEGORY_HIGH = -120.0f; + field @FlaggedApi("android.view.flags.toolkit_set_frame_rate_read_only") public static final float REQUESTED_FRAME_RATE_CATEGORY_LOW = -30.0f; + field @FlaggedApi("android.view.flags.toolkit_set_frame_rate_read_only") public static final float REQUESTED_FRAME_RATE_CATEGORY_NORMAL = -60.0f; + field @FlaggedApi("android.view.flags.toolkit_set_frame_rate_read_only") public static final float REQUESTED_FRAME_RATE_CATEGORY_NO_PREFERENCE = -1.0f; field public static final android.util.Property<android.view.View,java.lang.Float> ROTATION; field public static final android.util.Property<android.view.View,java.lang.Float> ROTATION_X; field public static final android.util.Property<android.view.View,java.lang.Float> ROTATION_Y; @@ -52804,6 +52872,7 @@ package android.view { method protected void dispatchThawSelfOnly(android.util.SparseArray<android.os.Parcelable>); method protected boolean drawChild(@NonNull android.graphics.Canvas, android.view.View, long); method public void endViewTransition(android.view.View); + method @Nullable public android.window.OnBackInvokedDispatcher findOnBackInvokedDispatcherForChild(@NonNull android.view.View, @NonNull android.view.View); method public android.view.View focusSearch(android.view.View, int); method public void focusableViewAvailable(android.view.View); method protected android.view.ViewGroup.LayoutParams generateDefaultLayoutParams(); @@ -52845,6 +52914,7 @@ package android.view { method public void notifySubtreeAccessibilityStateChanged(android.view.View, android.view.View, int); method public final void offsetDescendantRectToMyCoords(android.view.View, android.graphics.Rect); method public final void offsetRectIntoDescendantCoords(android.view.View, android.graphics.Rect); + method @CallSuper public void onDescendantInvalidated(@NonNull android.view.View, @NonNull android.view.View); method public boolean onInterceptHoverEvent(android.view.MotionEvent); method public boolean onInterceptTouchEvent(android.view.MotionEvent); method protected abstract void onLayout(boolean, int, int, int, int); @@ -55028,12 +55098,14 @@ package android.view.inputmethod { method @Nullable public android.view.inputmethod.ExtractedText getExtractedText(android.view.inputmethod.ExtractedTextRequest, int); method @Nullable public android.os.Handler getHandler(); method @Nullable public CharSequence getSelectedText(int); + method @Nullable public android.view.inputmethod.SurroundingText getSurroundingText(@IntRange(from=0) int, @IntRange(from=0) int, int); method @Nullable public CharSequence getTextAfterCursor(@IntRange(from=0) int, int); method @Nullable public CharSequence getTextBeforeCursor(@IntRange(from=0) int, int); method public boolean performContextMenuAction(int); method public boolean performEditorAction(int); method public boolean performPrivateCommand(String, android.os.Bundle); method public static final void removeComposingSpans(@NonNull android.text.Spannable); + method public boolean replaceText(@IntRange(from=0) int, @IntRange(from=0) int, @NonNull CharSequence, int, @Nullable android.view.inputmethod.TextAttribute); method public boolean reportFullscreenMode(boolean); method public boolean requestCursorUpdates(int); method public boolean sendKeyEvent(android.view.KeyEvent); @@ -55041,6 +55113,7 @@ package android.view.inputmethod { method public static void setComposingSpans(@NonNull android.text.Spannable); method public boolean setComposingText(CharSequence, int); method public boolean setSelection(int, int); + method @Nullable public android.view.inputmethod.TextSnapshot takeSnapshot(); } public final class CompletionInfo implements android.os.Parcelable { @@ -55377,6 +55450,7 @@ package android.view.inputmethod { method public boolean commitContent(android.view.inputmethod.InputContentInfo, int, android.os.Bundle); method public boolean commitCorrection(android.view.inputmethod.CorrectionInfo); method public boolean commitText(CharSequence, int); + method public boolean commitText(@NonNull CharSequence, int, @Nullable android.view.inputmethod.TextAttribute); method public boolean deleteSurroundingText(int, int); method public boolean deleteSurroundingTextInCodePoints(int, int); method public boolean endBatchEdit(); @@ -55385,18 +55459,29 @@ package android.view.inputmethod { method public android.view.inputmethod.ExtractedText getExtractedText(android.view.inputmethod.ExtractedTextRequest, int); method public android.os.Handler getHandler(); method public CharSequence getSelectedText(int); + method @Nullable public android.view.inputmethod.SurroundingText getSurroundingText(int, int, int); method @Nullable public CharSequence getTextAfterCursor(@IntRange(from=0) int, int); method @Nullable public CharSequence getTextBeforeCursor(@IntRange(from=0) int, int); method public boolean performContextMenuAction(int); method public boolean performEditorAction(int); + method public void performHandwritingGesture(@NonNull android.view.inputmethod.HandwritingGesture, @Nullable java.util.concurrent.Executor, @Nullable java.util.function.IntConsumer); method public boolean performPrivateCommand(String, android.os.Bundle); + method public boolean performSpellCheck(); + method public boolean previewHandwritingGesture(@NonNull android.view.inputmethod.PreviewableHandwritingGesture, @Nullable android.os.CancellationSignal); + method public boolean replaceText(@IntRange(from=0) int, @IntRange(from=0) int, @NonNull CharSequence, int, @Nullable android.view.inputmethod.TextAttribute); method public boolean reportFullscreenMode(boolean); method public boolean requestCursorUpdates(int); + method public boolean requestCursorUpdates(int, int); + method public void requestTextBoundsInfo(@NonNull android.graphics.RectF, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.view.inputmethod.TextBoundsInfoResult>); method public boolean sendKeyEvent(android.view.KeyEvent); method public boolean setComposingRegion(int, int); + method public boolean setComposingRegion(int, int, @Nullable android.view.inputmethod.TextAttribute); method public boolean setComposingText(CharSequence, int); + method public boolean setComposingText(@NonNull CharSequence, int, @Nullable android.view.inputmethod.TextAttribute); + method public boolean setImeConsumesInput(boolean); method public boolean setSelection(int, int); method public void setTarget(android.view.inputmethod.InputConnection); + method @Nullable public android.view.inputmethod.TextSnapshot takeSnapshot(); } public final class InputContentInfo implements android.os.Parcelable { @@ -57963,6 +58048,7 @@ package android.widget { public abstract class BaseAdapter implements android.widget.ListAdapter android.widget.SpinnerAdapter { ctor public BaseAdapter(); method public boolean areAllItemsEnabled(); + method public CharSequence[] getAutofillOptions(); method public android.view.View getDropDownView(int, android.view.View, android.view.ViewGroup); method public int getItemViewType(int); method public int getViewTypeCount(); diff --git a/core/api/lint-baseline.txt b/core/api/lint-baseline.txt index 1e6aa498f417..1308b1fc578b 100644 --- a/core/api/lint-baseline.txt +++ b/core/api/lint-baseline.txt @@ -1,4 +1,40 @@ // Baseline format: 1.0 +BannedThrow: android.database.sqlite.SQLiteRawStatement#bindBlob(int, byte[]): + Methods must not throw unchecked exceptions +BannedThrow: android.database.sqlite.SQLiteRawStatement#bindBlob(int, byte[], int, int): + Methods must not throw unchecked exceptions +BannedThrow: android.database.sqlite.SQLiteRawStatement#bindDouble(int, double): + Methods must not throw unchecked exceptions +BannedThrow: android.database.sqlite.SQLiteRawStatement#bindInt(int, int): + Methods must not throw unchecked exceptions +BannedThrow: android.database.sqlite.SQLiteRawStatement#bindLong(int, long): + Methods must not throw unchecked exceptions +BannedThrow: android.database.sqlite.SQLiteRawStatement#bindNull(int): + Methods must not throw unchecked exceptions +BannedThrow: android.database.sqlite.SQLiteRawStatement#bindText(int, String): + Methods must not throw unchecked exceptions +BannedThrow: android.database.sqlite.SQLiteRawStatement#getColumnBlob(int): + Methods must not throw unchecked exceptions +BannedThrow: android.database.sqlite.SQLiteRawStatement#getColumnDouble(int): + Methods must not throw unchecked exceptions +BannedThrow: android.database.sqlite.SQLiteRawStatement#getColumnInt(int): + Methods must not throw unchecked exceptions +BannedThrow: android.database.sqlite.SQLiteRawStatement#getColumnLength(int): + Methods must not throw unchecked exceptions +BannedThrow: android.database.sqlite.SQLiteRawStatement#getColumnLong(int): + Methods must not throw unchecked exceptions +BannedThrow: android.database.sqlite.SQLiteRawStatement#getColumnName(int): + Methods must not throw unchecked exceptions +BannedThrow: android.database.sqlite.SQLiteRawStatement#getColumnText(int): + Methods must not throw unchecked exceptions +BannedThrow: android.database.sqlite.SQLiteRawStatement#getColumnType(int): + Methods must not throw unchecked exceptions +BannedThrow: android.database.sqlite.SQLiteRawStatement#readColumnBlob(int, byte[], int, int, int): + Methods must not throw unchecked exceptions +BannedThrow: android.database.sqlite.SQLiteRawStatement#step(): + Methods must not throw unchecked exceptions + + BroadcastBehavior: android.app.AlarmManager#ACTION_NEXT_ALARM_CLOCK_CHANGED: Field 'ACTION_NEXT_ALARM_CLOCK_CHANGED' is missing @BroadcastBehavior BroadcastBehavior: android.app.AlarmManager#ACTION_SCHEDULE_EXACT_ALARM_PERMISSION_STATE_CHANGED: @@ -1497,20 +1533,8 @@ UnflaggedApi: android.provider.Settings#ACTION_CREDENTIAL_PROVIDER: New API must be flagged with @FlaggedApi: field android.provider.Settings.ACTION_CREDENTIAL_PROVIDER UnflaggedApi: android.telecom.Call.Details#getId(): New API must be flagged with @FlaggedApi: method android.telecom.Call.Details.getId() -UnflaggedApi: android.telephony.CarrierConfigManager#KEY_CARRIER_SUPPORTED_SATELLITE_SERVICES_PER_PROVIDER_BUNDLE: - New API must be flagged with @FlaggedApi: field android.telephony.CarrierConfigManager.KEY_CARRIER_SUPPORTED_SATELLITE_SERVICES_PER_PROVIDER_BUNDLE -UnflaggedApi: android.telephony.DisconnectCause#SATELLITE_ENABLED: - New API must be flagged with @FlaggedApi: field android.telephony.DisconnectCause.SATELLITE_ENABLED -UnflaggedApi: android.telephony.NetworkRegistrationInfo#SERVICE_TYPE_MMS: - New API must be flagged with @FlaggedApi: field android.telephony.NetworkRegistrationInfo.SERVICE_TYPE_MMS -UnflaggedApi: android.telephony.NetworkRegistrationInfo#isNonTerrestrialNetwork(): - New API must be flagged with @FlaggedApi: method android.telephony.NetworkRegistrationInfo.isNonTerrestrialNetwork() UnflaggedApi: android.telephony.PhoneNumberUtils#isWpsCallNumber(String): New API must be flagged with @FlaggedApi: method android.telephony.PhoneNumberUtils.isWpsCallNumber(String) -UnflaggedApi: android.telephony.ServiceState#isUsingNonTerrestrialNetwork(): - New API must be flagged with @FlaggedApi: method android.telephony.ServiceState.isUsingNonTerrestrialNetwork() -UnflaggedApi: android.telephony.TelephonyManager#EVENT_DISPLAY_SOS_MESSAGE: - New API must be flagged with @FlaggedApi: field android.telephony.TelephonyManager.EVENT_DISPLAY_SOS_MESSAGE UnflaggedApi: android.telephony.TelephonyManager#PURCHASE_PREMIUM_CAPABILITY_RESULT_USER_DISABLED: New API must be flagged with @FlaggedApi: field android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_USER_DISABLED UnflaggedApi: android.text.DynamicLayout.Builder#setLineBreakConfig(android.graphics.text.LineBreakConfig): diff --git a/core/api/module-lib-current.txt b/core/api/module-lib-current.txt index 07374963bea0..df466ab9b5bb 100644 --- a/core/api/module-lib-current.txt +++ b/core/api/module-lib-current.txt @@ -144,7 +144,6 @@ package android.content.pm { } public abstract class PackageManager { - method @NonNull public String getPermissionControllerPackageName(); method @NonNull public String getSdkSandboxPackageName(); method @RequiresPermission(android.Manifest.permission.MAKE_UID_VISIBLE) public void makeUidVisible(int, int); field public static final String EXTRA_VERIFICATION_ROOT_HASH = "android.content.pm.extra.VERIFICATION_ROOT_HASH"; diff --git a/core/api/system-current.txt b/core/api/system-current.txt index 739fdc59ed5d..8d480e5bc8f4 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -632,6 +632,7 @@ package android.app { field public static final String OPSTR_CAPTURE_CONSENTLESS_BUGREPORT_ON_USERDEBUG_BUILD = "android:capture_consentless_bugreport_on_userdebug_build"; field public static final String OPSTR_CHANGE_WIFI_STATE = "android:change_wifi_state"; field @FlaggedApi("android.view.contentprotection.flags.create_accessibility_overlay_app_op_enabled") public static final String OPSTR_CREATE_ACCESSIBILITY_OVERLAY = "android:create_accessibility_overlay"; + field @FlaggedApi("android.permission.flags.op_enable_mobile_data_by_user") public static final String OPSTR_ENABLE_MOBILE_DATA_BY_USER = "android:enable_mobile_data_by_user"; field public static final String OPSTR_ESTABLISH_VPN_MANAGER = "android:establish_vpn_manager"; field public static final String OPSTR_ESTABLISH_VPN_SERVICE = "android:establish_vpn_service"; field public static final String OPSTR_GET_ACCOUNTS = "android:get_accounts"; @@ -3916,6 +3917,7 @@ package android.content.pm { method @Deprecated @NonNull public abstract java.util.List<android.content.pm.IntentFilterVerificationInfo> getIntentFilterVerifications(@NonNull String); method @Deprecated @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public abstract int getIntentVerificationStatusAsUser(@NonNull String, int); method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public int getPackageUidAsUser(@NonNull String, @NonNull android.content.pm.PackageManager.PackageInfoFlags, int) throws android.content.pm.PackageManager.NameNotFoundException; + method @NonNull public String getPermissionControllerPackageName(); method @android.content.pm.PackageManager.PermissionFlags @RequiresPermission(anyOf={android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS, android.Manifest.permission.REVOKE_RUNTIME_PERMISSIONS, android.Manifest.permission.GET_RUNTIME_PERMISSIONS}) public abstract int getPermissionFlags(@NonNull String, @NonNull String, @NonNull android.os.UserHandle); method @NonNull @RequiresPermission(android.Manifest.permission.SUSPEND_APPS) public String[] getUnsuspendablePackages(@NonNull String[]); method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS) public abstract void grantRuntimePermission(@NonNull String, @NonNull String, @NonNull android.os.UserHandle); @@ -9733,6 +9735,7 @@ package android.nfc.cardemulation { method @FlaggedApi("android.nfc.enable_nfc_mainline") public int getUid(); method @FlaggedApi("android.nfc.enable_nfc_mainline") public boolean hasCategory(@NonNull String); method @FlaggedApi("android.nfc.enable_nfc_mainline") public boolean isOnHost(); + method @FlaggedApi("android.nfc.enable_nfc_mainline") public boolean isOtherServiceEnabled(); method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public CharSequence loadAppLabel(@NonNull android.content.pm.PackageManager); method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public android.graphics.drawable.Drawable loadBanner(@NonNull android.content.pm.PackageManager); method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public android.graphics.drawable.Drawable loadIcon(@NonNull android.content.pm.PackageManager); @@ -9743,6 +9746,7 @@ package android.nfc.cardemulation { method @FlaggedApi("android.nfc.enable_nfc_mainline") public void resetOffHostSecureElement(); method @FlaggedApi("android.nfc.enable_nfc_mainline") public void setDynamicAidGroup(@NonNull android.nfc.cardemulation.AidGroup); method @FlaggedApi("android.nfc.enable_nfc_mainline") public void setOffHostSecureElement(@NonNull String); + method @FlaggedApi("android.nfc.enable_nfc_mainline") public void setOtherServiceEnabled(boolean); method @FlaggedApi("android.nfc.enable_nfc_mainline") public void writeToParcel(@NonNull android.os.Parcel, int); field @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public static final android.os.Parcelable.Creator<android.nfc.cardemulation.ApduServiceInfo> CREATOR; } @@ -10225,6 +10229,7 @@ package android.os { ctor public ParcelableHolder(int); method public int describeContents(); method @Nullable public <T extends android.os.Parcelable> T getParcelable(@NonNull Class<T>); + method public int getStability(); method public void readFromParcel(@NonNull android.os.Parcel); method public void setParcelable(@Nullable android.os.Parcelable); method public void writeToParcel(@NonNull android.os.Parcel, int); @@ -16881,6 +16886,8 @@ package android.telephony.satellite { field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int DISPLAY_MODE_FIXED = 1; // 0x1 field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int DISPLAY_MODE_OPENED = 2; // 0x2 field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int DISPLAY_MODE_UNKNOWN = 0; // 0x0 + field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE_SOS = 1; // 0x1 + field @FlaggedApi("com.android.internal.telephony.flags.carrier_enabled_satellite_flag") public static final int EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE_T911 = 2; // 0x2 field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int NT_RADIO_TECHNOLOGY_EMTC_NTN = 3; // 0x3 field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int NT_RADIO_TECHNOLOGY_NB_IOT_NTN = 1; // 0x1 field @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public static final int NT_RADIO_TECHNOLOGY_NR_NTN = 2; // 0x2 diff --git a/core/api/test-current.txt b/core/api/test-current.txt index b2bfda1daf41..8b20720418b6 100644 --- a/core/api/test-current.txt +++ b/core/api/test-current.txt @@ -3592,8 +3592,8 @@ package android.view { field public static final int ACCESSIBILITY_TITLE_CHANGED = 33554432; // 0x2000000 field public static final int FLAG_SLIPPERY = 536870912; // 0x20000000 field public CharSequence accessibilityTitle; - field @FlaggedApi("android.view.flags.wm_display_refresh_rate_test") public float preferredMaxDisplayRefreshRate; - field @FlaggedApi("android.view.flags.wm_display_refresh_rate_test") public float preferredMinDisplayRefreshRate; + field public float preferredMaxDisplayRefreshRate; + field public float preferredMinDisplayRefreshRate; field public int privateFlags; } diff --git a/core/api/test-lint-baseline.txt b/core/api/test-lint-baseline.txt index 559db514dabf..3a91e25de9e6 100644 --- a/core/api/test-lint-baseline.txt +++ b/core/api/test-lint-baseline.txt @@ -1,4 +1,8 @@ // Baseline format: 1.0 +BannedThrow: android.os.vibrator.persistence.VibrationXmlSerializer#serialize(android.os.VibrationEffect, java.io.Writer): + Methods must not throw unchecked exceptions + + BroadcastBehavior: android.app.AlarmManager#ACTION_NEXT_ALARM_CLOCK_CHANGED: Field 'ACTION_NEXT_ALARM_CLOCK_CHANGED' is missing @BroadcastBehavior BroadcastBehavior: android.app.AlarmManager#ACTION_SCHEDULE_EXACT_ALARM_PERMISSION_STATE_CHANGED: diff --git a/core/java/Android.bp b/core/java/Android.bp index ddb221f422d9..48cafc596d87 100644 --- a/core/java/Android.bp +++ b/core/java/Android.bp @@ -226,7 +226,6 @@ filegroup { "com/android/internal/util/ConcurrentUtils.java", "com/android/internal/util/DumpUtils.java", "com/android/internal/util/FastPrintWriter.java", - "com/android/internal/util/FastXmlSerializer.java", "com/android/internal/util/FunctionalUtils.java", "com/android/internal/util/ParseUtils.java", "com/android/internal/util/RingBufferIndices.java", @@ -465,7 +464,6 @@ filegroup { "com/android/internal/util/AsyncChannel.java", "com/android/internal/util/AsyncService.java", "com/android/internal/util/BitwiseInputStream.java", - "com/android/internal/util/FastXmlSerializer.java", "com/android/internal/util/HexDump.java", "com/android/internal/util/IndentingPrintWriter.java", "com/android/internal/util/UserIcons.java", @@ -515,7 +513,6 @@ filegroup { "android/net/InterfaceConfiguration.java", "android/util/BackupUtils.java", "android/util/Rational.java", - "com/android/internal/util/FastXmlSerializer.java", "com/android/internal/util/HexDump.java", "com/android/internal/util/MessageUtils.java", "com/android/internal/util/WakeupMessage.java", diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index 3b6ea14ab0b6..c136db68fd25 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -378,6 +378,15 @@ public final class ActivityThread extends ClientTransactionHandler /** Maps from activity token to the pending override configuration. */ @GuardedBy("mPendingOverrideConfigs") private final ArrayMap<IBinder, Configuration> mPendingOverrideConfigs = new ArrayMap<>(); + + /** + * A queue of pending ApplicationInfo updates. In case when we get a concurrent update + * this queue allows us to only apply the latest object, and it can be applied on demand + * instead of waiting for the handler thread to reach the scheduled callback. + */ + @GuardedBy("mResourcesManager") + private final ArrayMap<String, ApplicationInfo> mPendingAppInfoUpdates = new ArrayMap<>(); + /** The activities to be truly destroyed (not include relaunch). */ final Map<IBinder, DestroyActivityItem> mActivitiesToBeDestroyed = Collections.synchronizedMap(new ArrayMap<>()); @@ -1326,9 +1335,19 @@ public final class ActivityThread extends ClientTransactionHandler } public void scheduleApplicationInfoChanged(ApplicationInfo ai) { + synchronized (mResourcesManager) { + var oldAi = mPendingAppInfoUpdates.put(ai.packageName, ai); + if (oldAi != null && oldAi.createTimestamp > ai.createTimestamp) { + Slog.w(TAG, "Skipping application info changed for obsolete AI with TS " + + ai.createTimestamp + " < already pending TS " + + oldAi.createTimestamp); + mPendingAppInfoUpdates.put(ai.packageName, oldAi); + return; + } + } mResourcesManager.appendPendingAppInfoUpdate(new String[]{ai.sourceDir}, ai); - mH.removeMessages(H.APPLICATION_INFO_CHANGED, ai); - sendMessage(H.APPLICATION_INFO_CHANGED, ai); + mH.removeMessages(H.APPLICATION_INFO_CHANGED, ai.packageName); + sendMessage(H.APPLICATION_INFO_CHANGED, ai.packageName); } public void updateTimeZone() { @@ -2507,7 +2526,7 @@ public final class ActivityThread extends ClientTransactionHandler break; } case APPLICATION_INFO_CHANGED: - handleApplicationInfoChanged((ApplicationInfo) msg.obj); + applyPendingApplicationInfoChanges((String) msg.obj); break; case RUN_ISOLATED_ENTRY_POINT: handleRunIsolatedEntryPoint((String) ((SomeArgs) msg.obj).arg1, @@ -4070,7 +4089,8 @@ public final class ActivityThread extends ClientTransactionHandler mProfiler.startProfiling(); } - // Make sure we are running with the most recent config. + // Make sure we are running with the most recent config and resource paths. + applyPendingApplicationInfoChanges(r.activityInfo.packageName); mConfigurationController.handleConfigurationChanged(null, null); updateDeviceIdForNonUIContexts(deviceId); @@ -6438,6 +6458,17 @@ public final class ActivityThread extends ClientTransactionHandler r.mLastReportedWindowingMode = newWindowingMode; } + private void applyPendingApplicationInfoChanges(String packageName) { + final ApplicationInfo ai; + synchronized (mResourcesManager) { + ai = mPendingAppInfoUpdates.remove(packageName); + } + if (ai == null) { + return; + } + handleApplicationInfoChanged(ai); + } + /** * Updates the application info. * @@ -6463,6 +6494,16 @@ public final class ActivityThread extends ClientTransactionHandler apk = ref != null ? ref.get() : null; ref = mResourcePackages.get(ai.packageName); resApk = ref != null ? ref.get() : null; + for (ActivityClientRecord ar : mActivities.values()) { + if (ar.activityInfo.applicationInfo.packageName.equals(ai.packageName)) { + ar.activityInfo.applicationInfo = ai; + if (apk != null || resApk != null) { + ar.packageInfo = apk != null ? apk : resApk; + } else { + apk = ar.packageInfo; + } + } + } } if (apk != null) { diff --git a/core/java/android/app/AppOpsManager.java b/core/java/android/app/AppOpsManager.java index a99dfa605407..b74b075c9f62 100644 --- a/core/java/android/app/AppOpsManager.java +++ b/core/java/android/app/AppOpsManager.java @@ -17,6 +17,7 @@ package android.app; import static android.view.contentprotection.flags.Flags.FLAG_CREATE_ACCESSIBILITY_OVERLAY_APP_OP_ENABLED; +import static android.permission.flags.Flags.FLAG_OP_ENABLE_MOBILE_DATA_BY_USER; import static java.lang.Long.max; @@ -1507,6 +1508,12 @@ public class AppOpsManager { */ public static final int OP_CREATE_ACCESSIBILITY_OVERLAY = AppProtoEnums.APP_OP_CREATE_ACCESSIBILITY_OVERLAY; + /** + * Indicate that the user has enabled or disabled mobile data + * @hide + */ + public static final int OP_ENABLE_MOBILE_DATA_BY_USER = + AppProtoEnums.APP_OP_ENABLE_MOBILE_DATA_BY_USER; /** * See {@link #OPSTR_MEDIA_ROUTING_CONTROL}. @@ -1516,7 +1523,7 @@ public class AppOpsManager { /** @hide */ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) - public static final int _NUM_OP = 140; + public static final int _NUM_OP = 141; /** * All app ops represented as strings. @@ -1663,6 +1670,7 @@ public class AppOpsManager { OPSTR_RECEIVE_SANDBOXED_DETECTION_TRAINING_DATA, OPSTR_CREATE_ACCESSIBILITY_OVERLAY, OPSTR_MEDIA_ROUTING_CONTROL, + OPSTR_ENABLE_MOBILE_DATA_BY_USER, }) public @interface AppOpString {} @@ -2313,6 +2321,14 @@ public class AppOpsManager { @FlaggedApi(FLAG_CREATE_ACCESSIBILITY_OVERLAY_APP_OP_ENABLED) public static final String OPSTR_CREATE_ACCESSIBILITY_OVERLAY = "android:create_accessibility_overlay"; + /** + * Indicate that the user has enabled or disabled mobile data + * @hide + */ + @SystemApi + @FlaggedApi(FLAG_OP_ENABLE_MOBILE_DATA_BY_USER) + public static final String OPSTR_ENABLE_MOBILE_DATA_BY_USER = + "android:enable_mobile_data_by_user"; /** {@link #sAppOpsToNote} not initialized yet for this op */ private static final byte SHOULD_COLLECT_NOTE_OP_NOT_INITIALIZED = 0; @@ -2872,6 +2888,8 @@ public class AppOpsManager { new AppOpInfo.Builder(OP_MEDIA_ROUTING_CONTROL, OPSTR_MEDIA_ROUTING_CONTROL, "MEDIA_ROUTING_CONTROL") .setPermission(Manifest.permission.MEDIA_ROUTING_CONTROL).build(), + new AppOpInfo.Builder(OP_ENABLE_MOBILE_DATA_BY_USER, OPSTR_ENABLE_MOBILE_DATA_BY_USER, + "ENABLE_MOBILE_DATA_BY_USER").setDefaultMode(AppOpsManager.MODE_ALLOWED).build(), }; // The number of longs needed to form a full bitmask of app ops @@ -8357,9 +8375,7 @@ public class AppOpsManager { */ public int unsafeCheckOpRawNoThrow(int op, int uid, @NonNull String packageName) { try { - final AttributionSource attributionSource = - new AttributionSource.Builder(uid).setPackageName(packageName).build(); - return mService.checkOperationWithStateRaw(op, attributionSource.asState()); + return mService.checkOperationRaw(op, uid, packageName, null); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } @@ -8522,12 +8538,7 @@ public class AppOpsManager { } } - final AttributionSource attributionSource = - new AttributionSource.Builder(uid) - .setPackageName(packageName) - .setAttributionTag(attributionTag) - .build(); - SyncNotedAppOp syncOp = mService.noteOperationWithState(op, attributionSource.asState(), + SyncNotedAppOp syncOp = mService.noteOperation(op, uid, packageName, attributionTag, collectionMode == COLLECT_ASYNC, message, shouldCollectMessage); if (syncOp.getOpMode() == MODE_ALLOWED) { @@ -8767,9 +8778,7 @@ public class AppOpsManager { @UnsupportedAppUsage public int checkOp(int op, int uid, String packageName) { try { - final AttributionSource attributionSource = - new AttributionSource.Builder(uid).setPackageName(packageName).build(); - int mode = mService.checkOperationWithState(op, attributionSource.asState()); + int mode = mService.checkOperation(op, uid, packageName); if (mode == MODE_ERRORED) { throw new SecurityException(buildSecurityExceptionMsg(op, uid, packageName)); } @@ -8790,9 +8799,7 @@ public class AppOpsManager { @UnsupportedAppUsage public int checkOpNoThrow(int op, int uid, String packageName) { try { - final AttributionSource attributionSource = - new AttributionSource.Builder(uid).setPackageName(packageName).build(); - int mode = mService.checkOperationWithState(op, attributionSource.asState()); + int mode = mService.checkOperation(op, uid, packageName); return mode == AppOpsManager.MODE_FOREGROUND ? AppOpsManager.MODE_ALLOWED : mode; } catch (RemoteException e) { throw e.rethrowFromSystemServer(); @@ -9037,14 +9044,8 @@ public class AppOpsManager { } } - final AttributionSource attributionSource = - new AttributionSource.Builder(uid) - .setPackageName(packageName) - .setAttributionTag(attributionTag) - .build(); - SyncNotedAppOp syncOp = mService.startOperationWithState(token, op, - attributionSource.asState(), startIfModeDefault, - collectionMode == COLLECT_ASYNC, message, + SyncNotedAppOp syncOp = mService.startOperation(token, op, uid, packageName, + attributionTag, startIfModeDefault, collectionMode == COLLECT_ASYNC, message, shouldCollectMessage, attributionFlags, attributionChainId); if (syncOp.getOpMode() == MODE_ALLOWED) { @@ -9257,12 +9258,7 @@ public class AppOpsManager { public void finishOp(IBinder token, int op, int uid, @NonNull String packageName, @Nullable String attributionTag) { try { - final AttributionSource attributionSource = - new AttributionSource.Builder(uid) - .setPackageName(packageName) - .setAttributionTag(attributionTag) - .build(); - mService.finishOperationWithState(token, op, attributionSource.asState()); + mService.finishOperation(token, op, uid, packageName, attributionTag); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } diff --git a/core/java/android/app/AppOpsManagerInternal.java b/core/java/android/app/AppOpsManagerInternal.java index a3de8faa1273..43023fe9c2ab 100644 --- a/core/java/android/app/AppOpsManagerInternal.java +++ b/core/java/android/app/AppOpsManagerInternal.java @@ -26,12 +26,11 @@ import android.util.SparseArray; import android.util.SparseIntArray; import com.android.internal.app.IAppOpsCallback; +import com.android.internal.util.function.HeptFunction; import com.android.internal.util.function.HexFunction; -import com.android.internal.util.function.NonaFunction; import com.android.internal.util.function.QuadFunction; +import com.android.internal.util.function.QuintConsumer; import com.android.internal.util.function.QuintFunction; -import com.android.internal.util.function.TriConsumer; -import com.android.internal.util.function.TriFunction; import com.android.internal.util.function.UndecFunction; /** @@ -46,13 +45,15 @@ public abstract class AppOpsManagerInternal { * Allows overriding check operation behavior. * * @param code The op code to check. - * @param attributionSource the {@link AttributionSource} responsible for data access + * @param uid The UID for which to check. + * @param packageName The package for which to check. + * @param attributionTag The attribution tag for which to check. * @param raw Whether to check the raw op i.e. not interpret the mode based on UID state. * @param superImpl The super implementation. * @return The app op check result. */ - int checkOperation(int code, AttributionSource attributionSource, - boolean raw, TriFunction<Integer, AttributionSource, Boolean, Integer> + int checkOperation(int code, int uid, String packageName, @Nullable String attributionTag, + boolean raw, QuintFunction<Integer, Integer, String, String, Boolean, Integer> superImpl); /** @@ -72,23 +73,25 @@ public abstract class AppOpsManagerInternal { * Allows overriding note operation behavior. * * @param code The op code to note. - * @param attributionSource the {@link AttributionSource} responsible for data access + * @param uid The UID for which to note. + * @param packageName The package for which to note. {@code null} for system package. + * @param featureId Id of the feature in the package * @param shouldCollectAsyncNotedOp If an {@link AsyncNotedAppOp} should be collected * @param message The message in the async noted op * @param superImpl The super implementation. * @return The app op note result. */ - SyncNotedAppOp noteOperation(int code, AttributionSource attributionSource, - boolean shouldCollectAsyncNotedOp, + SyncNotedAppOp noteOperation(int code, int uid, @Nullable String packageName, + @Nullable String featureId, boolean shouldCollectAsyncNotedOp, @Nullable String message, boolean shouldCollectMessage, - @NonNull QuintFunction<Integer, AttributionSource, Boolean, String, Boolean, + @NonNull HeptFunction<Integer, Integer, String, String, Boolean, String, Boolean, SyncNotedAppOp> superImpl); /** * Allows overriding note proxy operation behavior. * * @param code The op code to note. - * @param attributionSource the {@link AttributionSource} responsible for data access + * @param attributionSource The permission identity of the caller. * @param shouldCollectAsyncNotedOp If an {@link AsyncNotedAppOp} should be collected * @param message The message in the async noted op * @param shouldCollectMessage whether to collect messages @@ -107,7 +110,9 @@ public abstract class AppOpsManagerInternal { * * @param token The client state. * @param code The op code to start. - * @param attributionSource the {@link AttributionSource} responsible for data access + * @param uid The UID for which to note. + * @param packageName The package for which to note. {@code null} for system package. + * @param attributionTag the attribution tag. * @param startIfModeDefault Whether to start the op of the mode is default. * @param shouldCollectAsyncNotedOp If an {@link AsyncNotedAppOp} should be collected * @param message The message in the async noted op @@ -117,12 +122,12 @@ public abstract class AppOpsManagerInternal { * @param superImpl The super implementation. * @return The app op note result. */ - SyncNotedAppOp startOperation(IBinder token, int code, - AttributionSource attributionSource, + SyncNotedAppOp startOperation(IBinder token, int code, int uid, + @Nullable String packageName, @Nullable String attributionTag, boolean startIfModeDefault, boolean shouldCollectAsyncNotedOp, @Nullable String message, boolean shouldCollectMessage, @AttributionFlags int attributionFlags, int attributionChainId, - @NonNull NonaFunction<IBinder, Integer, AttributionSource, Boolean, + @NonNull UndecFunction<IBinder, Integer, Integer, String, String, Boolean, Boolean, String, Boolean, Integer, Integer, SyncNotedAppOp> superImpl); /** @@ -130,7 +135,7 @@ public abstract class AppOpsManagerInternal { * * @param clientId The client calling start, represented by an IBinder * @param code The op code to start. - * @param attributionSource the {@link AttributionSource} responsible for data access + * @param attributionSource The permission identity of the caller. * @param startIfModeDefault Whether to start the op of the mode is default. * @param shouldCollectAsyncNotedOp If an {@link AsyncNotedAppOp} should be collected * @param message The message in the async noted op @@ -156,19 +161,21 @@ public abstract class AppOpsManagerInternal { * * @param clientId The client state. * @param code The op code to finish. - * @param attributionSource the {@link AttributionSource} responsible for data access + * @param uid The UID for which the op was noted. + * @param packageName The package for which it was noted. {@code null} for system package. + * @param attributionTag the attribution tag. */ - default void finishOperation(IBinder clientId, int code, - AttributionSource attributionSource, - @NonNull TriConsumer<IBinder, Integer, AttributionSource> superImpl) { - superImpl.accept(clientId, code, attributionSource); + default void finishOperation(IBinder clientId, int code, int uid, String packageName, + String attributionTag, + @NonNull QuintConsumer<IBinder, Integer, Integer, String, String> superImpl) { + superImpl.accept(clientId, code, uid, packageName, attributionTag); } /** * Allows overriding finish proxy op. * * @param code The op code to finish. - * @param attributionSource the {@link AttributionSource} responsible for data access + * @param attributionSource The permission identity of the caller. * @param skipProxyOperation Whether to skip the proxy in the proxy/proxied operation * @param clientId The client calling finishProxyOperation * @param superImpl The "standard" implementation to potentially call diff --git a/core/java/android/app/AutomaticZenRule.java b/core/java/android/app/AutomaticZenRule.java index 7bfb1b5c1ba6..919e084002ea 100644 --- a/core/java/android/app/AutomaticZenRule.java +++ b/core/java/android/app/AutomaticZenRule.java @@ -16,16 +16,23 @@ package android.app; +import android.annotation.DrawableRes; +import android.annotation.FlaggedApi; +import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.app.NotificationManager.InterruptionFilter; +import android.app.admin.DevicePolicyManager; import android.content.ComponentName; import android.net.Uri; import android.os.Parcel; import android.os.Parcelable; import android.service.notification.Condition; import android.service.notification.ZenPolicy; +import android.view.WindowInsetsController; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; import java.util.Objects; /** @@ -36,7 +43,67 @@ public final class AutomaticZenRule implements Parcelable { private static final int ENABLED = 1; /* @hide */ private static final int DISABLED = 0; - private boolean enabled = false; + + /** + * Rule is of an unknown type. This is the default value if not provided by the owning app. + */ + @FlaggedApi(Flags.FLAG_MODES_API) + public static final int TYPE_UNKNOWN = -1; + /** + * Rule is of a known type, but not one of the specific types. + */ + @FlaggedApi(Flags.FLAG_MODES_API) + public static final int TYPE_OTHER = 0; + /** + * The type for rules triggered according to a time-based schedule. + */ + @FlaggedApi(Flags.FLAG_MODES_API) + public static final int TYPE_SCHEDULE_TIME = 1; + /** + * The type for rules triggered by calendar events. + */ + @FlaggedApi(Flags.FLAG_MODES_API) + public static final int TYPE_SCHEDULE_CALENDAR = 2; + /** + * The type for rules triggered by bedtime/sleeping, like time of day, or snore detection. + */ + @FlaggedApi(Flags.FLAG_MODES_API) + public static final int TYPE_BEDTIME = 3; + /** + * The type for rules triggered by driving detection, like Bluetooth connections or vehicle + * sounds. + */ + @FlaggedApi(Flags.FLAG_MODES_API) + public static final int TYPE_DRIVING = 4; + /** + * The type for rules triggered by the user entering an immersive activity, like opening an app + * using {@link WindowInsetsController#hide(int)}. + */ + @FlaggedApi(Flags.FLAG_MODES_API) + public static final int TYPE_IMMERSIVE = 5; + /** + * The type for rules that have a {@link ZenPolicy} that implies that the + * device should not make sound and potentially hide some visual effects; may be triggered + * when entering a location where silence is requested, like a theater. + */ + @FlaggedApi(Flags.FLAG_MODES_API) + public static final int TYPE_THEATER = 6; + /** + * The type for rules created and managed by a device owner. These rules may not be fully + * editable by the device user. + */ + @FlaggedApi(Flags.FLAG_MODES_API) + public static final int TYPE_MANAGED = 7; + + /** @hide */ + @IntDef(prefix = { "TYPE_" }, value = { + TYPE_UNKNOWN, TYPE_OTHER, TYPE_SCHEDULE_TIME, TYPE_SCHEDULE_CALENDAR, TYPE_BEDTIME, + TYPE_DRIVING, TYPE_IMMERSIVE, TYPE_THEATER, TYPE_MANAGED + }) + @Retention(RetentionPolicy.SOURCE) + public @interface Type {} + + private boolean enabled; private String name; private @InterruptionFilter int interruptionFilter; private Uri conditionId; @@ -46,6 +113,10 @@ public final class AutomaticZenRule implements Parcelable { private ZenPolicy mZenPolicy; private boolean mModified = false; private String mPkg; + private int mType = TYPE_UNKNOWN; + private int mIconResId; + private String mTriggerDescription; + private boolean mAllowManualInvocation; /** * The maximum string length for any string contained in this automatic zen rule. This pertains @@ -55,6 +126,12 @@ public final class AutomaticZenRule implements Parcelable { public static final int MAX_STRING_LENGTH = 1000; /** + * The maximum string length for the trigger description rule, given UI constraints. + * @hide + */ + public static final int MAX_DESC_LENGTH = 150; + + /** * Creates an automatic zen rule. * * @param name The name of the rule. @@ -97,6 +174,7 @@ public final class AutomaticZenRule implements Parcelable { * action ({@link Condition#STATE_TRUE}). * @param enabled Whether the rule is enabled. */ + // TODO (b/309088420): deprecate this constructor in favor of the builder public AutomaticZenRule(@NonNull String name, @Nullable ComponentName owner, @Nullable ComponentName configurationActivity, @NonNull Uri conditionId, @Nullable ZenPolicy policy, int interruptionFilter, boolean enabled) { @@ -134,6 +212,12 @@ public final class AutomaticZenRule implements Parcelable { mZenPolicy = source.readParcelable(null, android.service.notification.ZenPolicy.class); mModified = source.readInt() == ENABLED; mPkg = source.readString(); + if (Flags.modesApi()) { + mAllowManualInvocation = source.readBoolean(); + mIconResId = source.readInt(); + mTriggerDescription = getTrimmedString(source.readString(), MAX_DESC_LENGTH); + mType = source.readInt(); + } } /** @@ -269,6 +353,81 @@ public final class AutomaticZenRule implements Parcelable { return mPkg; } + /** + * Gets the type of the rule. + */ + @FlaggedApi(Flags.FLAG_MODES_API) + public int getType() { + return mType; + } + + /** + * Sets the type of the rule. + * @hide + */ + @FlaggedApi(Flags.FLAG_MODES_API) + public void setType(@Type int type) { + mType = type; + } + + /** + * Gets the user visible description of when this rule is active + * (see {@link Condition#STATE_TRUE}). + */ + @FlaggedApi(Flags.FLAG_MODES_API) + public @Nullable String getTriggerDescription() { + return mTriggerDescription; + } + + /** + * Sets a user visible description of when this rule will be active + * (see {@link Condition#STATE_TRUE}). + * + * A description should be a (localized) string like "Mon-Fri, 9pm-7am" or + * "When connected to [Car Name]". + * @hide + */ + @FlaggedApi(Flags.FLAG_MODES_API) + public void setTriggerDescription(@Nullable String triggerDescription) { + mTriggerDescription = triggerDescription; + } + + /** + * Gets the resource id of the drawable icon for this rule. + */ + @FlaggedApi(Flags.FLAG_MODES_API) + public @DrawableRes int getIconResId() { + return mIconResId; + } + + /** + * Sets a resource id of a tintable vector drawable representing the rule in image form. + * @hide + */ + @FlaggedApi(Flags.FLAG_MODES_API) + public void setIconResId(int iconResId) { + mIconResId = iconResId; + } + + /** + * Gets whether this rule can be manually activated by the user even when the triggering + * condition for the rule is not met. + */ + @FlaggedApi(Flags.FLAG_MODES_API) + public boolean isManualInvocationAllowed() { + return mAllowManualInvocation; + } + + /** + * Sets whether this rule can be manually activated by the user even when the triggering + * condition for the rule is not met. + * @hide + */ + @FlaggedApi(Flags.FLAG_MODES_API) + public void setManualInvocationAllowed(boolean allowManualInvocation) { + mAllowManualInvocation = allowManualInvocation; + } + @Override public int describeContents() { return 0; @@ -291,11 +450,17 @@ public final class AutomaticZenRule implements Parcelable { dest.writeParcelable(mZenPolicy, 0); dest.writeInt(mModified ? ENABLED : DISABLED); dest.writeString(mPkg); + if (Flags.modesApi()) { + dest.writeBoolean(mAllowManualInvocation); + dest.writeInt(mIconResId); + dest.writeString(mTriggerDescription); + dest.writeInt(mType); + } } @Override public String toString() { - return new StringBuilder(AutomaticZenRule.class.getSimpleName()).append('[') + StringBuilder sb = new StringBuilder(AutomaticZenRule.class.getSimpleName()).append('[') .append("enabled=").append(enabled) .append(",name=").append(name) .append(",interruptionFilter=").append(interruptionFilter) @@ -304,8 +469,16 @@ public final class AutomaticZenRule implements Parcelable { .append(",owner=").append(owner) .append(",configActivity=").append(configurationActivity) .append(",creationTime=").append(creationTime) - .append(",mZenPolicy=").append(mZenPolicy) - .append(']').toString(); + .append(",mZenPolicy=").append(mZenPolicy); + + if (Flags.modesApi()) { + sb.append(",allowManualInvocation=").append(mAllowManualInvocation) + .append(",iconResId=").append(mIconResId) + .append(",triggerDescription=").append(mTriggerDescription) + .append(",type=").append(mType); + } + + return sb.append(']').toString(); } @Override @@ -313,7 +486,7 @@ public final class AutomaticZenRule implements Parcelable { if (!(o instanceof AutomaticZenRule)) return false; if (o == this) return true; final AutomaticZenRule other = (AutomaticZenRule) o; - return other.enabled == enabled + boolean finalEquals = other.enabled == enabled && other.mModified == mModified && Objects.equals(other.name, name) && other.interruptionFilter == interruptionFilter @@ -323,10 +496,23 @@ public final class AutomaticZenRule implements Parcelable { && Objects.equals(other.configurationActivity, configurationActivity) && Objects.equals(other.mPkg, mPkg) && other.creationTime == creationTime; + if (Flags.modesApi()) { + return finalEquals + && other.mAllowManualInvocation == mAllowManualInvocation + && other.mIconResId == mIconResId + && Objects.equals(other.mTriggerDescription, mTriggerDescription) + && other.mType == mType; + } + return finalEquals; } @Override public int hashCode() { + if (Flags.modesApi()) { + return Objects.hash(enabled, name, interruptionFilter, conditionId, owner, + configurationActivity, mZenPolicy, mModified, creationTime, mPkg, + mAllowManualInvocation, mIconResId, mTriggerDescription, mType); + } return Objects.hash(enabled, name, interruptionFilter, conditionId, owner, configurationActivity, mZenPolicy, mModified, creationTime, mPkg); } @@ -357,8 +543,12 @@ public final class AutomaticZenRule implements Parcelable { * Returns a truncated copy of the string if the string is longer than MAX_STRING_LENGTH. */ private static String getTrimmedString(String input) { - if (input != null && input.length() > MAX_STRING_LENGTH) { - return input.substring(0, MAX_STRING_LENGTH); + return getTrimmedString(input, MAX_STRING_LENGTH); + } + + private static String getTrimmedString(String input, int length) { + if (input != null && input.length() > length) { + return input.substring(0, length); } return input; } @@ -373,4 +563,138 @@ public final class AutomaticZenRule implements Parcelable { } return input; } + + @FlaggedApi(Flags.FLAG_MODES_API) + public static final class Builder { + private String mName; + private ComponentName mOwner; + private Uri mConditionId; + private int mInterruptionFilter; + private boolean mEnabled; + private ComponentName mConfigurationActivity = null; + private ZenPolicy mPolicy = null; + private int mType; + private String mDescription; + private int mIconResId; + private boolean mAllowManualInvocation; + private long mCreationTime; + private String mPkg; + + public Builder(@NonNull AutomaticZenRule rule) { + mName = rule.getName(); + mOwner = rule.getOwner(); + mConditionId = rule.getConditionId(); + mInterruptionFilter = rule.getInterruptionFilter(); + mEnabled = rule.isEnabled(); + mConfigurationActivity = rule.getConfigurationActivity(); + mPolicy = rule.getZenPolicy(); + mType = rule.getType(); + mDescription = rule.getTriggerDescription(); + mIconResId = rule.getIconResId(); + mAllowManualInvocation = rule.isManualInvocationAllowed(); + mCreationTime = rule.getCreationTime(); + mPkg = rule.getPackageName(); + } + + public Builder(@NonNull String name, @NonNull Uri conditionId) { + mName = name; + mConditionId = conditionId; + } + + public @NonNull Builder setName(@NonNull String name) { + mName = name; + return this; + } + + public @NonNull Builder setOwner(@Nullable ComponentName owner) { + mOwner = owner; + return this; + } + + public @NonNull Builder setConditionId(@NonNull Uri conditionId) { + mConditionId = conditionId; + return this; + } + + public @NonNull Builder setInterruptionFilter( + @InterruptionFilter int interruptionFilter) { + mInterruptionFilter = interruptionFilter; + return this; + } + + public @NonNull Builder setEnabled(boolean enabled) { + mEnabled = enabled; + return this; + } + + public @NonNull Builder setConfigurationActivity( + @Nullable ComponentName configurationActivity) { + mConfigurationActivity = configurationActivity; + return this; + } + + public @NonNull Builder setZenPolicy(@Nullable ZenPolicy policy) { + mPolicy = policy; + return this; + } + + /** + * Sets the type of the rule + */ + public @NonNull Builder setType(@Type int type) { + mType = type; + return this; + } + + /** + * Sets a user visible description of when this rule will be active + * (see {@link Condition#STATE_TRUE}). + * + * A description should be a (localized) string like "Mon-Fri, 9pm-7am" or + * "When connected to [Car Name]". + */ + public @NonNull Builder setTriggerDescription(@Nullable String description) { + mDescription = description; + return this; + } + + /** + * Sets a resource id of a tintable vector drawable representing the rule in image form. + */ + public @NonNull Builder setIconResId(@DrawableRes int iconResId) { + mIconResId = iconResId; + return this; + } + + /** + * Sets whether this rule can be manually activated by the user even when the triggering + * condition for the rule is not met. + */ + public @NonNull Builder setManualInvocationAllowed(boolean allowManualInvocation) { + mAllowManualInvocation = allowManualInvocation; + return this; + } + + /** + * Sets the time at which this rule was created, in milliseconds since epoch + * @hide + */ + public @NonNull Builder setCreationTime(long creationTime) { + mCreationTime = creationTime; + return this; + } + + public @NonNull AutomaticZenRule build() { + AutomaticZenRule rule = new AutomaticZenRule(mName, mOwner, mConfigurationActivity, + mConditionId, mPolicy, mInterruptionFilter, mEnabled); + rule.creationTime = mCreationTime; + rule.mType = mType; + rule.mTriggerDescription = mDescription; + rule.mIconResId = mIconResId; + rule.mAllowManualInvocation = mAllowManualInvocation; + rule.setPackageName(mPkg); + + return rule; + } + } } diff --git a/core/java/android/app/IActivityTaskManager.aidl b/core/java/android/app/IActivityTaskManager.aidl index 1f8784bf72dd..df6badcffe8e 100644 --- a/core/java/android/app/IActivityTaskManager.aidl +++ b/core/java/android/app/IActivityTaskManager.aidl @@ -269,7 +269,10 @@ interface IActivityTaskManager { * task snapshot cache only if requested. * * @param taskId the id of the task to take a snapshot of - * @param updateCache whether to store the new snapshot in the system's task snapshot cache + * @param updateCache Whether to store the new snapshot in the system's task snapshot cache. + * If it is true, the snapshot can be either real content or app-theme mode + * depending on the attributes of app. Otherwise, the snapshot will be taken + * with real content. * @return a graphic buffer representing a screenshot of a task */ android.window.TaskSnapshot takeTaskSnapshot(int taskId, boolean updateCache); diff --git a/core/java/android/app/LoadedApk.java b/core/java/android/app/LoadedApk.java index ebf183ff18c3..f1e44cc267d6 100644 --- a/core/java/android/app/LoadedApk.java +++ b/core/java/android/app/LoadedApk.java @@ -342,7 +342,9 @@ public final class LoadedApk { */ public void updateApplicationInfo(@NonNull ApplicationInfo aInfo, @Nullable List<String> oldPaths) { - setApplicationInfo(aInfo); + if (!setApplicationInfo(aInfo)) { + return; + } final List<String> newPaths = new ArrayList<>(); makePaths(mActivityThread, aInfo, newPaths); @@ -387,7 +389,13 @@ public final class LoadedApk { mAppComponentFactory = createAppFactory(aInfo, mDefaultClassLoader); } - private void setApplicationInfo(ApplicationInfo aInfo) { + private boolean setApplicationInfo(ApplicationInfo aInfo) { + if (mApplicationInfo != null && mApplicationInfo.createTimestamp > aInfo.createTimestamp) { + Slog.w(TAG, "New application info for package " + aInfo.packageName + + " is out of date with TS " + aInfo.createTimestamp + " < the current TS " + + mApplicationInfo.createTimestamp); + return false; + } final int myUid = Process.myUid(); aInfo = adjustNativeLibraryPaths(aInfo); mApplicationInfo = aInfo; @@ -410,6 +418,7 @@ public final class LoadedApk { if (aInfo.requestsIsolatedSplitLoading() && !ArrayUtils.isEmpty(mSplitNames)) { mSplitLoader = new SplitDependencyLoaderImpl(aInfo.splitDependencies); } + return true; } void setSdkSandboxStorage(@Nullable String sdkSandboxClientAppVolumeUuid, diff --git a/core/java/android/app/NotificationManager.java b/core/java/android/app/NotificationManager.java index b8bea9d102e1..b0332c32bfbc 100644 --- a/core/java/android/app/NotificationManager.java +++ b/core/java/android/app/NotificationManager.java @@ -16,6 +16,7 @@ package android.app; +import android.annotation.FlaggedApi; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; @@ -272,6 +273,7 @@ public class NotificationManager { * {@link #AUTOMATIC_RULE_STATUS_UNKNOWN}. * </p> */ + // TODO (b/309101513): Add new status types to javadoc public static final String EXTRA_AUTOMATIC_ZEN_RULE_STATUS = "android.app.extra.AUTOMATIC_ZEN_RULE_STATUS"; @@ -286,7 +288,8 @@ public class NotificationManager { /** @hide */ @IntDef(prefix = { "AUTOMATIC_RULE_STATUS" }, value = { AUTOMATIC_RULE_STATUS_ENABLED, AUTOMATIC_RULE_STATUS_DISABLED, - AUTOMATIC_RULE_STATUS_REMOVED, AUTOMATIC_RULE_STATUS_UNKNOWN + AUTOMATIC_RULE_STATUS_REMOVED, AUTOMATIC_RULE_STATUS_UNKNOWN, + AUTOMATIC_RULE_STATUS_ACTIVATED, AUTOMATIC_RULE_STATUS_DEACTIVATED }) @Retention(RetentionPolicy.SOURCE) public @interface AutomaticZenRuleStatus {} @@ -320,6 +323,27 @@ public class NotificationManager { public static final int AUTOMATIC_RULE_STATUS_REMOVED = 3; /** + * Constant value for {@link #EXTRA_AUTOMATIC_ZEN_RULE_STATUS} - the given rule has been + * activated by the user or cross device sync. Sent from + * {@link Build.VERSION_CODES#VANILLA_ICE_CREAM}. If the rule owner has a mode that includes + * a DND component, the rule owner should activate any extra behavior that's part of that mode + * in response to this broadcast. + */ + @FlaggedApi(Flags.FLAG_MODES_API) + public static final int AUTOMATIC_RULE_STATUS_ACTIVATED = 4; + + /** + * Constant value for {@link #EXTRA_AUTOMATIC_ZEN_RULE_STATUS} - the given rule has been + * deactivated ("snoozed") by the user. The rule will not return to an activated state until + * the app calls {@link #setAutomaticZenRuleState(String, Condition)} with + * {@link Condition#STATE_FALSE} (either immediately or when the trigger criteria is no + * longer met) and then {@link Condition#STATE_TRUE} when the trigger criteria is freshly met, + * or when the user re-activates it. + */ + @FlaggedApi(Flags.FLAG_MODES_API) + public static final int AUTOMATIC_RULE_STATUS_DEACTIVATED = 5; + + /** * Intent that is broadcast when the state of {@link #getEffectsSuppressor()} changes. * * <p>This broadcast is only sent to registered receivers and (starting from diff --git a/core/java/android/app/time/TEST_MAPPING b/core/java/android/app/time/TEST_MAPPING index 780904861f0c..49a4467b1f67 100644 --- a/core/java/android/app/time/TEST_MAPPING +++ b/core/java/android/app/time/TEST_MAPPING @@ -1,24 +1,11 @@ { - "presubmit": [ - { - "name": "FrameworksCoreTests", - "options": [ - { - "include-filter": "android.app.time." - } - ] - } - ], // TODO(b/182461754): Change to "presubmit" when go/test-mapping-slo-guide allows. "postsubmit": [ { - "name": "FrameworksCoreTests", + "name": "FrameworksTimeCoreTests", "options": [ { - "include-filter": "android.app.timedetector." - }, - { - "include-filter": "android.app.timezonedetector." + "include-filter": "android.app." } ] }, diff --git a/core/java/android/app/timedetector/TEST_MAPPING b/core/java/android/app/timedetector/TEST_MAPPING index 53fd74bc3c3a..c050a55a3e18 100644 --- a/core/java/android/app/timedetector/TEST_MAPPING +++ b/core/java/android/app/timedetector/TEST_MAPPING @@ -2,13 +2,10 @@ // TODO(b/182461754): Change to "presubmit" when go/test-mapping-slo-guide allows. "postsubmit": [ { - "name": "FrameworksCoreTests", + "name": "FrameworksTimeCoreTests", "options": [ { - "include-filter": "android.app.time." - }, - { - "include-filter": "android.app.timedetector." + "include-filter": "android.app." } ] }, diff --git a/core/java/android/app/timezonedetector/TEST_MAPPING b/core/java/android/app/timezonedetector/TEST_MAPPING index 5e64c83937f6..46656d125b70 100644 --- a/core/java/android/app/timezonedetector/TEST_MAPPING +++ b/core/java/android/app/timezonedetector/TEST_MAPPING @@ -1,21 +1,11 @@ { - "presubmit": [ - { - "name": "FrameworksCoreTests", - "options": [ - { - "include-filter": "android.app.timezonedetector." - } - ] - } - ], // TODO(b/182461754): Change to "presubmit" when go/test-mapping-slo-guide allows. "postsubmit": [ { - "name": "FrameworksCoreTests", + "name": "FrameworksTimeCoreTests", "options": [ { - "include-filter": "android.app.time." + "include-filter": "android.app." } ] }, diff --git a/core/java/android/appwidget/AppWidgetHostView.java b/core/java/android/appwidget/AppWidgetHostView.java index 27f6a266597c..ec181dac6b36 100644 --- a/core/java/android/appwidget/AppWidgetHostView.java +++ b/core/java/android/appwidget/AppWidgetHostView.java @@ -156,6 +156,22 @@ public class AppWidgetHostView extends FrameLayout implements AppWidgetHost.AppW } /** + * @hide + */ + public static class AdapterChildHostView extends AppWidgetHostView { + + public AdapterChildHostView(Context context) { + super(context); + } + + @Override + public Context getRemoteContextEnsuringCorrectCachedApkPath() { + // To reduce noise in error messages + return null; + } + } + + /** * Set the AppWidget that will be displayed by this view. This method also adds default padding * to widgets, as described in {@link #getDefaultPaddingForWidget(Context, ComponentName, Rect)} * and can be overridden in order to add custom padding. @@ -921,17 +937,31 @@ public class AppWidgetHostView extends FrameLayout implements AppWidgetHost.AppW setColorResources(RemoteViews.ColorResources.create(mContext, colorMapping)); } + private void setColorResourcesStates(RemoteViews.ColorResources colorResources) { + mColorResources = colorResources; + mColorMappingChanged = true; + mViewMode = VIEW_MODE_NOINIT; + } + /** @hide **/ public void setColorResources(RemoteViews.ColorResources colorResources) { if (colorResources == mColorResources) { return; } - mColorResources = colorResources; - mColorMappingChanged = true; - mViewMode = VIEW_MODE_NOINIT; + setColorResourcesStates(colorResources); reapplyLastRemoteViews(); } + /** + * @hide + */ + public void setColorResourcesNoReapply(RemoteViews.ColorResources colorResources) { + if (colorResources == mColorResources) { + return; + } + setColorResourcesStates(colorResources); + } + /** Check if, in the current context, the two color mappings are equivalent. */ private boolean isSameColorMapping(SparseIntArray oldColors, SparseIntArray newColors) { if (oldColors.size() != newColors.size()) { diff --git a/core/java/android/content/AttributionSource.java b/core/java/android/content/AttributionSource.java index c2bc974a42ae..4b2cee698df2 100644 --- a/core/java/android/content/AttributionSource.java +++ b/core/java/android/content/AttributionSource.java @@ -235,12 +235,6 @@ public final class AttributionSource implements Parcelable { } /** @hide */ - public AttributionSource withUid(int uid) { - return new AttributionSource(uid, getPid(), getPackageName(), getAttributionTag(), - getToken(), mAttributionSourceState.renouncedPermissions, getDeviceId(), getNext()); - } - - /** @hide */ public AttributionSource withPid(int pid) { return new AttributionSource(getUid(), pid, getPackageName(), getAttributionTag(), getToken(), mAttributionSourceState.renouncedPermissions, getDeviceId(), getNext()); diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java index e2a5747a4bcb..72e106639544 100644 --- a/core/java/android/content/pm/PackageManager.java +++ b/core/java/android/content/pm/PackageManager.java @@ -6279,9 +6279,9 @@ public abstract class PackageManager { * @hide */ @NonNull - @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES) + @SystemApi @TestApi - @UnsupportedAppUsage + @SuppressLint("UnflaggedApi") // Promoting from @SystemApi(MODULE_LIBRARIES) public String getPermissionControllerPackageName() { throw new RuntimeException("Not implemented. Must override in a subclass."); } diff --git a/core/java/android/content/res/Element.java b/core/java/android/content/res/Element.java index 1ef3d273fcb8..1667896930c2 100644 --- a/core/java/android/content/res/Element.java +++ b/core/java/android/content/res/Element.java @@ -40,7 +40,7 @@ public class Element { private static final int MAX_ATTR_LEN_MIMETYPE = 512; public static final int MAX_ATTR_LEN_NAME = 1024; public static final int MAX_ATTR_LEN_PATH = 4000; - public static final int MAX_ATTR_LEN_DATA_VALUE = 4000; + public static final int MAX_ATTR_LEN_VALUE = 32_768; private static final String BAD_COMPONENT_NAME_CHARS = ";,[](){}:?%^*|/\\"; @@ -386,7 +386,7 @@ public class Element { case TAG_ATTR_PATH_SUFFIX: return MAX_ATTR_LEN_PATH; case TAG_ATTR_VALUE: - return MAX_ATTR_LEN_DATA_VALUE; + return MAX_ATTR_LEN_VALUE; case TAG_ATTR_REQUIRED_SYSTEM_PROPERTY_VALUE: return PROP_VALUE_MAX; default: @@ -566,7 +566,7 @@ public class Element { case R.styleable.AndroidManifestMetaData_name: return MAX_ATTR_LEN_NAME; case R.styleable.AndroidManifestMetaData_value: - return MAX_ATTR_LEN_DATA_VALUE; + return MAX_ATTR_LEN_VALUE; default: return DEFAULT_MAX_STRING_ATTR_LENGTH; } @@ -636,7 +636,7 @@ public class Element { case R.styleable.AndroidManifestProperty_name: return MAX_ATTR_LEN_NAME; case R.styleable.AndroidManifestProperty_value: - return MAX_ATTR_LEN_DATA_VALUE; + return MAX_ATTR_LEN_VALUE; default: return DEFAULT_MAX_STRING_ATTR_LENGTH; } diff --git a/core/java/android/hardware/usb/flags/system_sw_usb_flags.aconfig b/core/java/android/hardware/usb/flags/system_sw_usb_flags.aconfig index 6b78d05c848d..5c5083a691be 100644 --- a/core/java/android/hardware/usb/flags/system_sw_usb_flags.aconfig +++ b/core/java/android/hardware/usb/flags/system_sw_usb_flags.aconfig @@ -6,3 +6,10 @@ flag { description: "Enable USB data compliance warnings when set" bug: "296119135" } + +flag { + name: "enable_input_power_limited_warning" + namespace: "system_sw_usb" + description: "Flag incompatible charging on COMPLIANCE_WARNING_INPUT_POWER_LIMITED instead of COMPLIANCE_WARNING_OTHER when enabled" + bug: "308700954" +} diff --git a/core/java/android/net/NetworkStack.java b/core/java/android/net/NetworkStack.java index dbb312720373..19ba6a1d22ed 100644 --- a/core/java/android/net/NetworkStack.java +++ b/core/java/android/net/NetworkStack.java @@ -23,6 +23,7 @@ import android.content.Context; import android.os.IBinder; import android.os.ServiceManager; +import com.android.net.flags.Flags; import com.android.net.module.util.PermissionUtils; /** * Constants and utilities for client code communicating with the network stack service. @@ -103,4 +104,16 @@ public class NetworkStack { final @NonNull String... otherPermissions) { PermissionUtils.enforceNetworkStackPermissionOr(context, otherPermissions); } + + /** + * Get setting of the "set_data_saver_via_cm" flag. + * + * @hide + */ + // A workaround for aconfig. Currently, aconfig value read from platform and mainline code can + // be inconsistent. To avoid the problem, CTS for mainline code can get the flag value by this + // method. + public static boolean getDataSaverViaCmFlag() { + return Flags.setDataSaverViaCm(); + } } diff --git a/core/java/android/nfc/cardemulation/ApduServiceInfo.java b/core/java/android/nfc/cardemulation/ApduServiceInfo.java index 9cf8c4ddc53b..597c948bd515 100644 --- a/core/java/android/nfc/cardemulation/ApduServiceInfo.java +++ b/core/java/android/nfc/cardemulation/ApduServiceInfo.java @@ -129,7 +129,7 @@ public final class ApduServiceInfo implements Parcelable { /** * State of the service for CATEGORY_OTHER selection */ - private boolean mOtherServiceSelectionState; + private boolean mOtherServiceEnabled; /** * @hide @@ -150,10 +150,10 @@ public final class ApduServiceInfo implements Parcelable { List<AidGroup> staticAidGroups, List<AidGroup> dynamicAidGroups, boolean requiresUnlock, int bannerResource, int uid, String settingsActivityName, String offHost, String staticOffHost, - boolean isSelected) { + boolean isEnabled) { this(info, onHost, description, staticAidGroups, dynamicAidGroups, requiresUnlock, onHost ? true : false, bannerResource, uid, - settingsActivityName, offHost, staticOffHost, isSelected); + settingsActivityName, offHost, staticOffHost, isEnabled); } /** @@ -162,7 +162,7 @@ public final class ApduServiceInfo implements Parcelable { public ApduServiceInfo(ResolveInfo info, boolean onHost, String description, List<AidGroup> staticAidGroups, List<AidGroup> dynamicAidGroups, boolean requiresUnlock, boolean requiresScreenOn, int bannerResource, int uid, - String settingsActivityName, String offHost, String staticOffHost, boolean isSelected) { + String settingsActivityName, String offHost, String staticOffHost, boolean isEnabled) { this.mService = info; this.mDescription = description; this.mStaticAidGroups = new HashMap<String, AidGroup>(); @@ -181,7 +181,7 @@ public final class ApduServiceInfo implements Parcelable { this.mBannerResourceId = bannerResource; this.mUid = uid; this.mSettingsActivityName = settingsActivityName; - this.mOtherServiceSelectionState = isSelected; + this.mOtherServiceEnabled = isEnabled; } @@ -372,7 +372,7 @@ public final class ApduServiceInfo implements Parcelable { // Set uid mUid = si.applicationInfo.uid; - mOtherServiceSelectionState = false; // support other category + mOtherServiceEnabled = false; // support other category } @@ -744,7 +744,7 @@ public final class ApduServiceInfo implements Parcelable { dest.writeInt(mUid); dest.writeString(mSettingsActivityName); - dest.writeInt(mOtherServiceSelectionState ? 1 : 0); + dest.writeInt(mOtherServiceEnabled ? 1 : 0); }; @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) @@ -772,11 +772,11 @@ public final class ApduServiceInfo implements Parcelable { int bannerResource = source.readInt(); int uid = source.readInt(); String settingsActivityName = source.readString(); - boolean isSelected = source.readInt() != 0; + boolean isEnabled = source.readInt() != 0; return new ApduServiceInfo(info, onHost, description, staticAidGroups, dynamicAidGroups, requiresUnlock, requiresScreenOn, bannerResource, uid, settingsActivityName, offHostName, staticOffHostName, - isSelected); + isEnabled); } @Override @@ -807,7 +807,7 @@ public final class ApduServiceInfo implements Parcelable { pw.println(" Static AID groups:"); for (AidGroup group : mStaticAidGroups.values()) { pw.println(" Category: " + group.getCategory() - + "(selected: " + mOtherServiceSelectionState + ")"); + + "(enabled: " + mOtherServiceEnabled + ")"); for (String aid : group.getAids()) { pw.println(" AID: " + aid); } @@ -815,7 +815,7 @@ public final class ApduServiceInfo implements Parcelable { pw.println(" Dynamic AID groups:"); for (AidGroup group : mDynamicAidGroups.values()) { pw.println(" Category: " + group.getCategory() - + "(selected: " + mOtherServiceSelectionState + ")"); + + "(enabled: " + mOtherServiceEnabled + ")"); for (String aid : group.getAids()) { pw.println(" AID: " + aid); } @@ -827,18 +827,24 @@ public final class ApduServiceInfo implements Parcelable { /** - * @hide + * Enable or disable this CATEGORY_OTHER service. + * + * @param enabled true to indicate if user has enabled this service */ - public void setOtherServiceState(boolean selected) { - mOtherServiceSelectionState = selected; + @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) + public void setOtherServiceEnabled(boolean enabled) { + mOtherServiceEnabled = enabled; } /** - * @hide + * Returns whether this CATEGORY_OTHER service is enabled or not. + * + * @return true to indicate if user has enabled this service */ - public boolean isSelectedOtherService() { - return mOtherServiceSelectionState; + @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) + public boolean isOtherServiceEnabled() { + return mOtherServiceEnabled; } /** diff --git a/core/java/android/os/Binder.java b/core/java/android/os/Binder.java index 3db1cb0500f9..995622004fa6 100644 --- a/core/java/android/os/Binder.java +++ b/core/java/android/os/Binder.java @@ -333,6 +333,12 @@ public class Binder implements IBinder { @CriticalNative public static final native boolean isDirectlyHandlingTransactionNative(); + /** @hide */ + public static final boolean isDirectlyHandlingTransactionNative$ravenwood() { + // Ravenwood doesn't support IPC + return false; + } + private static boolean sIsHandlingBinderTransaction = false; /** @@ -715,7 +721,9 @@ public class Binder implements IBinder { */ public Binder(@Nullable String descriptor) { mObject = getNativeBBinderHolder(); - NoImagePreloadHolder.sRegistry.registerNativeAllocation(this, mObject); + if (mObject != 0L) { + NoImagePreloadHolder.sRegistry.registerNativeAllocation(this, mObject); + } if (FIND_POTENTIAL_LEAKS) { final Class<? extends Binder> klass = getClass(); @@ -1277,6 +1285,10 @@ public class Binder implements IBinder { private static native long getNativeBBinderHolder(); + private static long getNativeBBinderHolder$ravenwood() { + return 0L; + } + /** * By default, we use the calling UID since we can always trust it. */ diff --git a/core/java/android/os/Parcel.java b/core/java/android/os/Parcel.java index 352c9d2ba81f..86628d95b25a 100644 --- a/core/java/android/os/Parcel.java +++ b/core/java/android/os/Parcel.java @@ -1558,7 +1558,7 @@ public final class Parcel { ensureWithinMemoryLimit(typeSize, totalObjects); } - private void ensureWithinMemoryLimit(int typeSize, @NonNull int length) { + private void ensureWithinMemoryLimit(int typeSize, int length) { int estimatedAllocationSize = 0; try { estimatedAllocationSize = Math.multiplyExact(typeSize, length); @@ -2957,6 +2957,14 @@ public final class Parcel { } /** @hide */ + public final void writeException$ravenwood(@NonNull Exception e) { + // Ravenwood doesn't support IPC, no transaction headers needed + writeInt(getExceptionCode(e)); + writeString(e.getMessage()); + writeInt(0); + } + + /** @hide */ public static int getExceptionCode(@NonNull Throwable e) { int code = 0; if (e instanceof Parcelable @@ -3039,6 +3047,12 @@ public final class Parcel { } } + /** @hide */ + public final void writeNoException$ravenwood() { + // Ravenwood doesn't support IPC, no transaction headers needed + writeInt(0); + } + /** * Special function for reading an exception result from the header of * a parcel, to be used after receiving the result of a transaction. This diff --git a/core/java/android/os/RevocableFileDescriptor.java b/core/java/android/os/RevocableFileDescriptor.java index ac2cd60c81b2..7093c49fb4da 100644 --- a/core/java/android/os/RevocableFileDescriptor.java +++ b/core/java/android/os/RevocableFileDescriptor.java @@ -73,11 +73,26 @@ public class RevocableFileDescriptor { init(context, fd); } + public RevocableFileDescriptor(Context context, FileDescriptor fd, Handler handler) + throws IOException { + init(context, fd, handler); + } + /** {@hide} */ public void init(Context context, FileDescriptor fd) throws IOException { + init(context, fd, null); + } + + /** {@hide} */ + public void init(Context context, FileDescriptor fd, Handler handler) throws IOException { mInner = fd; - mOuter = context.getSystemService(StorageManager.class) - .openProxyFileDescriptor(ParcelFileDescriptor.MODE_READ_WRITE, mCallback); + StorageManager sm = context.getSystemService(StorageManager.class); + if (handler != null) { + mOuter = sm.openProxyFileDescriptor(ParcelFileDescriptor.MODE_READ_WRITE, mCallback, + handler); + } else { + mOuter = sm.openProxyFileDescriptor(ParcelFileDescriptor.MODE_READ_WRITE, mCallback); + } } /** diff --git a/core/java/android/os/StrictMode.java b/core/java/android/os/StrictMode.java index 47b6d8d6db30..94f90ccb2d9d 100644 --- a/core/java/android/os/StrictMode.java +++ b/core/java/android/os/StrictMode.java @@ -2018,9 +2018,13 @@ public final class StrictMode { return; } + // Temporarily disable checks so that explicit GC is allowed. + final int oldMask = getThreadPolicyMask(); + setThreadPolicyMask(0); System.gc(); System.runFinalization(); System.gc(); + setThreadPolicyMask(oldMask); // Note: classInstanceLimit is immutable, so this is lock-free // Create the classes array. diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java index 57962f661464..d9c6beeb5813 100644 --- a/core/java/android/os/UserManager.java +++ b/core/java/android/os/UserManager.java @@ -5080,6 +5080,32 @@ public class UserManager { } /** + * Returns list of the profiles of the given user, including userId itself, as well as the + * communal profile, if there is one. + * + * <p>Note that this returns both enabled and not enabled profiles. + * <p>Note that this includes all profile types (not including Restricted profiles). + * + * @hide + */ + @FlaggedApi(android.multiuser.Flags.FLAG_SUPPORT_COMMUNAL_PROFILE) + @RequiresPermission(anyOf = { + Manifest.permission.MANAGE_USERS, + Manifest.permission.CREATE_USERS, + Manifest.permission.QUERY_USERS}) + public List<UserInfo> getProfilesIncludingCommunal(@UserIdInt int userId) { + final List<UserInfo> profiles = getProfiles(userId); + final UserHandle communalProfile = getCommunalProfile(); + if (communalProfile != null) { + final UserInfo communalInfo = getUserInfo(communalProfile.getIdentifier()); + if (communalInfo != null) { + profiles.add(communalInfo); + } + } + return profiles; + } + + /** * Checks if the 2 provided user handles belong to the same profile group. * * @param user one of the two user handles to check. diff --git a/core/java/android/permission/flags.aconfig b/core/java/android/permission/flags.aconfig index 0798f6523a23..7369740bc43c 100644 --- a/core/java/android/permission/flags.aconfig +++ b/core/java/android/permission/flags.aconfig @@ -41,4 +41,11 @@ flag { namespace: "permissions" description: "enable AttributionSource(int, int, String, String, IBinder, String[], AttributionSource)" bug: "304478648" +} + +flag { + name: "op_enable_mobile_data_by_user" + namespace: "permissions" + description: "enables logging of the OP_ENABLE_MOBILE_DATA_BY_USER" + bug: "222650148" }
\ No newline at end of file diff --git a/core/java/android/provider/Telephony.java b/core/java/android/provider/Telephony.java index 27ad45de69e6..bcda25a1bf3b 100644 --- a/core/java/android/provider/Telephony.java +++ b/core/java/android/provider/Telephony.java @@ -3206,6 +3206,15 @@ public final class Telephony { public static final String INFRASTRUCTURE_BITMASK = "infrastructure_bitmask"; /** + * Indicating if the APN is used for eSIM bootsrap provisioning. The default value is 0 (Not + * used for eSIM bootstrap provisioning). + * + * <P>Type: INTEGER</P> + * @hide + */ + public static final String ESIM_BOOTSTRAP_PROVISIONING = "esim_bootstrap_provisioning"; + + /** * MVNO type: * {@code SPN (Service Provider Name), IMSI, GID (Group Identifier Level 1)}. * <P>Type: TEXT</P> diff --git a/core/java/android/security/flags.aconfig b/core/java/android/security/flags.aconfig index 0133bd822182..9bdd0c2db779 100644 --- a/core/java/android/security/flags.aconfig +++ b/core/java/android/security/flags.aconfig @@ -36,3 +36,10 @@ flag { description: "Collect sepolicy hash from sysfs" bug: "308471499" } + +flag { + name: "extend_ecm_to_all_settings" + namespace: "responsible_apis" + description: "Allow all app settings to be restrictable via configuration" + bug: "297372999" +} diff --git a/core/java/android/service/notification/ZenModeConfig.java b/core/java/android/service/notification/ZenModeConfig.java index 828c062d955d..ff4dfc7cc079 100644 --- a/core/java/android/service/notification/ZenModeConfig.java +++ b/core/java/android/service/notification/ZenModeConfig.java @@ -28,6 +28,8 @@ import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_SCREEN_OF import android.annotation.Nullable; import android.app.ActivityManager; import android.app.AlarmManager; +import android.app.AutomaticZenRule; +import android.app.Flags; import android.app.NotificationManager; import android.app.NotificationManager.Policy; import android.compat.annotation.UnsupportedAppUsage; @@ -177,6 +179,10 @@ public class ZenModeConfig implements Parcelable { private static final String RULE_ATT_CREATION_TIME = "creationTime"; private static final String RULE_ATT_ENABLER = "enabler"; private static final String RULE_ATT_MODIFIED = "modified"; + private static final String RULE_ATT_ALLOW_MANUAL = "userInvokable"; + private static final String RULE_ATT_TYPE = "type"; + private static final String RULE_ATT_ICON = "rule_icon"; + private static final String RULE_ATT_TRIGGER_DESC = "triggerDesc"; @UnsupportedAppUsage public boolean allowAlarms = DEFAULT_ALLOW_ALARMS; @@ -212,7 +218,7 @@ public class ZenModeConfig implements Parcelable { allowCallsFrom = source.readInt(); allowMessagesFrom = source.readInt(); user = source.readInt(); - manualRule = source.readParcelable(null, android.service.notification.ZenModeConfig.ZenRule.class); + manualRule = source.readParcelable(null, ZenRule.class); final int len = source.readInt(); if (len > 0) { final String[] ids = new String[len]; @@ -622,6 +628,12 @@ public class ZenModeConfig implements Parcelable { } rt.modified = safeBoolean(parser, RULE_ATT_MODIFIED, false); rt.zenPolicy = readZenPolicyXml(parser); + if (Flags.modesApi()) { + rt.allowManualInvocation = safeBoolean(parser, RULE_ATT_ALLOW_MANUAL, false); + rt.iconResId = safeInt(parser, RULE_ATT_ICON, 0); + rt.triggerDescription = parser.getAttributeValue(null, RULE_ATT_TRIGGER_DESC); + rt.type = safeInt(parser, RULE_ATT_TYPE, AutomaticZenRule.TYPE_UNKNOWN); + } return rt; } @@ -655,6 +667,14 @@ public class ZenModeConfig implements Parcelable { writeZenPolicyXml(rule.zenPolicy, out); } out.attributeBoolean(null, RULE_ATT_MODIFIED, rule.modified); + if (Flags.modesApi()) { + out.attributeBoolean(null, RULE_ATT_ALLOW_MANUAL, rule.allowManualInvocation); + out.attributeInt(null, RULE_ATT_ICON, rule.iconResId); + if (rule.triggerDescription != null) { + out.attribute(null, RULE_ATT_TRIGGER_DESC, rule.triggerDescription); + } + out.attributeInt(null, RULE_ATT_TYPE, rule.type); + } } public static Condition readConditionXml(TypedXmlPullParser parser) { @@ -1726,6 +1746,11 @@ public class ZenModeConfig implements Parcelable { public ZenPolicy zenPolicy; public boolean modified; // rule has been modified from initial creation public String pkg; + public int type = AutomaticZenRule.TYPE_UNKNOWN; + public String triggerDescription; + // TODO (b/308672670): switch to string res name + public int iconResId; + public boolean allowManualInvocation; public ZenRule() { } @@ -1750,6 +1775,12 @@ public class ZenModeConfig implements Parcelable { zenPolicy = source.readParcelable(null, android.service.notification.ZenPolicy.class); modified = source.readInt() == 1; pkg = source.readString(); + if (Flags.modesApi()) { + allowManualInvocation = source.readBoolean(); + iconResId = source.readInt(); + triggerDescription = source.readString(); + type = source.readInt(); + } } @Override @@ -1788,11 +1819,17 @@ public class ZenModeConfig implements Parcelable { dest.writeParcelable(zenPolicy, 0); dest.writeInt(modified ? 1 : 0); dest.writeString(pkg); + if (Flags.modesApi()) { + dest.writeBoolean(allowManualInvocation); + dest.writeInt(iconResId); + dest.writeString(triggerDescription); + dest.writeInt(type); + } } @Override public String toString() { - return new StringBuilder(ZenRule.class.getSimpleName()).append('[') + StringBuilder sb = new StringBuilder(ZenRule.class.getSimpleName()).append('[') .append("id=").append(id) .append(",state=").append(condition == null ? "STATE_FALSE" : Condition.stateToString(condition.state)) @@ -1808,8 +1845,16 @@ public class ZenModeConfig implements Parcelable { .append(",enabler=").append(enabler) .append(",zenPolicy=").append(zenPolicy) .append(",modified=").append(modified) - .append(",condition=").append(condition) - .append(']').toString(); + .append(",condition=").append(condition); + + if (Flags.modesApi()) { + sb.append(",allowManualInvocation=").append(allowManualInvocation) + .append(",iconResId=").append(iconResId) + .append(",triggerDescription=").append(triggerDescription) + .append(",type=").append(type); + } + + return sb.append(']').toString(); } /** @hide */ @@ -1845,7 +1890,7 @@ public class ZenModeConfig implements Parcelable { if (!(o instanceof ZenRule)) return false; if (o == this) return true; final ZenRule other = (ZenRule) o; - return other.enabled == enabled + boolean finalEquals = other.enabled == enabled && other.snoozing == snoozing && Objects.equals(other.name, name) && other.zenMode == zenMode @@ -1858,10 +1903,25 @@ public class ZenModeConfig implements Parcelable { && Objects.equals(other.zenPolicy, zenPolicy) && Objects.equals(other.pkg, pkg) && other.modified == modified; + + if (Flags.modesApi()) { + return finalEquals + && other.allowManualInvocation == allowManualInvocation + && other.iconResId == iconResId + && Objects.equals(other.triggerDescription, triggerDescription) + && other.type == type; + } + + return finalEquals; } @Override public int hashCode() { + if (Flags.modesApi()) { + return Objects.hash(enabled, snoozing, name, zenMode, conditionId, condition, + component, configurationActivity, pkg, id, enabler, zenPolicy, modified, + allowManualInvocation, iconResId, triggerDescription, type); + } return Objects.hash(enabled, snoozing, name, zenMode, conditionId, condition, component, configurationActivity, pkg, id, enabler, zenPolicy, modified); } diff --git a/core/java/android/service/notification/ZenModeDiff.java b/core/java/android/service/notification/ZenModeDiff.java index a4f129ec247e..eb55e40f2c7b 100644 --- a/core/java/android/service/notification/ZenModeDiff.java +++ b/core/java/android/service/notification/ZenModeDiff.java @@ -454,6 +454,11 @@ public class ZenModeDiff { public static final String FIELD_ZEN_POLICY = "zenPolicy"; public static final String FIELD_MODIFIED = "modified"; public static final String FIELD_PKG = "pkg"; + public static final String FIELD_ALLOW_MANUAL = "allowManualInvocation"; + public static final String FIELD_ICON_RES = "iconResId"; + public static final String FIELD_TRIGGER = "triggerDescription"; + public static final String FIELD_TYPE = "type"; + // NOTE: new field strings must match the variable names in ZenModeConfig.ZenRule // Special field to track whether this rule became active or inactive FieldDiff<Boolean> mActiveDiff; @@ -529,6 +534,20 @@ public class ZenModeDiff { if (!Objects.equals(from.pkg, to.pkg)) { addField(FIELD_PKG, new FieldDiff<>(from.pkg, to.pkg)); } + if (!Objects.equals(from.triggerDescription, to.triggerDescription)) { + addField(FIELD_TRIGGER, + new FieldDiff<>(from.triggerDescription, to.triggerDescription)); + } + if (from.type != to.type) { + addField(FIELD_TYPE, new FieldDiff<>(from.type, to.type)); + } + if (from.allowManualInvocation != to.allowManualInvocation) { + addField(FIELD_ALLOW_MANUAL, + new FieldDiff<>(from.allowManualInvocation, to.allowManualInvocation)); + } + if (!Objects.equals(from.iconResId, to.iconResId)) { + addField(FIELD_ICON_RES, new FieldDiff(from.iconResId, to.iconResId)); + } } /** diff --git a/core/java/android/service/timezone/TEST_MAPPING b/core/java/android/service/timezone/TEST_MAPPING index b0ce1dba3509..21a8eab19837 100644 --- a/core/java/android/service/timezone/TEST_MAPPING +++ b/core/java/android/service/timezone/TEST_MAPPING @@ -2,10 +2,10 @@ // TODO(b/182461754): Change to "presubmit" when go/test-mapping-slo-guide allows. "postsubmit": [ { - "name": "FrameworksCoreTests", + "name": "FrameworksTimeCoreTests", "options": [ { - "include-filter": "android.service.timezone." + "include-filter": "android.service." } ] }, diff --git a/core/java/android/tracing/flags.aconfig b/core/java/android/tracing/flags.aconfig new file mode 100644 index 000000000000..4b4f6d661e31 --- /dev/null +++ b/core/java/android/tracing/flags.aconfig @@ -0,0 +1,8 @@ +package: "android.tracing" + +flag { + name: "perfetto_transition_tracing" + namespace: "windowing_tools" + description: "Move transition tracing to Perfetto" + bug: "309630341" +}
\ No newline at end of file diff --git a/core/java/android/view/InputEventReceiver.java b/core/java/android/view/InputEventReceiver.java index 492c9384a969..19e6836ed261 100644 --- a/core/java/android/view/InputEventReceiver.java +++ b/core/java/android/view/InputEventReceiver.java @@ -278,14 +278,4 @@ public abstract class InputEventReceiver { writer.println(prefix + " mSeqMap: " + mSeqMap); writer.println(prefix + " mReceiverPtr:\n" + nativeDump(mReceiverPtr, prefix + " ")); } - - /** - * Factory for InputEventReceiver - */ - public interface Factory { - /** - * Create a new InputReceiver for a given inputChannel - */ - InputEventReceiver createInputEventReceiver(InputChannel inputChannel, Looper looper); - } } diff --git a/core/java/android/view/InsetsSource.java b/core/java/android/view/InsetsSource.java index 0d5704eed4b3..1acc384b18da 100644 --- a/core/java/android/view/InsetsSource.java +++ b/core/java/android/view/InsetsSource.java @@ -18,6 +18,7 @@ package android.view; import static android.view.InsetsSourceProto.FRAME; import static android.view.InsetsSourceProto.TYPE; +import static android.view.InsetsSourceProto.TYPE_NUMBER; import static android.view.InsetsSourceProto.VISIBLE; import static android.view.InsetsSourceProto.VISIBLE_FRAME; import static android.view.WindowInsets.Type.captionBar; @@ -352,6 +353,7 @@ public class InsetsSource implements Parcelable { public void dumpDebug(ProtoOutputStream proto, long fieldId) { final long token = proto.start(fieldId); proto.write(TYPE, WindowInsets.Type.toString(mType)); + proto.write(TYPE_NUMBER, mType); mFrame.dumpDebug(proto, FRAME); if (mVisibleFrame != null) { mVisibleFrame.dumpDebug(proto, VISIBLE_FRAME); diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index a478b3c40df5..d591f896d99a 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -19,8 +19,10 @@ package android.view; import static android.content.res.Resources.ID_NULL; import static android.os.Trace.TRACE_TAG_APP; import static android.view.ContentInfo.SOURCE_DRAG_AND_DROP; +import static android.view.Surface.FRAME_RATE_CATEGORY_HIGH; 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.accessibility.AccessibilityEvent.CONTENT_CHANGE_TYPE_UNDEFINED; import static android.view.displayhash.DisplayHashResultCallback.DISPLAY_HASH_ERROR_INVALID_BOUNDS; import static android.view.displayhash.DisplayHashResultCallback.DISPLAY_HASH_ERROR_MISSING_WINDOW; @@ -28,6 +30,7 @@ import static android.view.displayhash.DisplayHashResultCallback.DISPLAY_HASH_ER import static android.view.displayhash.DisplayHashResultCallback.DISPLAY_HASH_ERROR_UNKNOWN; import static android.view.displayhash.DisplayHashResultCallback.EXTRA_DISPLAY_HASH; import static android.view.displayhash.DisplayHashResultCallback.EXTRA_DISPLAY_HASH_ERROR_CODE; +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.toolkitSetFrameRateReadOnly; import static android.view.flags.Flags.viewVelocityApi; @@ -5521,6 +5524,21 @@ public class View implements Drawable.Callback, KeyEvent.Callback, */ private static final float FRAME_RATE_SIZE_PERCENTAGE_THRESHOLD = 0.07f; + // The preferred frame rate of the view that is mainly used for + // touch boosting, view velocity handling, and TextureView. + private float mPreferredFrameRate = REQUESTED_FRAME_RATE_CATEGORY_DEFAULT; + + @FlaggedApi(FLAG_TOOLKIT_SET_FRAME_RATE_READ_ONLY) + public static final float REQUESTED_FRAME_RATE_CATEGORY_DEFAULT = 0; + @FlaggedApi(FLAG_TOOLKIT_SET_FRAME_RATE_READ_ONLY) + public static final float REQUESTED_FRAME_RATE_CATEGORY_NO_PREFERENCE = -1; + @FlaggedApi(FLAG_TOOLKIT_SET_FRAME_RATE_READ_ONLY) + public static final float REQUESTED_FRAME_RATE_CATEGORY_LOW = -30; + @FlaggedApi(FLAG_TOOLKIT_SET_FRAME_RATE_READ_ONLY) + public static final float REQUESTED_FRAME_RATE_CATEGORY_NORMAL = -60; + @FlaggedApi(FLAG_TOOLKIT_SET_FRAME_RATE_READ_ONLY) + public static final float REQUESTED_FRAME_RATE_CATEGORY_HIGH = -120; + /** * Simple constructor to use when creating a view from code. * @@ -33015,9 +33033,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, return (float) viewSize / screenSize; } - private int calculateFrameRateCategory() { - float sizePercentage = getSizePercentage(); - + private int calculateFrameRateCategory(float sizePercentage) { if (sizePercentage <= FRAME_RATE_SIZE_PERCENTAGE_THRESHOLD) { return FRAME_RATE_CATEGORY_LOW; } else { @@ -33028,9 +33044,24 @@ public class View implements Drawable.Callback, KeyEvent.Callback, private void votePreferredFrameRate() { // use toolkitSetFrameRate flag to gate the change ViewRootImpl viewRootImpl = getViewRootImpl(); + float sizePercentage = getSizePercentage(); + int frameRateCateogry = calculateFrameRateCategory(sizePercentage); if (sToolkitSetFrameRateReadOnlyFlagValue && viewRootImpl != null - && getSizePercentage() > 0) { - viewRootImpl.votePreferredFrameRateCategory(calculateFrameRateCategory()); + && sizePercentage > 0) { + if (mPreferredFrameRate < 0) { + if (mPreferredFrameRate == REQUESTED_FRAME_RATE_CATEGORY_NO_PREFERENCE) { + frameRateCateogry = FRAME_RATE_CATEGORY_NO_PREFERENCE; + } else if (mPreferredFrameRate == REQUESTED_FRAME_RATE_CATEGORY_LOW) { + frameRateCateogry = FRAME_RATE_CATEGORY_LOW; + } else if (mPreferredFrameRate == REQUESTED_FRAME_RATE_CATEGORY_NORMAL) { + frameRateCateogry = FRAME_RATE_CATEGORY_NORMAL; + } else if (mPreferredFrameRate == REQUESTED_FRAME_RATE_CATEGORY_HIGH) { + frameRateCateogry = FRAME_RATE_CATEGORY_HIGH; + } + } else { + viewRootImpl.votePreferredFrameRate(mPreferredFrameRate); + } + viewRootImpl.votePreferredFrameRateCategory(frameRateCateogry); } } @@ -33064,4 +33095,42 @@ public class View implements Drawable.Callback, KeyEvent.Callback, } return 0; } + + /** + * You can set the preferred frame rate for a View using a positive number + * or by specifying the preferred frame rate category using constants, including + * REQUESTED_FRAME_RATE_CATEGORY_NO_PREFERENCE, REQUESTED_FRAME_RATE_CATEGORY_LOW, + * REQUESTED_FRAME_RATE_CATEGORY_NORMAL, REQUESTED_FRAME_RATE_CATEGORY_HIGH. + * Keep in mind that the preferred frame rate affects the frame rate for the next frame, + * so use this method carefully. It's important to note that the preference is valid as + * long as the View is invalidated. + * + * @param frameRate the preferred frame rate of the view. + */ + @FlaggedApi(FLAG_TOOLKIT_SET_FRAME_RATE_READ_ONLY) + public void setRequestedFrameRate(float frameRate) { + if (sToolkitSetFrameRateReadOnlyFlagValue) { + mPreferredFrameRate = frameRate; + } + } + + /** + * Get the current preferred frame rate of the View. + * The value could be negative when preferred frame rate category is set + * instead of perferred frame rate. + * The frame rate category includes + * REQUESTED_FRAME_RATE_CATEGORY_NO_PREFERENCE, REQUESTED_FRAME_RATE_CATEGORY_LOW, + * REQUESTED_FRAME_RATE_CATEGORY_NORMAL, and REQUESTED_FRAME_RATE_CATEGORY_HIGH. + * Note that the frame rate value is valid as long as the View is invalidated. + * + * @return REQUESTED_FRAME_RATE_CATEGORY_DEFAULT by default, + * or value passed to {@link #setRequestedFrameRate(float)}. + */ + @FlaggedApi(FLAG_TOOLKIT_SET_FRAME_RATE_READ_ONLY) + public float getRequestedFrameRate() { + if (sToolkitSetFrameRateReadOnlyFlagValue) { + return mPreferredFrameRate; + } + return 0; + } } diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index c9c1f20d2f37..ac2c5509cac4 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -123,6 +123,7 @@ import android.content.res.TypedArray; import android.graphics.BLASTBufferQueue; import android.graphics.Canvas; import android.graphics.Color; +import android.graphics.ForceDarkType; import android.graphics.FrameInfo; import android.graphics.HardwareRenderer; import android.graphics.HardwareRenderer.FrameDrawingCallback; @@ -981,6 +982,9 @@ public final class ViewRootImpl implements ViewParent, // The preferred frame rate of the view that is mainly used for // touch boosting, view velocity handling, and TextureView. private float mPreferredFrameRate = 0; + // The last preferred frame rate of the view that is mainly used to + // track the difference between the current preferred frame rate and the previous value. + private float mLastPreferredFrameRate = 0; // Used to check if there were any view invalidations in // the previous time frame (FRAME_RATE_IDLENESS_REEVALUATE_TIME). private boolean mHasInvalidation = false; @@ -1796,7 +1800,7 @@ public final class ViewRootImpl implements ViewParent, /** Returns true if force dark should be enabled according to various settings */ @VisibleForTesting - public boolean isForceDarkEnabled() { + public @ForceDarkType.ForceDarkTypeDef int determineForceDarkType() { if (forceInvertColor()) { boolean isForceInvertEnabled = Settings.Secure.getIntForUser( mContext.getContentResolver(), @@ -1808,7 +1812,7 @@ public final class ViewRootImpl implements ViewParent, // for dark mode in configuration.uiMode. Instead, we assume that the force invert // setting will be enabled at the same time dark theme is in the Settings app. if (isForceInvertEnabled) { - return true; + return ForceDarkType.FORCE_INVERT_COLOR_DARK; } } @@ -1822,12 +1826,12 @@ public final class ViewRootImpl implements ViewParent, && a.getBoolean(R.styleable.Theme_forceDarkAllowed, forceDarkAllowedDefault); a.recycle(); } - return useAutoDark; + return useAutoDark ? ForceDarkType.FORCE_DARK : ForceDarkType.NONE; } private void updateForceDarkMode() { if (mAttachInfo.mThreadedRenderer == null) return; - if (mAttachInfo.mThreadedRenderer.setForceDark(isForceDarkEnabled())) { + if (mAttachInfo.mThreadedRenderer.setForceDark(determineForceDarkType())) { // TODO: Don't require regenerating all display lists to apply this setting invalidateWorld(mView); } @@ -3990,10 +3994,14 @@ public final class ViewRootImpl implements ViewParent, } // For the variable refresh rate project. + // We set the preferred frame rate and frame rate category at the end of performTraversals + // when the values are applicable. setPreferredFrameRate(mPreferredFrameRate); setPreferredFrameRateCategory(mPreferredFrameRateCategory); mLastPreferredFrameRateCategory = mPreferredFrameRateCategory; mPreferredFrameRateCategory = FRAME_RATE_CATEGORY_NO_PREFERENCE; + mLastPreferredFrameRate = mPreferredFrameRate; + mPreferredFrameRate = 0; } private void createSyncIfNeeded() { @@ -7369,7 +7377,9 @@ public final class ViewRootImpl implements ViewParent, */ if (mIsFrameRateBoosting && (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_CANCEL)) { - sendDelayedEmptyMessage(MSG_TOUCH_BOOST_TIMEOUT, FRAME_RATE_TOUCH_BOOST_TIME); + mHandler.removeMessages(MSG_TOUCH_BOOST_TIMEOUT); + mHandler.sendEmptyMessageDelayed(MSG_TOUCH_BOOST_TIMEOUT, + FRAME_RATE_TOUCH_BOOST_TIME); } return handled ? FINISH_HANDLED : FORWARD; } @@ -12061,6 +12071,35 @@ public final class ViewRootImpl implements ViewParent, } /** + * Allow Views to vote for the preferred frame rate + * When determining the preferred frame rate value, + * we follow this logic: If no preferred frame rate has been set yet, + * we assign the value of frameRate as the preferred frame rate. + * If either the current or the new preferred frame rate exceeds 60 Hz, + * we select the higher value between them. + * However, if both values are 60 Hz or lower, we set the preferred frame rate + * to 60 Hz to maintain optimal performance. + * + * @param frameRate the preferred frame rate of a View + */ + @VisibleForTesting(visibility = VisibleForTesting.Visibility.PROTECTED) + public void votePreferredFrameRate(float frameRate) { + if (frameRate <= 0) { + return; + } + + if (mPreferredFrameRate == 0) { + mPreferredFrameRate = frameRate; + } else if (frameRate > 60 || mPreferredFrameRate > 60) { + mPreferredFrameRate = Math.max(mPreferredFrameRate, frameRate); + } else if (mPreferredFrameRate != frameRate) { + mPreferredFrameRate = 60; + } + + mHasInvalidation = true; + } + + /** * Get the value of mPreferredFrameRateCategory */ @VisibleForTesting diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java index cfec08120776..c73514250e3b 100644 --- a/core/java/android/view/WindowManager.java +++ b/core/java/android/view/WindowManager.java @@ -17,7 +17,6 @@ package android.view; import static android.content.pm.ActivityInfo.COLOR_MODE_DEFAULT; -import static android.view.flags.Flags.FLAG_WM_DISPLAY_REFRESH_RATE_TEST; import static android.view.View.STATUS_BAR_DISABLE_BACK; import static android.view.View.STATUS_BAR_DISABLE_CLOCK; import static android.view.View.STATUS_BAR_DISABLE_EXPAND; @@ -3907,7 +3906,7 @@ public interface WindowManager extends ViewManager { * This value is ignored if {@link #preferredDisplayModeId} is set. * @hide */ - @FlaggedApi(FLAG_WM_DISPLAY_REFRESH_RATE_TEST) + @SuppressLint("UnflaggedApi") // @TestApi without associated feature. @TestApi public float preferredMinDisplayRefreshRate; @@ -3917,7 +3916,7 @@ public interface WindowManager extends ViewManager { * This value is ignored if {@link #preferredDisplayModeId} is set. * @hide */ - @FlaggedApi(FLAG_WM_DISPLAY_REFRESH_RATE_TEST) + @SuppressLint("UnflaggedApi") // @TestApi without associated feature. @TestApi public float preferredMaxDisplayRefreshRate; diff --git a/core/java/android/view/flags/refresh_rate_flags.aconfig b/core/java/android/view/flags/refresh_rate_flags.aconfig index cc951cf46870..a467afe5d06a 100644 --- a/core/java/android/view/flags/refresh_rate_flags.aconfig +++ b/core/java/android/view/flags/refresh_rate_flags.aconfig @@ -42,11 +42,4 @@ flag { namespace: "core_graphics" description: "Enable the `setFrameRate` callback" bug: "299946220" -} - -flag { - name: "wm_display_refresh_rate_test" - namespace: "core_graphics" - description: "Adds WindowManager display refresh rate fields to test API" - bug: "304475199" }
\ No newline at end of file diff --git a/core/java/android/widget/OWNERS b/core/java/android/widget/OWNERS index 7f0a651c6420..e20357fa2dd9 100644 --- a/core/java/android/widget/OWNERS +++ b/core/java/android/widget/OWNERS @@ -12,6 +12,6 @@ per-file TextView*,Edit*,Selection* = file:../text/OWNERS per-file SpellChecker.java = file:../view/inputmethod/OWNERS -per-file RemoteViews* = file:../appwidget/OWNERS +per-file Remote* = file:../appwidget/OWNERS per-file Toast.java = juliacr@google.com, jeffdq@google.com diff --git a/core/java/android/widget/RemoteCollectionItemsAdapter.java b/core/java/android/widget/RemoteCollectionItemsAdapter.java index d84330828bf7..9b396aeea9eb 100644 --- a/core/java/android/widget/RemoteCollectionItemsAdapter.java +++ b/core/java/android/widget/RemoteCollectionItemsAdapter.java @@ -18,6 +18,7 @@ package android.widget; import android.annotation.NonNull; import android.annotation.Nullable; +import android.appwidget.AppWidgetHostView; import android.util.SparseIntArray; import android.view.View; import android.view.ViewGroup; @@ -25,8 +26,6 @@ import android.widget.RemoteViews.ColorResources; import android.widget.RemoteViews.InteractionHandler; import android.widget.RemoteViews.RemoteCollectionItems; -import com.android.internal.R; - import java.util.stream.IntStream; /** @@ -178,40 +177,14 @@ class RemoteCollectionItemsAdapter extends BaseAdapter { RemoteViews item = mItems.getItemView(position); item.addFlags(RemoteViews.FLAG_WIDGET_IS_COLLECTION_CHILD); - View reapplyView = getViewToReapply(convertView, item); - - // Reapply the RemoteViews if we can. - if (reapplyView != null) { - try { - item.reapply( - parent.getContext(), - reapplyView, - mInteractionHandler, - null /* size */, - mColorResources); - return reapplyView; - } catch (RuntimeException e) { - // We can't reapply for some reason, we'll fallback to an apply and inflate a - // new view. - } - } - - return item.apply( - parent.getContext(), - parent, - mInteractionHandler, - null /* size */, - mColorResources); - } - - /** Returns {@code convertView} if it can be used to reapply {@code item}, or null otherwise. */ - @Nullable - private static View getViewToReapply(@Nullable View convertView, @NonNull RemoteViews item) { - if (convertView == null) return null; - - Object layoutIdTag = convertView.getTag(R.id.widget_frame); - if (!(layoutIdTag instanceof Integer)) return null; - return item.getLayoutId() == (Integer) layoutIdTag ? convertView : null; + AppWidgetHostView newView = convertView instanceof AppWidgetHostView.AdapterChildHostView + widgetChildView + ? widgetChildView + : new AppWidgetHostView.AdapterChildHostView(parent.getContext()); + newView.setInteractionHandler(mInteractionHandler); + newView.setColorResourcesNoReapply(mColorResources); + newView.updateAppWidget(item); + return newView; } } diff --git a/core/java/android/widget/RemoteViews.java b/core/java/android/widget/RemoteViews.java index 403b403be961..a919c0079cea 100644 --- a/core/java/android/widget/RemoteViews.java +++ b/core/java/android/widget/RemoteViews.java @@ -6958,13 +6958,13 @@ public class RemoteViews implements Parcelable, Filter { View parent = (View) view.getParent(); // Break the for loop on the first encounter of: // 1) an AdapterView, - // 2) an AppWidgetHostView that is not a RemoteViewsFrameLayout, or + // 2) an AppWidgetHostView that is not a child of an adapter view, or // 3) a null parent. // 2) and 3) are unexpected and catch the case where a child is not // correctly parented in an AdapterView. while (parent != null && !(parent instanceof AdapterView<?>) && !((parent instanceof AppWidgetHostView) - && !(parent instanceof RemoteViewsAdapter.RemoteViewsFrameLayout))) { + && !(parent instanceof AppWidgetHostView.AdapterChildHostView))) { parent = (View) parent.getParent(); } diff --git a/core/java/android/widget/RemoteViewsAdapter.java b/core/java/android/widget/RemoteViewsAdapter.java index 61a7599e8f73..2f28a8704cd3 100644 --- a/core/java/android/widget/RemoteViewsAdapter.java +++ b/core/java/android/widget/RemoteViewsAdapter.java @@ -368,7 +368,7 @@ public class RemoteViewsAdapter extends BaseAdapter implements Handler.Callback * A FrameLayout which contains a loading view, and manages the re/applying of RemoteViews when * they are loaded. */ - static class RemoteViewsFrameLayout extends AppWidgetHostView { + static class RemoteViewsFrameLayout extends AppWidgetHostView.AdapterChildHostView { private final FixedSizeRemoteViewsCache mCache; public int cacheIndex = -1; @@ -408,11 +408,6 @@ public class RemoteViewsAdapter extends BaseAdapter implements Handler.Callback } @Override - protected Context getRemoteContextEnsuringCorrectCachedApkPath() { - return null; - } - - @Override protected View getErrorView() { // Use the default loading view as the error view. return getDefaultView(); diff --git a/core/java/android/window/BackProgressAnimator.java b/core/java/android/window/BackProgressAnimator.java index e58c044730ae..e7280d0e7867 100644 --- a/core/java/android/window/BackProgressAnimator.java +++ b/core/java/android/window/BackProgressAnimator.java @@ -109,6 +109,7 @@ public class BackProgressAnimator { mLastBackEvent = event; mCallback = callback; mBackAnimationInProgress = true; + updateProgressValue(0); } /** diff --git a/core/java/android/window/flags/windowing_sdk.aconfig b/core/java/android/window/flags/windowing_sdk.aconfig index 24dc6dbfede8..0ad6c99422b8 100644 --- a/core/java/android/window/flags/windowing_sdk.aconfig +++ b/core/java/android/window/flags/windowing_sdk.aconfig @@ -29,3 +29,10 @@ flag { description: "Whether to dispatch window resize through ClientTransaction is enabled" bug: "301870955" } + +flag { + namespace: "windowing_sdk" + name: "fullscreen_dim_flag" + description: "Whether to allow showing fullscreen dim on ActivityEmbedding split" + bug: "253533308" +}
\ No newline at end of file diff --git a/core/java/com/android/internal/app/IAppOpsService.aidl b/core/java/com/android/internal/app/IAppOpsService.aidl index 1b05982a7569..492e2ac7cc28 100644 --- a/core/java/com/android/internal/app/IAppOpsService.aidl +++ b/core/java/com/android/internal/app/IAppOpsService.aidl @@ -42,22 +42,18 @@ import com.android.internal.app.MessageSamplingConfig; // frameworks/native/libs/permission/include/binder/IAppOpsService.h must match the order here. // Please be careful to respect both these issues when modifying this file. interface IAppOpsService { - // Deprecated, use checkOperationWithState instead. + // These methods are also called by native code, so please be careful that the number in + // frameworks/native/libs/permission/include/binder/IAppOpsService.h matches the ordering here. int checkOperation(int code, int uid, String packageName); - // Deprecated, use noteOperationWithState instead. SyncNotedAppOp noteOperation(int code, int uid, String packageName, @nullable String attributionTag, boolean shouldCollectAsyncNotedOp, String message, boolean shouldCollectMessage); - // Deprecated, use startOperationWithState instead. SyncNotedAppOp startOperation(IBinder clientId, int code, int uid, String packageName, @nullable String attributionTag, boolean startIfModeDefault, boolean shouldCollectAsyncNotedOp, String message, boolean shouldCollectMessage, int attributionFlags, int attributionChainId); - // Deprecated, use finishOperationWithState instead. @UnsupportedAppUsage void finishOperation(IBinder clientId, int code, int uid, String packageName, @nullable String attributionTag); - // These methods are also called by native code, so please be careful that the number in - // frameworks/native/libs/permission/include/binder/IAppOpsService.h matches the ordering here. void startWatchingMode(int op, String packageName, IAppOpsCallback callback); void stopWatchingMode(IAppOpsCallback callback); int permissionToOpCode(String permission); @@ -138,33 +134,20 @@ interface IAppOpsService { void stopWatchingAsyncNoted(String packageName, IAppOpsAsyncNotedCallback callback); List<AsyncNotedAppOp> extractAsyncOps(String packageName); - // Deprecated, use checkOperationWithStateRaw instead. int checkOperationRaw(int code, int uid, String packageName, @nullable String attributionTag); void reloadNonHistoricalState(); void collectNoteOpCallsForValidation(String stackTrace, int op, String packageName, long version); - // These methods are also called by native code, so please be careful that the number in - // frameworks/native/libs/permission/include/binder/IAppOpsService.h matches the ordering here. - int checkOperationWithState(int code, in AttributionSourceState attributionSourceState); - int checkOperationWithStateRaw(int code, in AttributionSourceState attributionSourceState); - SyncNotedAppOp noteOperationWithState(int code, in AttributionSourceState attributionSourceState, - boolean shouldCollectAsyncNotedOp, String message, boolean shouldCollectMessage); - SyncNotedAppOp startOperationWithState(IBinder clientId, int code, - in AttributionSourceState attributionSourceState, boolean startIfModeDefault, - boolean shouldCollectAsyncNotedOp, String message, boolean shouldCollectMessage, - int attributionFlags, int attributionChainId); - void finishOperationWithState(IBinder clientId, int code, in AttributionSourceState attributionSourceState); - // End of methods also called by native code (there may be more blocks like this of native - // methods later in this file). + SyncNotedAppOp noteProxyOperationWithState(int code, - in AttributionSourceState attributionSourceStateState, - boolean shouldCollectAsyncNotedOp, String message, boolean shouldCollectMessage, - boolean skipProxyOperation); + in AttributionSourceState attributionSourceStateState, + boolean shouldCollectAsyncNotedOp, String message, boolean shouldCollectMessage, + boolean skipProxyOperation); SyncNotedAppOp startProxyOperationWithState(IBinder clientId, int code, - in AttributionSourceState attributionSourceStateState, boolean startIfModeDefault, - boolean shouldCollectAsyncNotedOp, String message, boolean shouldCollectMessage, - boolean skipProxyOperation, int proxyAttributionFlags, int proxiedAttributionFlags, - int attributionChainId); + in AttributionSourceState attributionSourceStateState, boolean startIfModeDefault, + boolean shouldCollectAsyncNotedOp, String message, boolean shouldCollectMessage, + boolean skipProxyOperation, int proxyAttributionFlags, int proxiedAttributionFlags, + int attributionChainId); void finishProxyOperationWithState(IBinder clientId, int code, - in AttributionSourceState attributionSourceStateState, boolean skipProxyOperation); + in AttributionSourceState attributionSourceStateState, boolean skipProxyOperation); } diff --git a/core/java/com/android/internal/content/PackageMonitor.java b/core/java/com/android/internal/content/PackageMonitor.java index 9d88a2341fad..d85227f1a0a8 100644 --- a/core/java/com/android/internal/content/PackageMonitor.java +++ b/core/java/com/android/internal/content/PackageMonitor.java @@ -70,9 +70,6 @@ public abstract class PackageMonitor extends android.content.BroadcastReceiver { mPackageFilt = new IntentFilter(); // Settings app sends the broadcast mPackageFilt.addAction(Intent.ACTION_QUERY_PACKAGE_RESTART); - // AMS sends the broadcast - mPackageFilt.addAction(Intent.ACTION_PACKAGE_RESTARTED); - mPackageFilt.addAction(Intent.ACTION_PACKAGE_DATA_CLEARED); mPackageFilt.addDataScheme("package"); if (isCore) { mPackageFilt.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY); diff --git a/core/java/com/android/internal/util/FastXmlSerializer.java b/core/java/com/android/internal/util/FastXmlSerializer.java deleted file mode 100644 index 929c9e8bb8c1..000000000000 --- a/core/java/com/android/internal/util/FastXmlSerializer.java +++ /dev/null @@ -1,424 +0,0 @@ -/* - * Copyright (C) 2006 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS 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.util; - -import android.compat.annotation.UnsupportedAppUsage; - -import org.xmlpull.v1.XmlSerializer; - -import java.io.IOException; -import java.io.OutputStream; -import java.io.OutputStreamWriter; -import java.io.UnsupportedEncodingException; -import java.io.Writer; -import java.nio.ByteBuffer; -import java.nio.CharBuffer; -import java.nio.charset.Charset; -import java.nio.charset.CharsetEncoder; -import java.nio.charset.CoderResult; -import java.nio.charset.CodingErrorAction; -import java.nio.charset.IllegalCharsetNameException; -import java.nio.charset.UnsupportedCharsetException; - -/** - * This is a quick and dirty implementation of XmlSerializer that isn't horribly - * painfully slow like the normal one. It only does what is needed for the - * specific XML files being written with it. - */ -public class FastXmlSerializer implements XmlSerializer { - private static final String ESCAPE_TABLE[] = new String[] { - "�", "", "", "", "", "", "", "", // 0-7 - "", "	", " ", "", "", " ", "", "", // 8-15 - "", "", "", "", "", "", "", "", // 16-23 - "", "", "", "", "", "", "", "", // 24-31 - null, null, """, null, null, null, "&", null, // 32-39 - null, null, null, null, null, null, null, null, // 40-47 - null, null, null, null, null, null, null, null, // 48-55 - null, null, null, null, "<", null, ">", null, // 56-63 - }; - - private static final int DEFAULT_BUFFER_LEN = 32*1024; - - private static String sSpace = " "; - - private final int mBufferLen; - private final char[] mText; - private int mPos; - - private Writer mWriter; - - private OutputStream mOutputStream; - private CharsetEncoder mCharset; - private ByteBuffer mBytes; - - private boolean mIndent = false; - private boolean mInTag; - - private int mNesting = 0; - private boolean mLineStart = true; - - @UnsupportedAppUsage - public FastXmlSerializer() { - this(DEFAULT_BUFFER_LEN); - } - - /** - * Allocate a FastXmlSerializer with the given internal output buffer size. If the - * size is zero or negative, then the default buffer size will be used. - * - * @param bufferSize Size in bytes of the in-memory output buffer that the writer will use. - */ - public FastXmlSerializer(int bufferSize) { - mBufferLen = (bufferSize > 0) ? bufferSize : DEFAULT_BUFFER_LEN; - mText = new char[mBufferLen]; - mBytes = ByteBuffer.allocate(mBufferLen); - } - - private void append(char c) throws IOException { - int pos = mPos; - if (pos >= (mBufferLen-1)) { - flush(); - pos = mPos; - } - mText[pos] = c; - mPos = pos+1; - } - - private void append(String str, int i, final int length) throws IOException { - if (length > mBufferLen) { - final int end = i + length; - while (i < end) { - int next = i + mBufferLen; - append(str, i, next<end ? mBufferLen : (end-i)); - i = next; - } - return; - } - int pos = mPos; - if ((pos+length) > mBufferLen) { - flush(); - pos = mPos; - } - str.getChars(i, i+length, mText, pos); - mPos = pos + length; - } - - private void append(char[] buf, int i, final int length) throws IOException { - if (length > mBufferLen) { - final int end = i + length; - while (i < end) { - int next = i + mBufferLen; - append(buf, i, next<end ? mBufferLen : (end-i)); - i = next; - } - return; - } - int pos = mPos; - if ((pos+length) > mBufferLen) { - flush(); - pos = mPos; - } - System.arraycopy(buf, i, mText, pos, length); - mPos = pos + length; - } - - private void append(String str) throws IOException { - append(str, 0, str.length()); - } - - private void appendIndent(int indent) throws IOException { - indent *= 4; - if (indent > sSpace.length()) { - indent = sSpace.length(); - } - append(sSpace, 0, indent); - } - - private void escapeAndAppendString(final String string) throws IOException { - final int N = string.length(); - final char NE = (char)ESCAPE_TABLE.length; - final String[] escapes = ESCAPE_TABLE; - int lastPos = 0; - int pos; - for (pos=0; pos<N; pos++) { - char c = string.charAt(pos); - if (c >= NE) continue; - String escape = escapes[c]; - if (escape == null) continue; - if (lastPos < pos) append(string, lastPos, pos-lastPos); - lastPos = pos + 1; - append(escape); - } - if (lastPos < pos) append(string, lastPos, pos-lastPos); - } - - private void escapeAndAppendString(char[] buf, int start, int len) throws IOException { - final char NE = (char)ESCAPE_TABLE.length; - final String[] escapes = ESCAPE_TABLE; - int end = start+len; - int lastPos = start; - int pos; - for (pos=start; pos<end; pos++) { - char c = buf[pos]; - if (c >= NE) continue; - String escape = escapes[c]; - if (escape == null) continue; - if (lastPos < pos) append(buf, lastPos, pos-lastPos); - lastPos = pos + 1; - append(escape); - } - if (lastPos < pos) append(buf, lastPos, pos-lastPos); - } - - public XmlSerializer attribute(String namespace, String name, String value) throws IOException, - IllegalArgumentException, IllegalStateException { - append(' '); - if (namespace != null) { - append(namespace); - append(':'); - } - append(name); - append("=\""); - - escapeAndAppendString(value); - append('"'); - mLineStart = false; - return this; - } - - public void cdsect(String text) throws IOException, IllegalArgumentException, - IllegalStateException { - throw new UnsupportedOperationException(); - } - - public void comment(String text) throws IOException, IllegalArgumentException, - IllegalStateException { - throw new UnsupportedOperationException(); - } - - public void docdecl(String text) throws IOException, IllegalArgumentException, - IllegalStateException { - throw new UnsupportedOperationException(); - } - - public void endDocument() throws IOException, IllegalArgumentException, IllegalStateException { - flush(); - } - - public XmlSerializer endTag(String namespace, String name) throws IOException, - IllegalArgumentException, IllegalStateException { - mNesting--; - if (mInTag) { - append(" />\n"); - } else { - if (mIndent && mLineStart) { - appendIndent(mNesting); - } - append("</"); - if (namespace != null) { - append(namespace); - append(':'); - } - append(name); - append(">\n"); - } - mLineStart = true; - mInTag = false; - return this; - } - - public void entityRef(String text) throws IOException, IllegalArgumentException, - IllegalStateException { - throw new UnsupportedOperationException(); - } - - private void flushBytes() throws IOException { - int position; - if ((position = mBytes.position()) > 0) { - mBytes.flip(); - mOutputStream.write(mBytes.array(), 0, position); - mBytes.clear(); - } - } - - public void flush() throws IOException { - //Log.i("PackageManager", "flush mPos=" + mPos); - if (mPos > 0) { - if (mOutputStream != null) { - CharBuffer charBuffer = CharBuffer.wrap(mText, 0, mPos); - CoderResult result = mCharset.encode(charBuffer, mBytes, true); - while (true) { - if (result.isError()) { - throw new IOException(result.toString()); - } else if (result.isOverflow()) { - flushBytes(); - result = mCharset.encode(charBuffer, mBytes, true); - continue; - } - break; - } - flushBytes(); - mOutputStream.flush(); - } else { - mWriter.write(mText, 0, mPos); - mWriter.flush(); - } - mPos = 0; - } - } - - public int getDepth() { - throw new UnsupportedOperationException(); - } - - public boolean getFeature(String name) { - throw new UnsupportedOperationException(); - } - - public String getName() { - throw new UnsupportedOperationException(); - } - - public String getNamespace() { - throw new UnsupportedOperationException(); - } - - public String getPrefix(String namespace, boolean generatePrefix) - throws IllegalArgumentException { - throw new UnsupportedOperationException(); - } - - public Object getProperty(String name) { - throw new UnsupportedOperationException(); - } - - public void ignorableWhitespace(String text) throws IOException, IllegalArgumentException, - IllegalStateException { - throw new UnsupportedOperationException(); - } - - public void processingInstruction(String text) throws IOException, IllegalArgumentException, - IllegalStateException { - throw new UnsupportedOperationException(); - } - - public void setFeature(String name, boolean state) throws IllegalArgumentException, - IllegalStateException { - if (name.equals("http://xmlpull.org/v1/doc/features.html#indent-output")) { - mIndent = true; - return; - } - throw new UnsupportedOperationException(); - } - - public void setOutput(OutputStream os, String encoding) throws IOException, - IllegalArgumentException, IllegalStateException { - if (os == null) - throw new IllegalArgumentException(); - if (true) { - try { - mCharset = Charset.forName(encoding).newEncoder() - .onMalformedInput(CodingErrorAction.REPLACE) - .onUnmappableCharacter(CodingErrorAction.REPLACE); - } catch (IllegalCharsetNameException e) { - throw (UnsupportedEncodingException) (new UnsupportedEncodingException( - encoding).initCause(e)); - } catch (UnsupportedCharsetException e) { - throw (UnsupportedEncodingException) (new UnsupportedEncodingException( - encoding).initCause(e)); - } - mOutputStream = os; - } else { - setOutput( - encoding == null - ? new OutputStreamWriter(os) - : new OutputStreamWriter(os, encoding)); - } - } - - public void setOutput(Writer writer) throws IOException, IllegalArgumentException, - IllegalStateException { - mWriter = writer; - } - - public void setPrefix(String prefix, String namespace) throws IOException, - IllegalArgumentException, IllegalStateException { - throw new UnsupportedOperationException(); - } - - public void setProperty(String name, Object value) throws IllegalArgumentException, - IllegalStateException { - throw new UnsupportedOperationException(); - } - - public void startDocument(String encoding, Boolean standalone) throws IOException, - IllegalArgumentException, IllegalStateException { - append("<?xml version='1.0' encoding='utf-8'"); - if (standalone != null) { - append(" standalone='" + (standalone ? "yes" : "no") + "'"); - } - append(" ?>\n"); - mLineStart = true; - } - - public XmlSerializer startTag(String namespace, String name) throws IOException, - IllegalArgumentException, IllegalStateException { - if (mInTag) { - append(">\n"); - } - if (mIndent) { - appendIndent(mNesting); - } - mNesting++; - append('<'); - if (namespace != null) { - append(namespace); - append(':'); - } - append(name); - mInTag = true; - mLineStart = false; - return this; - } - - public XmlSerializer text(char[] buf, int start, int len) throws IOException, - IllegalArgumentException, IllegalStateException { - if (mInTag) { - append(">"); - mInTag = false; - } - escapeAndAppendString(buf, start, len); - if (mIndent) { - mLineStart = buf[start+len-1] == '\n'; - } - return this; - } - - public XmlSerializer text(String text) throws IOException, IllegalArgumentException, - IllegalStateException { - if (mInTag) { - append(">"); - mInTag = false; - } - escapeAndAppendString(text); - if (mIndent) { - mLineStart = text.length() > 0 && (text.charAt(text.length()-1) == '\n'); - } - return this; - } - -} diff --git a/core/jni/Android.bp b/core/jni/Android.bp index 3795fc8594ae..440a33244a62 100644 --- a/core/jni/Android.bp +++ b/core/jni/Android.bp @@ -43,7 +43,10 @@ cc_library_shared_for_libandroid_runtime { "-Wall", "-Werror", + "-Wextra", + "-Wthread-safety", "-Wno-error=deprecated-declarations", + "-Wno-unused-parameter", "-Wunused", "-Wunreachable-code", diff --git a/core/jni/android_content_res_ResourceTimer.cpp b/core/jni/android_content_res_ResourceTimer.cpp index 91e3c921afe6..66bda6100b31 100644 --- a/core/jni/android_content_res_ResourceTimer.cpp +++ b/core/jni/android_content_res_ResourceTimer.cpp @@ -44,9 +44,9 @@ static struct { static int NativeGetTimers(JNIEnv* env, jobject /*clazz*/, jobjectArray timer, jboolean reset) { size_t size = ResourceTimer::counterSize; - if (jsize st = env->GetArrayLength(timer); st < size) { - // Shrink the size to the minimum of the available counters and the available space. - size = st; + if (size_t st = env->GetArrayLength(timer); st < size) { + // Shrink the size to the minimum of the available counters and the available space. + size = st; } for (size_t i = 0; i < size; i++) { ResourceTimer::Timer src; diff --git a/core/jni/android_hardware_camera2_DngCreator.cpp b/core/jni/android_hardware_camera2_DngCreator.cpp index 30e546cc290d..82570be8e329 100644 --- a/core/jni/android_hardware_camera2_DngCreator.cpp +++ b/core/jni/android_hardware_camera2_DngCreator.cpp @@ -1892,8 +1892,8 @@ static sp<TiffWriter> DngCreator_setup(JNIEnv* env, jobject thiz, uint32_t image camera_metadata_entry entry = results.find(ANDROID_SENSOR_NOISE_PROFILE); - const status_t numPlaneColors = isBayer ? 3 : 1; - const status_t numCfaChannels = isBayer ? 4 : 1; + const unsigned long numPlaneColors = isBayer ? 3 : 1; + const unsigned long numCfaChannels = isBayer ? 4 : 1; uint8_t cfaOut[numCfaChannels]; if ((err = convertCFA(cfaEnum, /*out*/cfaOut)) != OK) { diff --git a/core/jni/android_hardware_camera2_impl_CameraExtensionJpegProcessor.cpp b/core/jni/android_hardware_camera2_impl_CameraExtensionJpegProcessor.cpp index 139075907bf3..4bde87f65326 100644 --- a/core/jni/android_hardware_camera2_impl_CameraExtensionJpegProcessor.cpp +++ b/core/jni/android_hardware_camera2_impl_CameraExtensionJpegProcessor.cpp @@ -599,7 +599,7 @@ static jint CameraExtensionJpegProcessor_compressJpegFromYUV420p( quality, cropLeft, cropTop, cropRight, cropBottom, rot90); size_t finalJpegSize = actualJpegSize + sizeof(CameraBlob); - if (finalJpegSize > outBufCapacity) { + if (finalJpegSize > static_cast<size_t>(outBufCapacity)) { ALOGE("%s: Final jpeg buffer %zu not large enough for the jpeg blob header with "\ "capacity %d", __FUNCTION__, finalJpegSize, outBufCapacity); return actualJpegSize; diff --git a/core/jni/android_media_AudioProductStrategies.cpp b/core/jni/android_media_AudioProductStrategies.cpp index 4b563d7f3bd8..7c9dae0ef306 100644 --- a/core/jni/android_media_AudioProductStrategies.cpp +++ b/core/jni/android_media_AudioProductStrategies.cpp @@ -88,12 +88,12 @@ static jint convertAudioProductStrategiesFromNative( int attrGroupIndex = 0; std::map<int /**attributesGroupIndex*/, std::vector<VolumeGroupAttributes> > groups; for (const auto &attr : strategy.getVolumeGroupAttributes()) { - int groupId = attr.getGroupId(); + auto groupId = attr.getGroupId(); int streamType = attr.getStreamType(); const auto &iter = std::find_if(begin(groups), end(groups), [groupId, streamType](const auto &iter) { const auto &frontAttr = iter.second.front(); - return frontAttr.getGroupId() == groupId && frontAttr.getStreamType() == streamType; + return (frontAttr.getGroupId() == groupId && frontAttr.getStreamType() == streamType); }); // Same Volume Group Id and same stream type if (iter != end(groups)) { diff --git a/core/jni/android_media_AudioSystem.cpp b/core/jni/android_media_AudioSystem.cpp index 6440cc3952f8..3413ededb889 100644 --- a/core/jni/android_media_AudioSystem.cpp +++ b/core/jni/android_media_AudioSystem.cpp @@ -2501,7 +2501,7 @@ static std::vector<uid_t> convertJIntArrayToUidVector(JNIEnv *env, jintArray jAr int *nativeArray = nullptr; nativeArray = env->GetIntArrayElements(jArray, 0); if (nativeArray != nullptr) { - for (size_t i = 0; i < len; i++) { + for (size_t i = 0; i < static_cast<size_t>(len); i++) { nativeVector.push_back(nativeArray[i]); } env->ReleaseIntArrayElements(jArray, nativeArray, 0); @@ -2565,7 +2565,7 @@ static jint android_media_AudioSystem_setSupportedSystemUsages(JNIEnv *env, jobj if (nativeSystemUsages != nullptr) { jsize len = env->GetArrayLength(systemUsages); - for (size_t i = 0; i < len; i++) { + for (size_t i = 0; i < static_cast<size_t>(len); i++) { audio_usage_t nativeAudioUsage = static_cast<audio_usage_t>(nativeSystemUsages[i]); nativeSystemUsagesVector.push_back(nativeAudioUsage); @@ -2776,7 +2776,7 @@ static jint android_media_AudioSystem_getDevicesForAttributes(JNIEnv *env, jobje return jStatus; } - if (devices.size() > maxResultSize) { + if (devices.size() > static_cast<size_t>(maxResultSize)) { return AUDIO_JAVA_INVALID_OPERATION; } size_t index = 0; diff --git a/core/jni/android_net_LocalSocketImpl.cpp b/core/jni/android_net_LocalSocketImpl.cpp index 9bd07007586c..47b4a469aa5b 100644 --- a/core/jni/android_net_LocalSocketImpl.cpp +++ b/core/jni/android_net_LocalSocketImpl.cpp @@ -221,7 +221,7 @@ static int socket_write_all(JNIEnv *env, jobject object, int fd, ssize_t rc = SendFileDescriptorVector(fd, buffer, len, fds); - while (rc != len) { + while (rc != static_cast<ssize_t>(len)) { if (rc == -1) { jniThrowIOException(env, errno); return -1; diff --git a/core/jni/android_os_HwBlob.cpp b/core/jni/android_os_HwBlob.cpp index a9db91be1d5b..e554b44233b5 100644 --- a/core/jni/android_os_HwBlob.cpp +++ b/core/jni/android_os_HwBlob.cpp @@ -265,7 +265,7 @@ jobject JHwBlob::NewObject(JNIEnv *env, size_t size) { // justify passing such a large amount of data over this path. So the // alternative (updating the constructor and other code to accept other // types, should also probably not be taken in this case). - CHECK_LE(size, std::numeric_limits<jint>::max()); + CHECK_LE(size, static_cast<size_t>(std::numeric_limits<jint>::max())); return env->NewObject(clazz.get(), constructID, static_cast<jint>(size)); } diff --git a/core/jni/android_os_Parcel.cpp b/core/jni/android_os_Parcel.cpp index 4d8dac1daaf0..3539476b8ce8 100644 --- a/core/jni/android_os_Parcel.cpp +++ b/core/jni/android_os_Parcel.cpp @@ -691,7 +691,7 @@ static jboolean android_os_Parcel_hasFileDescriptorsInRange(JNIEnv* env, jclass // String tries to allocate itself on the stack, within a known size, but will // make a heap allocation if not. -template <size_t StackReserve> +template <jsize StackReserve> class StackString { public: StackString(JNIEnv* env, jstring str) : mEnv(env), mJStr(str) { diff --git a/core/jni/android_os_PerformanceHintManager.cpp b/core/jni/android_os_PerformanceHintManager.cpp index 27c4cd4d2cd1..95bf49fe501e 100644 --- a/core/jni/android_os_PerformanceHintManager.cpp +++ b/core/jni/android_os_PerformanceHintManager.cpp @@ -224,7 +224,7 @@ static jintArray nativeGetThreadIds(JNIEnv* env, jclass clazz, jlong nativeSessi return nullptr; } jint* threadIds = env->GetIntArrayElements(jintArr, 0); - for (int i = 0; i < size; ++i) { + for (size_t i = 0; i < size; ++i) { threadIds[i] = tidsVector[i]; } env->ReleaseIntArrayElements(jintArr, threadIds, 0); diff --git a/core/jni/android_util_CharsetUtils.cpp b/core/jni/android_util_CharsetUtils.cpp index 7ab6e8f27fb2..7071cf2336d6 100644 --- a/core/jni/android_util_CharsetUtils.cpp +++ b/core/jni/android_util_CharsetUtils.cpp @@ -25,7 +25,7 @@ static jint android_util_CharsetUtils_toModifiedUtf8Bytes(JNIEnv *env, jobject c // Quickly check if destination has plenty of room for worst-case // 4-bytes-per-char encoded size - const size_t worstLen = (srcLen * 4); + const jint worstLen = (srcLen * 4); if (destOff >= 0 && destOff + worstLen < destLen) { env->GetStringUTFRegion(src, 0, srcLen, destPtr + destOff); return strlen(destPtr + destOff + srcLen) + srcLen; @@ -33,7 +33,7 @@ static jint android_util_CharsetUtils_toModifiedUtf8Bytes(JNIEnv *env, jobject c // String still might fit in destination, but we need to measure // its actual encoded size to be sure - const size_t encodedLen = env->GetStringUTFLength(src); + const jint encodedLen = env->GetStringUTFLength(src); if (destOff >= 0 && destOff + encodedLen < destLen) { env->GetStringUTFRegion(src, 0, srcLen, destPtr + destOff); return encodedLen; diff --git a/core/jni/android_util_FileObserver.cpp b/core/jni/android_util_FileObserver.cpp index c64c21244fe0..8d3da7b81f5b 100644 --- a/core/jni/android_util_FileObserver.cpp +++ b/core/jni/android_util_FileObserver.cpp @@ -114,7 +114,7 @@ static void android_os_fileobserver_startWatching(JNIEnv* env, jobject object, j if (fd >= 0) { size_t count = wfds.size(); - for (jsize i = 0; i < count; ++i) { + for (size_t i = 0; i < count; ++i) { jstring pathString = (jstring) env->GetObjectArrayElement(pathStrings, i); ScopedUtfChars path(env, pathString); diff --git a/core/jni/android_view_DisplayEventReceiver.cpp b/core/jni/android_view_DisplayEventReceiver.cpp index 41c65aec3144..fef8ad7499f7 100644 --- a/core/jni/android_view_DisplayEventReceiver.cpp +++ b/core/jni/android_view_DisplayEventReceiver.cpp @@ -140,7 +140,7 @@ static jobject createJavaVsyncEventData(JNIEnv* env, VsyncEventData vsyncEventDa env->ExceptionClear(); return NULL; } - for (int i = 0; i < vsyncEventData.frameTimelinesLength; i++) { + for (size_t i = 0; i < vsyncEventData.frameTimelinesLength; i++) { VsyncEventData::FrameTimeline frameTimeline = vsyncEventData.frameTimelines[i]; ScopedLocalRef<jobject> frameTimelineObj(env, @@ -193,7 +193,7 @@ void NativeDisplayEventReceiver::dispatchVsync(nsecs_t timestamp, PhysicalDispla gDisplayEventReceiverClassInfo .vsyncEventDataClassInfo .frameTimelines))); - for (int i = 0; i < vsyncEventData.frameTimelinesLength; i++) { + for (size_t i = 0; i < vsyncEventData.frameTimelinesLength; i++) { VsyncEventData::FrameTimeline& frameTimeline = vsyncEventData.frameTimelines[i]; ScopedLocalRef<jobject> frameTimelineObj(env, env->GetObjectArrayElement(frameTimelinesObj.get(), i)); diff --git a/core/jni/android_view_SurfaceControl.cpp b/core/jni/android_view_SurfaceControl.cpp index 98335988459a..a800e6ea60e4 100644 --- a/core/jni/android_view_SurfaceControl.cpp +++ b/core/jni/android_view_SurfaceControl.cpp @@ -1950,7 +1950,7 @@ public: jobjectArray jJankDataArray = env->NewObjectArray(jankData.size(), gJankDataClassInfo.clazz, nullptr); - for (int i = 0; i < jankData.size(); i++) { + for (size_t i = 0; i < jankData.size(); i++) { jobject jJankData = env->NewObject(gJankDataClassInfo.clazz, gJankDataClassInfo.ctor, jankData[i].frameVsyncId, jankData[i].jankType); env->SetObjectArrayElement(jJankDataArray, i, jJankData); diff --git a/core/jni/android_window_WindowInfosListener.cpp b/core/jni/android_window_WindowInfosListener.cpp index 55995df299b0..bc69d1e67668 100644 --- a/core/jni/android_window_WindowInfosListener.cpp +++ b/core/jni/android_window_WindowInfosListener.cpp @@ -67,7 +67,7 @@ jobject fromDisplayInfo(JNIEnv* env, gui::DisplayInfo displayInfo) { static jobjectArray fromWindowInfos(JNIEnv* env, const std::vector<WindowInfo>& windowInfos) { jobjectArray jWindowHandlesArray = env->NewObjectArray(windowInfos.size(), gInputWindowHandleClass, nullptr); - for (int i = 0; i < windowInfos.size(); i++) { + for (size_t i = 0; i < windowInfos.size(); i++) { ScopedLocalRef<jobject> jWindowHandle(env, android_view_InputWindowHandle_fromWindowInfo(env, windowInfos[i])); @@ -80,7 +80,7 @@ static jobjectArray fromWindowInfos(JNIEnv* env, const std::vector<WindowInfo>& static jobjectArray fromDisplayInfos(JNIEnv* env, const std::vector<DisplayInfo>& displayInfos) { jobjectArray jDisplayInfoArray = env->NewObjectArray(displayInfos.size(), gDisplayInfoClassInfo.clazz, nullptr); - for (int i = 0; i < displayInfos.size(); i++) { + for (size_t i = 0; i < displayInfos.size(); i++) { ScopedLocalRef<jobject> jDisplayInfo(env, fromDisplayInfo(env, displayInfos[i])); env->SetObjectArrayElement(jDisplayInfoArray, i, jDisplayInfo.get()); } diff --git a/core/jni/com_android_internal_content_om_OverlayManagerImpl.cpp b/core/jni/com_android_internal_content_om_OverlayManagerImpl.cpp index d4f6e1868695..0c39a6928391 100644 --- a/core/jni/com_android_internal_content_om_OverlayManagerImpl.cpp +++ b/core/jni/com_android_internal_content_om_OverlayManagerImpl.cpp @@ -266,11 +266,11 @@ static void CreateFrroFile(JNIEnv* env, jclass /*clazz*/, jstring jsFrroFilePath auto jsResourceName = reinterpret_cast<jstring>( env->GetObjectField(entry, gFabricatedOverlayInternalEntryOffsets.resourceName)); const ScopedUtfChars resourceName(env, jsResourceName); - const auto dataType = + const jint dataType = env->GetIntField(entry, gFabricatedOverlayInternalEntryOffsets.dataType); // In Java, the data type is int but the maximum value of data Type is less than 0xff. - if (dataType >= UCHAR_MAX) { + if (dataType >= static_cast<jint>(UCHAR_MAX)) { jniThrowException(env, IllegalArgumentException, "Unsupported data type"); return; } diff --git a/core/jni/com_android_internal_os_KernelCpuUidBpfMapReader.cpp b/core/jni/com_android_internal_os_KernelCpuUidBpfMapReader.cpp index 098a4d868269..cf70c90af8be 100644 --- a/core/jni/com_android_internal_os_KernelCpuUidBpfMapReader.cpp +++ b/core/jni/com_android_internal_os_KernelCpuUidBpfMapReader.cpp @@ -55,7 +55,7 @@ static void copy2DVecToArray(JNIEnv *env, jlongArray ar, std::vector<std::vector static jboolean KernelCpuUidFreqTimeBpfMapReader_removeUidRange(JNIEnv *env, jclass, jint startUid, jint endUid) { - for (uint32_t uid = startUid; uid <= endUid; ++uid) { + for (jint uid = startUid; uid <= endUid; ++uid) { if (!android::bpf::clearUidTimes(uid)) return false; } return true; diff --git a/core/jni/com_android_internal_os_KernelSingleProcessCpuThreadReader.cpp b/core/jni/com_android_internal_os_KernelSingleProcessCpuThreadReader.cpp index dfae68429f6d..be9013bec08e 100644 --- a/core/jni/com_android_internal_os_KernelSingleProcessCpuThreadReader.cpp +++ b/core/jni/com_android_internal_os_KernelSingleProcessCpuThreadReader.cpp @@ -147,7 +147,7 @@ static jboolean startAggregatingThreadCpuTimes(JNIEnv *env, jclass, jintArray se std::unique_ptr<ICpuTimeInStateReader> cpuTimeInStateReader( getCpuTimeInStateReader(env, cpuTimeInStateReaderObject)); - for (int i = 0; i < selectedThreadIds.size(); i++) { + for (size_t i = 0; i < selectedThreadIds.size(); i++) { if (!cpuTimeInStateReader->startAggregatingTaskCpuTimes(selectedThreadIds[i], SELECTED_THREAD_AGGREGATION_KEY)) { return false; @@ -312,11 +312,11 @@ MockCpuTimeInStateReader::getAggregatedTaskCpuFreqTimes( auto fields = android::base::Split(line.c_str(), ":"); android::base::ParseUint(fields[0], &aggregationKey); - for (int j = 1; j < fields.size(); j++) { + for (size_t j = 1; j < fields.size(); j++) { auto numbers = android::base::Split(fields[j], " "); std::vector<uint64_t> chunk; - for (int k = 0; k < numbers.size(); k++) { + for (size_t k = 0; k < numbers.size(); k++) { uint64_t time; android::base::ParseUint(numbers[k], &time); chunk.emplace_back(time); diff --git a/core/jni/com_android_internal_os_LongArrayMultiStateCounter.cpp b/core/jni/com_android_internal_os_LongArrayMultiStateCounter.cpp index 1f29735b93a4..dab47e9a9e28 100644 --- a/core/jni/com_android_internal_os_LongArrayMultiStateCounter.cpp +++ b/core/jni/com_android_internal_os_LongArrayMultiStateCounter.cpp @@ -288,7 +288,7 @@ static jboolean native_combineValues_LongArrayContainer(JNIEnv *env, jobject sel } bool nonZero = false; - for (int i = 0; i < vector->size(); i++) { + for (size_t i = 0; i < vector->size(); i++) { jint index = scopedIndexMap[i]; if (index < 0 || index >= size) { jniThrowExceptionFmt(env, "java/lang/IndexOutOfBoundsException", diff --git a/core/jni/com_android_internal_os_Zygote.cpp b/core/jni/com_android_internal_os_Zygote.cpp index 9c1bea779201..7c5885adb220 100644 --- a/core/jni/com_android_internal_os_Zygote.cpp +++ b/core/jni/com_android_internal_os_Zygote.cpp @@ -1094,8 +1094,8 @@ static std::string getAppDataDirName(std::string_view parent_path, std::string_v } struct dirent* ent; while ((ent = readdir(dir.get()))) { - if (ent->d_ino == ce_data_inode) { - return ent->d_name; + if (static_cast<long long>(ent->d_ino) == ce_data_inode) { + return ent->d_name; } } } @@ -1765,14 +1765,14 @@ static void ReloadBuildJavaConstant(JNIEnv* env, jclass build_class, const char* static void ReloadBuildJavaConstants(JNIEnv* env) { jclass build_cls = env->FindClass("android/os/Build"); size_t arr_size = sizeof(build_constants) / sizeof(build_constants[0]); - for (int i = 0; i < arr_size; i++) { + for (size_t i = 0; i < arr_size; i++) { const char* field_name = build_constants[i].first; const char* sysprop_name = build_constants[i].second; ReloadBuildJavaConstant(env, build_cls, field_name, "Ljava/lang/String;", sysprop_name); } jclass build_version_cls = env->FindClass("android/os/Build$VERSION"); arr_size = sizeof(build_version_constants) / sizeof(build_version_constants[0]); - for (int i = 0; i < arr_size; i++) { + for (size_t i = 0; i < arr_size; i++) { const char* field_name = build_version_constants[i].first; const char* sysprop_name = build_version_constants[i].second; ReloadBuildJavaConstant(env, build_version_cls, field_name, "Ljava/lang/String;", sysprop_name); @@ -2901,7 +2901,7 @@ static jint com_android_internal_os_Zygote_nativeParseSigChld(JNIEnv* env, jclas return -1; } ScopedByteArrayRO source(env, in); - if (source.size() < length) { + if (source.size() < static_cast<size_t>(length)) { // Invalid parameter jniThrowException(env, "java/lang/IllegalArgumentException", nullptr); return -1; diff --git a/core/jni/com_android_internal_os_ZygoteCommandBuffer.cpp b/core/jni/com_android_internal_os_ZygoteCommandBuffer.cpp index 2b5b8f7a108e..87ab4969040e 100644 --- a/core/jni/com_android_internal_os_ZygoteCommandBuffer.cpp +++ b/core/jni/com_android_internal_os_ZygoteCommandBuffer.cpp @@ -76,7 +76,7 @@ class NativeCommandBuffer { return {}; } fail_fn(CREATE_ERROR("session socket read failed: %s", strerror(errno))); - } else if (nread == MAX_COMMAND_BYTES - mEnd) { + } else if (nread == static_cast<ssize_t>(MAX_COMMAND_BYTES - mEnd)) { // This is pessimistic by one character, but close enough. fail_fn("ZygoteCommandBuffer overflowed: command too long"); } @@ -136,7 +136,7 @@ class NativeCommandBuffer { } char* countString = line.value().first; // Newline terminated. long nArgs = atol(countString); - if (nArgs <= 0 || nArgs >= MAX_COMMAND_BYTES / 2) { + if (nArgs <= 0 || nArgs >= static_cast<long>(MAX_COMMAND_BYTES / 2)) { fail_fn(CREATE_ERROR("Unreasonable argument count %ld", nArgs)); } mLinesLeft = nArgs; @@ -153,7 +153,7 @@ class NativeCommandBuffer { // As a side effect, this sets mNiceName to a non-empty string, if possible. template<class FailFn> bool isSimpleForkCommand(int minUid, FailFn fail_fn) { - if (mLinesLeft <= 0 || mLinesLeft >= MAX_COMMAND_BYTES / 2) { + if (mLinesLeft <= 0 || mLinesLeft >= static_cast<int32_t>(MAX_COMMAND_BYTES / 2)) { return false; } static const char* RUNTIME_ARGS = "--runtime-args"; @@ -179,14 +179,14 @@ class NativeCommandBuffer { if (!read_result.has_value()) { return false; } - auto [arg_start, arg_end] = read_result.value(); - if (arg_end - arg_start == RA_LENGTH - && strncmp(arg_start, RUNTIME_ARGS, RA_LENGTH) == 0) { + const auto [arg_start, arg_end] = read_result.value(); + if (static_cast<size_t>(arg_end - arg_start) == RA_LENGTH && + strncmp(arg_start, RUNTIME_ARGS, RA_LENGTH) == 0) { saw_runtime_args = true; continue; } - if (arg_end - arg_start >= NN_LENGTH - && strncmp(arg_start, NICE_NAME, NN_LENGTH) == 0) { + if (static_cast<size_t>(arg_end - arg_start) >= NN_LENGTH && + strncmp(arg_start, NICE_NAME, NN_LENGTH) == 0) { size_t name_len = arg_end - (arg_start + NN_LENGTH); size_t copy_len = std::min(name_len, NICE_NAME_BYTES - 1); memcpy(mNiceName, arg_start + NN_LENGTH, copy_len); @@ -196,21 +196,21 @@ class NativeCommandBuffer { } continue; } - if (arg_end - arg_start == IW_LENGTH - && strncmp(arg_start, INVOKE_WITH, IW_LENGTH) == 0) { + if (static_cast<size_t>(arg_end - arg_start) == IW_LENGTH && + strncmp(arg_start, INVOKE_WITH, IW_LENGTH) == 0) { // This also removes the need for invoke-with security checks here. return false; } - if (arg_end - arg_start == CZ_LENGTH - && strncmp(arg_start, CHILD_ZYGOTE, CZ_LENGTH) == 0) { + if (static_cast<size_t>(arg_end - arg_start) == CZ_LENGTH && + strncmp(arg_start, CHILD_ZYGOTE, CZ_LENGTH) == 0) { return false; } - if (arg_end - arg_start >= CA_LENGTH - && strncmp(arg_start, CAPABILITIES, CA_LENGTH) == 0) { + if (static_cast<size_t>(arg_end - arg_start) >= CA_LENGTH && + strncmp(arg_start, CAPABILITIES, CA_LENGTH) == 0) { return false; } - if (arg_end - arg_start >= SU_LENGTH - && strncmp(arg_start, SETUID, SU_LENGTH) == 0) { + if (static_cast<size_t>(arg_end - arg_start) >= SU_LENGTH && + strncmp(arg_start, SETUID, SU_LENGTH) == 0) { int uid = digitsVal(arg_start + SU_LENGTH, arg_end); if (uid < minUid) { return false; @@ -218,8 +218,8 @@ class NativeCommandBuffer { saw_setuid = true; continue; } - if (arg_end - arg_start >= SG_LENGTH - && strncmp(arg_start, SETGID, SG_LENGTH) == 0) { + if (static_cast<size_t>(arg_end - arg_start) >= SG_LENGTH && + strncmp(arg_start, SETGID, SG_LENGTH) == 0) { int gid = digitsVal(arg_start + SG_LENGTH, arg_end); if (gid == -1) { return false; @@ -422,7 +422,7 @@ jboolean com_android_internal_os_ZygoteCommandBuffer_nativeForkRepeatedly( bool first_time = true; do { - if (credentials.uid != expected_uid) { + if (credentials.uid != static_cast<uid_t>(expected_uid)) { return JNI_FALSE; } n_buffer->readAllLines(first_time ? fail_fn_1 : fail_fn_n); diff --git a/core/proto/android/server/windowmanagerservice.proto b/core/proto/android/server/windowmanagerservice.proto index 8e619a8bda48..404fa39fb6ed 100644 --- a/core/proto/android/server/windowmanagerservice.proto +++ b/core/proto/android/server/windowmanagerservice.proto @@ -593,6 +593,7 @@ message InsetsSourceProviderProto { optional bool seamless_rotating = 13; optional int64 finish_seamless_rotate_frame_number = 14; optional bool controllable = 15; + optional WindowStateProto source_window_state = 16; } message ImeInsetsSourceProviderProto { diff --git a/core/proto/android/view/insetssource.proto b/core/proto/android/view/insetssource.proto index 41b9f432a0ed..e6c6d5978779 100644 --- a/core/proto/android/view/insetssource.proto +++ b/core/proto/android/view/insetssource.proto @@ -30,4 +30,5 @@ message InsetsSourceProto { optional .android.graphics.RectProto frame = 2; optional .android.graphics.RectProto visible_frame = 3; optional bool visible = 4; + optional int32 type_number = 5; }
\ No newline at end of file diff --git a/core/res/res/drawable-nodpi/ic_thermostat_notification.xml b/core/res/res/drawable-nodpi/ic_thermostat_notification.xml new file mode 100644 index 000000000000..561c43db23a2 --- /dev/null +++ b/core/res/res/drawable-nodpi/ic_thermostat_notification.xml @@ -0,0 +1,29 @@ +<!-- +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. +--> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="16" + android:viewportHeight="16"> + <group> + <clip-path + android:pathData="M0,0h16v16h-16z"/> + <path + android:fillColor="#FFFFFFFF" + android:fillType="evenOdd" + android:pathData="M8.9,7.1V5.75H12.5V7.1H8.9ZM8.9,4.4V3.05L14.3,3.05V4.4L8.9,4.4ZM5.3,14.3C4.3,14.3 3.45,13.95 2.75,13.25C2.05,12.55 1.7,11.7 1.7,10.7C1.7,10.075 1.837,9.5 2.112,8.975C2.4,8.45 2.787,8.031 3.275,7.719L3.275,3.725C3.275,3.162 3.469,2.688 3.856,2.3C4.256,1.9 4.738,1.7 5.3,1.7C5.863,1.7 6.338,1.9 6.725,2.3C7.125,2.688 7.325,3.162 7.325,3.725V7.719C7.813,8.031 8.194,8.45 8.469,8.975C8.756,9.5 8.9,10.075 8.9,10.7C8.9,11.7 8.55,12.55 7.85,13.25C7.15,13.95 6.3,14.3 5.3,14.3ZM3.05,10.7L7.55,10.7C7.55,10.387 7.481,10.094 7.344,9.819C7.219,9.531 7.031,9.281 6.781,9.069L5.975,8.45L5.975,3.725C5.975,3.537 5.906,3.381 5.769,3.256C5.644,3.119 5.488,3.05 5.3,3.05C5.113,3.05 4.95,3.119 4.813,3.256C4.688,3.381 4.625,3.537 4.625,3.725L4.625,8.45L3.838,9.069C3.588,9.294 3.394,9.55 3.256,9.837C3.119,10.125 3.05,10.413 3.05,10.7Z" /> + </group> +</vector> diff --git a/core/res/res/drawable-nodpi/usb_cable_unknown_issue.xml b/core/res/res/drawable-nodpi/usb_cable_unknown_issue.xml index dddad814b451..bcdbd6f41309 100644 --- a/core/res/res/drawable-nodpi/usb_cable_unknown_issue.xml +++ b/core/res/res/drawable-nodpi/usb_cable_unknown_issue.xml @@ -16,12 +16,10 @@ Copyright (C) 2023 The Android Open Source Project <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" - android:viewportWidth="20" - android:viewportHeight="20"> + android:viewportWidth="16" + android:viewportHeight="16"> <path - android:pathData="M15.333,5.333V4.667C15.333,4.3 15.033,4 14.667,4L13.333,4C12.967,4 12.667,4.3 12.667,4.667V5.333H12V8C12,8.367 12.3,8.667 12.667,8.667H13.333L13.333,13.333C13.333,14.067 12.733,14.667 12,14.667C11.267,14.667 10.667,14.067 10.667,13.333L10.667,11.333V6.667C10.667,5.193 9.473,4 8,4C6.527,4 5.333,5.193 5.333,6.667L5.333,11.333H4.667C4.3,11.333 4,11.633 4,12L4,14.667H4.667V15.333C4.667,15.7 4.967,16 5.333,16H6.667C7.033,16 7.333,15.7 7.333,15.333V14.667H8L8,12C8,11.633 7.7,11.333 7.333,11.333H6.667L6.667,6.667C6.667,5.933 7.267,5.333 8,5.333C8.733,5.333 9.333,5.933 9.333,6.667V11.333L9.333,13.333C9.333,14.807 10.527,16 12,16C13.473,16 14.667,14.807 14.667,13.333L14.667,8.667H15.333C15.7,8.667 16,8.367 16,8V5.333H15.333Z" + android:pathData="M13.333,3.333V2.667C13.333,2.3 13.033,2 12.667,2L11.333,2C10.967,2 10.667,2.3 10.667,2.667V3.333H10V6C10,6.367 10.3,6.667 10.667,6.667H11.333L11.333,11.333C11.333,12.067 10.733,12.667 10,12.667C9.267,12.667 8.667,12.067 8.667,11.333L8.667,9.333V4.667C8.667,3.193 7.473,2 6,2C4.527,2 3.333,3.193 3.333,4.667L3.333,9.333H2.667C2.3,9.333 2,9.633 2,10L2,12.667H2.667V13.333C2.667,13.7 2.967,14 3.333,14H4.667C5.033,14 5.333,13.7 5.333,13.333V12.667H6L6,10C6,9.633 5.7,9.333 5.333,9.333H4.667L4.667,4.667C4.667,3.933 5.267,3.333 6,3.333C6.733,3.333 7.333,3.933 7.333,4.667L7.333,9.333L7.333,11.333C7.333,12.807 8.527,14 10,14C11.473,14 12.667,12.807 12.667,11.333L12.667,6.667H13.333C13.7,6.667 14,6.367 14,6V3.333H13.333Z" android:fillColor="#FFFFFFFF" android:fillType="evenOdd"/> </vector> - - diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index 862e537aa8c9..f827d28b26fd 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -832,6 +832,13 @@ is set to true. --> <bool name="config_remoteInsetsControllerSystemBarsCanBeShownByUserAction">false</bool> + <!-- To change the default behavior of how the insets get involved when calculating + configuration. This will no longer consider status bar and display cutout, and only + exclude navigation bars from the screen sizes. This is useful when the display is close to + square and the system bars may cause the orientation with non-preferred value. + --> + <bool name="config_decoupleStatusBarAndDisplayCutoutFromScreenSize">false</bool> + <!-- HDMI behavior --> <!-- The number of degrees to rotate the display when the device has HDMI connected @@ -1256,6 +1263,11 @@ --> <bool name="config_shortPressEarlyOnPower">false</bool> + <!-- Whether a single short press on STEM_PRIMARY should be launched without multi-press delay. + This works similarly as config_shortPressEarlyOnPower but for STEM_PRIMARY. + --> + <bool name="config_shortPressEarlyOnStemPrimary">false</bool> + <!-- Control the behavior of the search key. 0 - Launch default search activity 1 - Launch target activity defined by config_searchKeyTargetActivity @@ -2707,6 +2719,12 @@ turned off and the screen off animation has been performed. --> <bool name="config_dozeAfterScreenOffByDefault">false</bool> + <!-- If true, bright policy will be applied when we have entered dozing wakefulness but haven't + started doze component. This can be used to suppress the temporary dim state before + starting a dream service. This is typically used together with + config_maximumScreenDimDuration set to 0 to completely suppress dim effect. --> + <bool name="config_brightWhenDozing">false</bool> + <!-- Doze: should the TYPE_PICK_UP_GESTURE sensor be used as a pulse signal. --> <bool name="config_dozePulsePickup">false</bool> diff --git a/core/res/res/values/config_telephony.xml b/core/res/res/values/config_telephony.xml index 3ba150bcdd44..764279490643 100644 --- a/core/res/res/values/config_telephony.xml +++ b/core/res/res/values/config_telephony.xml @@ -172,6 +172,17 @@ <integer name="config_satellite_nb_iot_inactivity_timeout_millis">180000</integer> <java-symbol type="integer" name="config_satellite_nb_iot_inactivity_timeout_millis" /> + <!-- The timeout duration in milliseconds to determine whether to recommend Dialer to show the + emergency messaging option to users. + + The timer is started when there is an ongoing emergency call, and the IMS is not + registered, and cellular service is not available. When the timer expires, + SatelliteSOSMessageRecommender will send the event EVENT_DISPLAY_EMERGENCY_MESSAGE to + Dialer, which will then prompt user to switch to using satellite emergency messaging. + --> + <integer name="config_emergency_call_wait_for_connection_timeout_millis">20000</integer> + <java-symbol type="integer" name="config_emergency_call_wait_for_connection_timeout_millis" /> + <!-- Telephony config for the PLMNs of all satellite providers. This is used by satellite modem to identify providers that should be ignored if the carrier config carrier_supported_satellite_services_per_provider_bundle does not support them. @@ -184,6 +195,16 @@ <string name="config_satellite_sim_identifier" translatable="false"></string> <java-symbol type="string" name="config_satellite_sim_identifier" /> + <!-- The app to which the emergency call will be handed over for OEM-enabled satellite + messaging. The format of the config string is "package_name;class_name". --> + <string name="config_oem_enabled_satellite_sos_handover_app" translatable="false"></string> + <java-symbol type="string" name="config_oem_enabled_satellite_sos_handover_app" /> + + <!-- The action of the intent that Dialer sends to the app to which the emergency call will be + handed over for emergency messaging via satellite. --> + <string name="config_satellite_emergency_handover_intent_action" translatable="false"></string> + <java-symbol type="string" name="config_satellite_emergency_handover_intent_action" /> + <!-- Whether enhanced IWLAN handover check is enabled. If enabled, telephony frameworks will not perform handover if the target transport is out of service, or VoPS not supported. The network will be torn down on the source transport, and will be diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml index a2a4e34f3527..15c188d2140b 100644 --- a/core/res/res/values/strings.xml +++ b/core/res/res/values/strings.xml @@ -6297,6 +6297,8 @@ ul.</string> <string name="connected_display_unavailable_notification_title">Can\'t mirror to display</string> <!-- Content of connected display unavailable notification. [CHAR LIMIT=NONE] --> <string name="connected_display_unavailable_notification_content">Use a different cable and try again</string> + <!-- Content of connected display unavailable due to thermals notification. [CHAR LIMIT=NONE] --> + <string name="connected_display_thermally_unavailable_notification_content">Your device is too warm and can\'t mirror to the display until it cools down</string> <!-- Title of cable don't support displays notifications. [CHAR LIMIT=NONE] --> <string name="connected_display_cable_dont_support_displays_notification_title">Cable may not support displays</string> diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index 8748ca1f48a5..e19d5486768a 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -473,6 +473,7 @@ <java-symbol type="integer" name="config_doublePressOnStemPrimaryBehavior" /> <java-symbol type="integer" name="config_triplePressOnStemPrimaryBehavior" /> <java-symbol type="bool" name="config_shortPressEarlyOnPower" /> + <java-symbol type="bool" name="config_shortPressEarlyOnStemPrimary" /> <java-symbol type="string" name="config_doublePressOnPowerTargetActivity" /> <java-symbol type="integer" name="config_searchKeyBehavior" /> <java-symbol type="string" name="config_searchKeyTargetActivity" /> @@ -1732,6 +1733,7 @@ <java-symbol type="bool" name="config_enableLockScreenRotation" /> <java-symbol type="bool" name="config_remoteInsetsControllerControlsSystemBars" /> <java-symbol type="bool" name="config_remoteInsetsControllerSystemBarsCanBeShownByUserAction" /> + <java-symbol type="bool" name="config_decoupleStatusBarAndDisplayCutoutFromScreenSize" /> <java-symbol type="bool" name="config_lidControlsScreenLock" /> <java-symbol type="bool" name="config_lidControlsSleep" /> <java-symbol type="bool" name="config_lockDayNightMode" /> @@ -1955,6 +1957,7 @@ <java-symbol type="bool" name="config_enableNightMode" /> <java-symbol type="bool" name="config_tintNotificationActionButtons" /> <java-symbol type="bool" name="config_dozeAfterScreenOffByDefault" /> + <java-symbol type="bool" name="config_brightWhenDozing" /> <java-symbol type="bool" name="config_enableActivityRecognitionHardwareOverlay" /> <java-symbol type="bool" name="config_defaultAdasGnssLocationEnabled" /> <java-symbol type="bool" name="config_enableFusedLocationOverlay" /> @@ -2003,6 +2006,7 @@ <java-symbol type="drawable" name="vpn_connected" /> <java-symbol type="drawable" name="vpn_disconnected" /> <java-symbol type="drawable" name="usb_cable_unknown_issue" /> + <java-symbol type="drawable" name="ic_thermostat_notification" /> <java-symbol type="id" name="ask_checkbox" /> <java-symbol type="id" name="compat_checkbox" /> <java-symbol type="id" name="original_app_icon" /> @@ -5082,6 +5086,7 @@ <java-symbol type="array" name="device_state_notification_power_save_contents"/> <java-symbol type="string" name="connected_display_unavailable_notification_title"/> <java-symbol type="string" name="connected_display_unavailable_notification_content"/> + <java-symbol type="string" name="connected_display_thermally_unavailable_notification_content"/> <java-symbol type="string" name="connected_display_cable_dont_support_displays_notification_title"/> <java-symbol type="string" name="connected_display_cable_dont_support_displays_notification_content"/> <java-symbol type="string" name="concurrent_display_notification_name"/> diff --git a/core/tests/coretests/src/android/app/AutomaticZenRuleTest.java b/core/tests/coretests/src/android/app/AutomaticZenRuleTest.java index 282fdad294eb..ba2ea88e8e01 100644 --- a/core/tests/coretests/src/android/app/AutomaticZenRuleTest.java +++ b/core/tests/coretests/src/android/app/AutomaticZenRuleTest.java @@ -125,6 +125,9 @@ public class AutomaticZenRuleTest { Field configActivity = Class.forName(CLASS).getDeclaredField("configurationActivity"); configActivity.setAccessible(true); configActivity.set(rule, new ComponentName(longString, longString)); + Field trigger = Class.forName(CLASS).getDeclaredField("mTriggerDescription"); + trigger.setAccessible(true); + trigger.set(rule, longString); } catch (NoSuchFieldException e) { fail(e.toString()); } catch (ClassNotFoundException e) { @@ -149,5 +152,6 @@ public class AutomaticZenRuleTest { fromParcel.getOwner().getPackageName().length()); assertEquals(AutomaticZenRule.MAX_STRING_LENGTH, fromParcel.getOwner().getClassName().length()); + assertEquals(AutomaticZenRule.MAX_DESC_LENGTH, rule.getTriggerDescription().length()); } } diff --git a/core/tests/coretests/src/android/app/time/TEST_MAPPING b/core/tests/coretests/src/android/app/time/TEST_MAPPING deleted file mode 100644 index 9d711a271642..000000000000 --- a/core/tests/coretests/src/android/app/time/TEST_MAPPING +++ /dev/null @@ -1,13 +0,0 @@ -{ - // TODO(b/182461754): Change to "presubmit" when go/test-mapping-slo-guide allows. - "postsubmit": [ - { - "name": "FrameworksCoreTests", - "options": [ - { - "include-filter": "android.app.time." - } - ] - } - ] -} diff --git a/core/tests/coretests/src/android/app/timedetector/OWNERS b/core/tests/coretests/src/android/app/timedetector/OWNERS deleted file mode 100644 index c6124734bc5c..000000000000 --- a/core/tests/coretests/src/android/app/timedetector/OWNERS +++ /dev/null @@ -1,2 +0,0 @@ -# Bug component: 847766 -include /core/java/android/app/timedetector/OWNERS diff --git a/core/tests/coretests/src/android/app/timedetector/TEST_MAPPING b/core/tests/coretests/src/android/app/timedetector/TEST_MAPPING deleted file mode 100644 index 6c4d48de30a3..000000000000 --- a/core/tests/coretests/src/android/app/timedetector/TEST_MAPPING +++ /dev/null @@ -1,13 +0,0 @@ -{ - // TODO(b/182461754): Change to "presubmit" when go/test-mapping-slo-guide allows. - "postsubmit": [ - { - "name": "FrameworksCoreTests", - "options": [ - { - "include-filter": "android.app.timedetector." - } - ] - } - ] -} diff --git a/core/tests/coretests/src/android/app/timezonedetector/OWNERS b/core/tests/coretests/src/android/app/timezonedetector/OWNERS deleted file mode 100644 index 2e9c3246e4fc..000000000000 --- a/core/tests/coretests/src/android/app/timezonedetector/OWNERS +++ /dev/null @@ -1,2 +0,0 @@ -# Bug component: 847766 -include /core/java/android/app/timezonedetector/OWNERS diff --git a/core/tests/coretests/src/android/app/timezonedetector/TEST_MAPPING b/core/tests/coretests/src/android/app/timezonedetector/TEST_MAPPING deleted file mode 100644 index 8872f642f604..000000000000 --- a/core/tests/coretests/src/android/app/timezonedetector/TEST_MAPPING +++ /dev/null @@ -1,13 +0,0 @@ -{ - // TODO(b/182461754): Change to "presubmit" when go/test-mapping-slo-guide allows. - "postsubmit": [ - { - "name": "FrameworksCoreTests", - "options": [ - { - "include-filter": "android.app.timezonedetector." - } - ] - } - ] -} diff --git a/core/tests/coretests/src/android/service/TEST_MAPPING b/core/tests/coretests/src/android/service/TEST_MAPPING index 7ebda0062335..bec72d988e74 100644 --- a/core/tests/coretests/src/android/service/TEST_MAPPING +++ b/core/tests/coretests/src/android/service/TEST_MAPPING @@ -10,7 +10,6 @@ {"include-filter": "android.service.notification"}, {"include-filter": "android.service.quicksettings"}, {"include-filter": "android.service.settings.suggestions"}, - {"include-filter": "android.service.timezone"}, {"exclude-annotation": "org.junit.Ignore"} ] } diff --git a/core/tests/coretests/src/android/service/timezone/OWNERS b/core/tests/coretests/src/android/service/timezone/OWNERS deleted file mode 100644 index 811638805996..000000000000 --- a/core/tests/coretests/src/android/service/timezone/OWNERS +++ /dev/null @@ -1,2 +0,0 @@ -# Bug component: 847766 -include /core/java/android/service/timezone/OWNERS diff --git a/core/tests/coretests/src/android/service/timezone/TEST_MAPPING b/core/tests/coretests/src/android/service/timezone/TEST_MAPPING deleted file mode 100644 index 46f476f43861..000000000000 --- a/core/tests/coretests/src/android/service/timezone/TEST_MAPPING +++ /dev/null @@ -1,13 +0,0 @@ -{ - // TODO(b/182461754): Change to "presubmit" when go/test-mapping-slo-guide allows. - "postsubmit": [ - { - "name": "FrameworksCoreTests", - "options": [ - { - "include-filter": "android.service.timezone." - } - ] - } - ] -} diff --git a/core/tests/coretests/src/android/view/ViewRootImplTest.java b/core/tests/coretests/src/android/view/ViewRootImplTest.java index e7117a7da0e9..e0e3a3542cb0 100644 --- a/core/tests/coretests/src/android/view/ViewRootImplTest.java +++ b/core/tests/coretests/src/android/view/ViewRootImplTest.java @@ -49,6 +49,7 @@ import static org.junit.Assume.assumeTrue; import android.app.Instrumentation; import android.app.UiModeManager; import android.content.Context; +import android.graphics.ForceDarkType; import android.hardware.display.DisplayManagerGlobal; import android.os.Binder; import android.os.SystemProperties; @@ -576,6 +577,58 @@ public class ViewRootImplTest { }); } + /** + * Test the accurate aggregation of frame rate values as follows: + * 1. When values exceed 60Hz, select the maximum value. + * 2. If frame rates are less than 60Hz and multiple frame rates are voted, + * prioritize 60Hz.. + */ + @Test + @RequiresFlagsEnabled(FLAG_TOOLKIT_SET_FRAME_RATE_READ_ONLY) + public void votePreferredFrameRate_voteFrameRate_aggregate() { + View view = new View(sContext); + attachViewToWindow(view); + sInstrumentation.runOnMainSync(() -> { + ViewRootImpl viewRootImpl = view.getViewRootImpl(); + assertEquals(viewRootImpl.getPreferredFrameRate(), 0, 0.1); + viewRootImpl.votePreferredFrameRate(24); + assertEquals(viewRootImpl.getPreferredFrameRate(), 24, 0.1); + viewRootImpl.votePreferredFrameRate(30); + assertEquals(viewRootImpl.getPreferredFrameRate(), 60, 0.1); + viewRootImpl.votePreferredFrameRate(120); + assertEquals(viewRootImpl.getPreferredFrameRate(), 120, 0.1); + }); + } + + /** + * Override the frame rate category value with setRequestedFrameRate method. + * This function can replace the existing frameRateCategory value and + * submit your preferred choice to the ViewRootImpl. + */ + @Test + @RequiresFlagsEnabled(FLAG_TOOLKIT_SET_FRAME_RATE_READ_ONLY) + public void votePreferredFrameRate_voteFrameRate_category() { + View view = new View(sContext); + attachViewToWindow(view); + sInstrumentation.waitForIdleSync(); + + ViewRootImpl viewRootImpl = view.getViewRootImpl(); + sInstrumentation.runOnMainSync(() -> { + assertEquals(viewRootImpl.getPreferredFrameRateCategory(), + FRAME_RATE_CATEGORY_NO_PREFERENCE); + view.setRequestedFrameRate(view.REQUESTED_FRAME_RATE_CATEGORY_LOW); + view.invalidate(); + assertEquals(viewRootImpl.getPreferredFrameRateCategory(), FRAME_RATE_CATEGORY_LOW); + view.setRequestedFrameRate(view.REQUESTED_FRAME_RATE_CATEGORY_NORMAL); + view.invalidate(); + assertEquals(viewRootImpl.getPreferredFrameRateCategory(), FRAME_RATE_CATEGORY_NORMAL); + view.setRequestedFrameRate(view.REQUESTED_FRAME_RATE_CATEGORY_HIGH); + view.invalidate(); + assertEquals(viewRootImpl.getPreferredFrameRateCategory(), FRAME_RATE_CATEGORY_HIGH); + }); + } + + @Test public void forceInvertOffDarkThemeOff_forceDarkModeDisabled() { mSetFlagsRule.enableFlags(FLAG_FORCE_INVERT_COLOR); @@ -593,7 +646,7 @@ public class ViewRootImplTest { mViewRootImpl.updateConfiguration(sContext.getDisplayNoVerify().getDisplayId()) ); - assertThat(mViewRootImpl.isForceDarkEnabled()).isFalse(); + assertThat(mViewRootImpl.determineForceDarkType()).isEqualTo(ForceDarkType.NONE); } @Test @@ -613,7 +666,8 @@ public class ViewRootImplTest { mViewRootImpl.updateConfiguration(sContext.getDisplayNoVerify().getDisplayId()) ); - assertThat(mViewRootImpl.isForceDarkEnabled()).isTrue(); + assertThat(mViewRootImpl.determineForceDarkType()) + .isEqualTo(ForceDarkType.FORCE_INVERT_COLOR_DARK); } @Test @@ -634,7 +688,7 @@ public class ViewRootImplTest { mViewRootImpl.updateConfiguration(sContext.getDisplayNoVerify().getDisplayId()) ); - assertThat(mViewRootImpl.isForceDarkEnabled()).isFalse(); + assertThat(mViewRootImpl.determineForceDarkType()).isEqualTo(ForceDarkType.NONE); } @Test @@ -654,7 +708,7 @@ public class ViewRootImplTest { mViewRootImpl.updateConfiguration(sContext.getDisplayNoVerify().getDisplayId()) ); - assertThat(mViewRootImpl.isForceDarkEnabled()).isTrue(); + assertThat(mViewRootImpl.determineForceDarkType()).isEqualTo(ForceDarkType.FORCE_DARK); } private boolean setForceDarkSysProp(boolean isForceDarkEnabled) { diff --git a/core/tests/timetests/Android.bp b/core/tests/timetests/Android.bp new file mode 100644 index 000000000000..51181a8a7b13 --- /dev/null +++ b/core/tests/timetests/Android.bp @@ -0,0 +1,25 @@ +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_test { + name: "FrameworksTimeCoreTests", + srcs: ["src/**/*.java"], + static_libs: [ + "androidx.test.rules", + "device-time-shell-utils", + "junit", + "junit-params", + "mockito-target-minus-junit4", + "platform-test-annotations", + "truth", + ], + libs: ["android.test.runner"], + certificate: "platform", + test_suites: ["device-tests"], +} diff --git a/packages/SystemUI/res/drawable/ic_sysbar_back_quick_step.xml b/core/tests/timetests/AndroidManifest.xml index 442fafcebb84..330e05fb407d 100644 --- a/packages/SystemUI/res/drawable/ic_sysbar_back_quick_step.xml +++ b/core/tests/timetests/AndroidManifest.xml @@ -1,6 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<!-- - Copyright (C) 2018 The Android Open Source Project +<!-- 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. @@ -14,13 +13,17 @@ 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="28dp" - android:height="28dp" - android:autoMirrored="true" - android:viewportWidth="28" - android:viewportHeight="28"> - <path - android:pathData="M16.78,10.03l-3.97,3.97l3.97,3.97l-1.06,1.06l-5.03,-5.03l5.03,-5.03z" - android:fillColor="?attr/singleToneColor" /> -</vector>
\ No newline at end of file + +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.android.frameworks.coretests.time"> + + <application> + <uses-library android:name="android.test.runner" /> + </application> + + <instrumentation + android:name="androidx.test.runner.AndroidJUnitRunner" + android:targetPackage="com.android.frameworks.coretests.time" + android:label="Frameworks Time Core Tests" /> + +</manifest> diff --git a/core/tests/timetests/AndroidTest.xml b/core/tests/timetests/AndroidTest.xml new file mode 100644 index 000000000000..d2d1255768d8 --- /dev/null +++ b/core/tests/timetests/AndroidTest.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- 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. +--> +<configuration description="Runs Time Core Tests."> + <option name="test-suite-tag" value="apct" /> + <option name="test-suite-tag" value="apct-instrumentation" /> + <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller"> + <option name="cleanup-apks" value="true" /> + <option name="test-file-name" value="FrameworksTimeCoreTests.apk" /> + </target_preparer> + + <test class="com.android.tradefed.testtype.AndroidJUnitTest" > + <option name="package" value="com.android.frameworks.coretests.time" /> + <option name="hidden-api-checks" value="false"/> + </test> +</configuration> diff --git a/core/tests/coretests/src/android/app/time/OWNERS b/core/tests/timetests/OWNERS index 292cb72f2dbe..292cb72f2dbe 100644 --- a/core/tests/coretests/src/android/app/time/OWNERS +++ b/core/tests/timetests/OWNERS diff --git a/core/tests/timetests/TEST_MAPPING b/core/tests/timetests/TEST_MAPPING new file mode 100644 index 000000000000..57480445a7b0 --- /dev/null +++ b/core/tests/timetests/TEST_MAPPING @@ -0,0 +1,8 @@ +{ + // TODO(b/182461754): Change to "presubmit" when go/test-mapping-slo-guide allows. + "postsubmit": [ + { + "name": "FrameworksTimeCoreTests" + } + ] +} diff --git a/core/tests/coretests/src/android/app/time/DetectorStatusTypesTest.java b/core/tests/timetests/src/android/app/time/DetectorStatusTypesTest.java index 2e1e09c14d5e..2e1e09c14d5e 100644 --- a/core/tests/coretests/src/android/app/time/DetectorStatusTypesTest.java +++ b/core/tests/timetests/src/android/app/time/DetectorStatusTypesTest.java diff --git a/core/tests/coretests/src/android/app/time/ExternalTimeSuggestionTest.java b/core/tests/timetests/src/android/app/time/ExternalTimeSuggestionTest.java index ae3357a75fd1..ae3357a75fd1 100644 --- a/core/tests/coretests/src/android/app/time/ExternalTimeSuggestionTest.java +++ b/core/tests/timetests/src/android/app/time/ExternalTimeSuggestionTest.java diff --git a/core/tests/coretests/src/android/app/time/LocationTimeZoneAlgorithmStatusTest.java b/core/tests/timetests/src/android/app/time/LocationTimeZoneAlgorithmStatusTest.java index 384a5a82181b..384a5a82181b 100644 --- a/core/tests/coretests/src/android/app/time/LocationTimeZoneAlgorithmStatusTest.java +++ b/core/tests/timetests/src/android/app/time/LocationTimeZoneAlgorithmStatusTest.java diff --git a/core/tests/coretests/src/android/app/time/ParcelableTestSupport.java b/core/tests/timetests/src/android/app/time/ParcelableTestSupport.java index 13e5e14ce01c..d2c9c3a35ce5 100644 --- a/core/tests/coretests/src/android/app/time/ParcelableTestSupport.java +++ b/core/tests/timetests/src/android/app/time/ParcelableTestSupport.java @@ -47,6 +47,10 @@ public final class ParcelableTestSupport { return toReturn; } + /** + * Asserts that the parameter can be parceled and unparceled and return an object considered + * equal to the original. + */ public static <T extends Parcelable> void assertRoundTripParcelable(T instance) { assertEqualsAndHashCode(instance, roundTripParcelable(instance)); } diff --git a/core/tests/coretests/src/android/app/time/TelephonyTimeZoneAlgorithmStatusTest.java b/core/tests/timetests/src/android/app/time/TelephonyTimeZoneAlgorithmStatusTest.java index e6e2371d312f..e6e2371d312f 100644 --- a/core/tests/coretests/src/android/app/time/TelephonyTimeZoneAlgorithmStatusTest.java +++ b/core/tests/timetests/src/android/app/time/TelephonyTimeZoneAlgorithmStatusTest.java diff --git a/core/tests/coretests/src/android/app/time/TimeCapabilitiesTest.java b/core/tests/timetests/src/android/app/time/TimeCapabilitiesTest.java index 3ead97f1528a..3ead97f1528a 100644 --- a/core/tests/coretests/src/android/app/time/TimeCapabilitiesTest.java +++ b/core/tests/timetests/src/android/app/time/TimeCapabilitiesTest.java diff --git a/core/tests/coretests/src/android/app/time/TimeManagerTest.java b/core/tests/timetests/src/android/app/time/TimeManagerTest.java index 89c8d6a2e42b..89c8d6a2e42b 100644 --- a/core/tests/coretests/src/android/app/time/TimeManagerTest.java +++ b/core/tests/timetests/src/android/app/time/TimeManagerTest.java diff --git a/core/tests/coretests/src/android/app/time/TimeStateTest.java b/core/tests/timetests/src/android/app/time/TimeStateTest.java index 50da3a68a140..50da3a68a140 100644 --- a/core/tests/coretests/src/android/app/time/TimeStateTest.java +++ b/core/tests/timetests/src/android/app/time/TimeStateTest.java diff --git a/core/tests/coretests/src/android/app/time/TimeZoneCapabilitiesTest.java b/core/tests/timetests/src/android/app/time/TimeZoneCapabilitiesTest.java index e368d2815855..e368d2815855 100644 --- a/core/tests/coretests/src/android/app/time/TimeZoneCapabilitiesTest.java +++ b/core/tests/timetests/src/android/app/time/TimeZoneCapabilitiesTest.java diff --git a/core/tests/coretests/src/android/app/time/TimeZoneConfigurationTest.java b/core/tests/timetests/src/android/app/time/TimeZoneConfigurationTest.java index 4ad3e41383aa..4ad3e41383aa 100644 --- a/core/tests/coretests/src/android/app/time/TimeZoneConfigurationTest.java +++ b/core/tests/timetests/src/android/app/time/TimeZoneConfigurationTest.java diff --git a/core/tests/coretests/src/android/app/time/TimeZoneDetectorStatusTest.java b/core/tests/timetests/src/android/app/time/TimeZoneDetectorStatusTest.java index 4ef60a3306aa..4ef60a3306aa 100644 --- a/core/tests/coretests/src/android/app/time/TimeZoneDetectorStatusTest.java +++ b/core/tests/timetests/src/android/app/time/TimeZoneDetectorStatusTest.java diff --git a/core/tests/coretests/src/android/app/time/TimeZoneStateTest.java b/core/tests/timetests/src/android/app/time/TimeZoneStateTest.java index 0b816ecc0489..0b816ecc0489 100644 --- a/core/tests/coretests/src/android/app/time/TimeZoneStateTest.java +++ b/core/tests/timetests/src/android/app/time/TimeZoneStateTest.java diff --git a/core/tests/coretests/src/android/app/time/UnixEpochTimeTest.java b/core/tests/timetests/src/android/app/time/UnixEpochTimeTest.java index 0b485c0af6ed..0b485c0af6ed 100644 --- a/core/tests/coretests/src/android/app/time/UnixEpochTimeTest.java +++ b/core/tests/timetests/src/android/app/time/UnixEpochTimeTest.java diff --git a/core/tests/coretests/src/android/app/timedetector/ManualTimeSuggestionTest.java b/core/tests/timetests/src/android/app/timedetector/ManualTimeSuggestionTest.java index b06845602a87..b06845602a87 100644 --- a/core/tests/coretests/src/android/app/timedetector/ManualTimeSuggestionTest.java +++ b/core/tests/timetests/src/android/app/timedetector/ManualTimeSuggestionTest.java diff --git a/core/tests/coretests/src/android/app/timedetector/TelephonyTimeSuggestionTest.java b/core/tests/timetests/src/android/app/timedetector/TelephonyTimeSuggestionTest.java index 2716ebf53019..2716ebf53019 100644 --- a/core/tests/coretests/src/android/app/timedetector/TelephonyTimeSuggestionTest.java +++ b/core/tests/timetests/src/android/app/timedetector/TelephonyTimeSuggestionTest.java diff --git a/core/tests/coretests/src/android/app/timezonedetector/ManualTimeZoneSuggestionTest.java b/core/tests/timetests/src/android/app/timezonedetector/ManualTimeZoneSuggestionTest.java index 8e1f0a19b4ab..8e1f0a19b4ab 100644 --- a/core/tests/coretests/src/android/app/timezonedetector/ManualTimeZoneSuggestionTest.java +++ b/core/tests/timetests/src/android/app/timezonedetector/ManualTimeZoneSuggestionTest.java diff --git a/core/tests/coretests/src/android/app/timezonedetector/ShellCommandTestSupport.java b/core/tests/timetests/src/android/app/timezonedetector/ShellCommandTestSupport.java index 4efaed11168e..59a73048bc07 100644 --- a/core/tests/coretests/src/android/app/timezonedetector/ShellCommandTestSupport.java +++ b/core/tests/timetests/src/android/app/timezonedetector/ShellCommandTestSupport.java @@ -29,10 +29,17 @@ import java.util.List; public final class ShellCommandTestSupport { private ShellCommandTestSupport() {} + /** + * Returns a {@link ShellCommand} from the supplied String, where elements of the command are + * separated with spaces. No escaping is performed. + */ public static ShellCommand createShellCommandWithArgsAndOptions(String argsWithSpaces) { return createShellCommandWithArgsAndOptions(Arrays.asList(argsWithSpaces.split(" "))); } + /** + * Returns a {@link ShellCommand} from the supplied list of command line elements. + */ public static ShellCommand createShellCommandWithArgsAndOptions(List<String> args) { ShellCommand command = mock(ShellCommand.class); class ArgProvider { diff --git a/core/tests/coretests/src/android/app/timezonedetector/TelephonyTimeZoneSuggestionTest.java b/core/tests/timetests/src/android/app/timezonedetector/TelephonyTimeZoneSuggestionTest.java index 42cb856694bc..42cb856694bc 100644 --- a/core/tests/coretests/src/android/app/timezonedetector/TelephonyTimeZoneSuggestionTest.java +++ b/core/tests/timetests/src/android/app/timezonedetector/TelephonyTimeZoneSuggestionTest.java diff --git a/core/tests/coretests/src/android/service/timezone/TimeZoneProviderEventTest.java b/core/tests/timetests/src/android/service/timezone/TimeZoneProviderEventTest.java index 26e424513092..26e424513092 100644 --- a/core/tests/coretests/src/android/service/timezone/TimeZoneProviderEventTest.java +++ b/core/tests/timetests/src/android/service/timezone/TimeZoneProviderEventTest.java diff --git a/core/tests/coretests/src/android/service/timezone/TimeZoneProviderStatusTest.java b/core/tests/timetests/src/android/service/timezone/TimeZoneProviderStatusTest.java index 9b2455982f70..cf37db680326 100644 --- a/core/tests/coretests/src/android/service/timezone/TimeZoneProviderStatusTest.java +++ b/core/tests/timetests/src/android/service/timezone/TimeZoneProviderStatusTest.java @@ -32,6 +32,9 @@ import android.service.timezone.TimeZoneProviderStatus.OperationStatus; import androidx.test.filters.SmallTest; +import junitparams.JUnitParamsRunner; +import junitparams.Parameters; + import org.junit.Test; import org.junit.runner.RunWith; @@ -39,9 +42,6 @@ import java.util.ArrayList; import java.util.List; import java.util.stream.IntStream; -import junitparams.JUnitParamsRunner; -import junitparams.Parameters; - /** Non-SDK tests. See CTS for SDK API tests. */ @RunWith(JUnitParamsRunner.class) @SmallTest @@ -83,6 +83,7 @@ public class TimeZoneProviderStatusTest { providerStatus.couldEnableTelephonyFallback()); } + /** Parameters for {@link #couldEnableTelephonyFallback}. */ public static Integer[][] couldEnableTelephonyFallbackParams() { List<Integer[]> params = new ArrayList<>(); @DependencyStatus int[] dependencyStatuses = diff --git a/core/tests/coretests/src/android/service/timezone/TimeZoneProviderSuggestionTest.java b/core/tests/timetests/src/android/service/timezone/TimeZoneProviderSuggestionTest.java index a091036f8eaf..a091036f8eaf 100644 --- a/core/tests/coretests/src/android/service/timezone/TimeZoneProviderSuggestionTest.java +++ b/core/tests/timetests/src/android/service/timezone/TimeZoneProviderSuggestionTest.java diff --git a/graphics/java/android/graphics/ForceDarkType.java b/graphics/java/android/graphics/ForceDarkType.java new file mode 100644 index 000000000000..396b03703bb9 --- /dev/null +++ b/graphics/java/android/graphics/ForceDarkType.java @@ -0,0 +1,60 @@ +/* + * 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.graphics; + +import android.annotation.IntDef; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +/** + * The style of force dark to use in {@link HardwareRenderer}. + * + * You must keep this in sync with the C++ enum ForceDarkType in + * frameworks/base/libs/hwui/utils/ForceDark.h + * + * @hide + */ +public class ForceDarkType { + /** + * Force dark disabled: normal, default operation. + * + * @hide + */ + public static final int NONE = 0; + + /** + * Use force dark + * @hide + */ + public static final int FORCE_DARK = 1; + + /** + * Force force-dark. {@see Settings.Secure.ACCESSIBILITY_FORCE_INVERT_COLOR_ENABLED} + * @hide */ + public static final int FORCE_INVERT_COLOR_DARK = 2; + + /** @hide */ + @IntDef({ + NONE, + FORCE_DARK, + FORCE_INVERT_COLOR_DARK, + }) + @Retention(RetentionPolicy.SOURCE) + public @interface ForceDarkTypeDef {} + +} diff --git a/graphics/java/android/graphics/HardwareRenderer.java b/graphics/java/android/graphics/HardwareRenderer.java index 8cd262e783d8..20e393eaee6d 100644 --- a/graphics/java/android/graphics/HardwareRenderer.java +++ b/graphics/java/android/graphics/HardwareRenderer.java @@ -182,7 +182,7 @@ public class HardwareRenderer { /** @hide */ protected RenderNode mRootNode; private boolean mOpaque = true; - private boolean mForceDark = false; + private int mForceDark = ForceDarkType.NONE; private @ActivityInfo.ColorMode int mColorMode = ActivityInfo.COLOR_MODE_DEFAULT; private float mDesiredSdrHdrRatio = 1f; @@ -571,10 +571,10 @@ public class HardwareRenderer { * Whether or not the force-dark feature should be used for this renderer. * @hide */ - public boolean setForceDark(boolean enable) { - if (mForceDark != enable) { - mForceDark = enable; - nSetForceDark(mNativeProxy, enable); + public boolean setForceDark(@ForceDarkType.ForceDarkTypeDef int type) { + if (mForceDark != type) { + mForceDark = type; + nSetForceDark(mNativeProxy, type); return true; } return false; @@ -1597,7 +1597,7 @@ public class HardwareRenderer { private static native void nAllocateBuffers(long nativeProxy); - private static native void nSetForceDark(long nativeProxy, boolean enabled); + private static native void nSetForceDark(long nativeProxy, int type); private static native void nSetDisplayDensityDpi(int densityDpi); diff --git a/libs/WindowManager/Shell/aconfig/multitasking.aconfig b/libs/WindowManager/Shell/aconfig/multitasking.aconfig index 0e59e9ad744d..29bdd5ce0c9e 100644 --- a/libs/WindowManager/Shell/aconfig/multitasking.aconfig +++ b/libs/WindowManager/Shell/aconfig/multitasking.aconfig @@ -28,3 +28,10 @@ flag { description: "Enables invoking split contextually" bug: "276361926" } + +flag { + name: "enable_taskbar_navbar_unification" + namespace: "multitasking" + description: "Enables taskbar / navbar unification" + bug: "309671494" +} diff --git a/libs/WindowManager/Shell/res/values/strings.xml b/libs/WindowManager/Shell/res/values/strings.xml index b556150e2ab9..3e66bbbf8d39 100644 --- a/libs/WindowManager/Shell/res/values/strings.xml +++ b/libs/WindowManager/Shell/res/values/strings.xml @@ -72,7 +72,7 @@ <!-- Warning message when we try to dock a non-resizeable task and launch it in fullscreen instead [CHAR LIMIT=NONE] --> <string name="dock_non_resizeble_failed_to_dock_text">App does not support split screen</string> <!-- Warning message when we try to dock an app not supporting multiple instances split into multiple sides [CHAR LIMIT=NONE] --> - <string name="dock_multi_instances_not_supported_text">This app can only be opened in 1 window.</string> + <string name="dock_multi_instances_not_supported_text">This app can only be opened in 1 window</string> <!-- Text that gets shown on top of current activity to inform the user that the system force-resized the current activity to be displayed on a secondary display and that things might crash/not work properly [CHAR LIMIT=NONE] --> <string name="forced_resizable_secondary_display">App may not work on a secondary display.</string> <!-- Warning message when we try to launch a non-resizeable activity on a secondary display and launch it on the primary instead. --> diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationBackground.java b/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationBackground.java index 42dc19ce838a..7749394b21d3 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationBackground.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationBackground.java @@ -130,7 +130,14 @@ public class BackAnimationBackground { mStartBounds); mCustomizer.customizeStatusBarAppearance(region); } else { - mCustomizer.customizeStatusBarAppearance(null); + resetStatusBarCustomization(); } } + + /** + * Resets the statusbar customization + */ + public void resetStatusBarCustomization() { + mCustomizer.customizeStatusBarAppearance(null); + } } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/back/CrossActivityAnimation.java b/libs/WindowManager/Shell/src/com/android/wm/shell/back/CrossActivityBackAnimation.java index a596cef9562a..215a6cc99e58 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/back/CrossActivityAnimation.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/back/CrossActivityBackAnimation.java @@ -21,6 +21,7 @@ import static android.view.RemoteAnimationTarget.MODE_OPENING; import static com.android.internal.jank.InteractionJankMonitor.CUJ_PREDICTIVE_BACK_CROSS_ACTIVITY; import static com.android.wm.shell.back.BackAnimationConstants.PROGRESS_COMMIT_THRESHOLD; +import static com.android.wm.shell.back.BackAnimationConstants.UPDATE_SYSUI_FLAGS_THRESHOLD; import static com.android.wm.shell.protolog.ShellProtoLogGroup.WM_SHELL_BACK_PREVIEW; import android.animation.Animator; @@ -56,7 +57,7 @@ import javax.inject.Inject; /** Class that defines cross-activity animation. */ @ShellMainThread -public class CrossActivityAnimation extends ShellBackAnimation { +public class CrossActivityBackAnimation extends ShellBackAnimation { /** * Minimum scale of the entering/closing window. */ @@ -65,27 +66,27 @@ public class CrossActivityAnimation extends ShellBackAnimation { /** Duration of post animation after gesture committed. */ private static final int POST_ANIMATION_DURATION = 350; private static final Interpolator INTERPOLATOR = new DecelerateInterpolator(); - private static final FloatProperty<CrossActivityAnimation> ENTER_PROGRESS_PROP = + private static final FloatProperty<CrossActivityBackAnimation> ENTER_PROGRESS_PROP = new FloatProperty<>("enter-alpha") { @Override - public void setValue(CrossActivityAnimation anim, float value) { + public void setValue(CrossActivityBackAnimation anim, float value) { anim.setEnteringProgress(value); } @Override - public Float get(CrossActivityAnimation object) { + public Float get(CrossActivityBackAnimation object) { return object.getEnteringProgress(); } }; - private static final FloatProperty<CrossActivityAnimation> LEAVE_PROGRESS_PROP = + private static final FloatProperty<CrossActivityBackAnimation> LEAVE_PROGRESS_PROP = new FloatProperty<>("leave-alpha") { @Override - public void setValue(CrossActivityAnimation anim, float value) { + public void setValue(CrossActivityBackAnimation anim, float value) { anim.setLeavingProgress(value); } @Override - public Float get(CrossActivityAnimation object) { + public Float get(CrossActivityBackAnimation object) { return object.getLeavingProgress(); } }; @@ -134,7 +135,7 @@ public class CrossActivityAnimation extends ShellBackAnimation { private final BackAnimationBackground mBackground; @Inject - public CrossActivityAnimation(Context context, BackAnimationBackground background) { + public CrossActivityBackAnimation(Context context, BackAnimationBackground background) { mCornerRadius = ScreenDecorationsUtils.getWindowCornerRadius(context); mBackAnimationRunner = new BackAnimationRunner( new Callback(), new Runner(), context, CUJ_PREDICTIVE_BACK_CROSS_ACTIVITY); @@ -191,6 +192,8 @@ public class CrossActivityAnimation extends ShellBackAnimation { // Draw background with task background color. mBackground.ensureBackground(mClosingTarget.windowConfiguration.getBounds(), mEnteringTarget.taskInfo.taskDescription.getBackgroundColor(), mTransaction); + setEnteringProgress(0); + setLeavingProgress(0); } private void applyTransform(SurfaceControl leash, RectF targetRect, float targetAlpha) { @@ -272,12 +275,16 @@ public class CrossActivityAnimation extends ShellBackAnimation { valueAnimator.addUpdateListener(animation -> { float progress = animation.getAnimatedFraction(); updatePostCommitEnteringAnimation(progress); + if (progress > 1 - UPDATE_SYSUI_FLAGS_THRESHOLD) { + mBackground.resetStatusBarCustomization(); + } mTransaction.apply(); }); valueAnimator.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { + mBackground.resetStatusBarCustomization(); finishAnimation(); } }); @@ -370,7 +377,7 @@ public class CrossActivityAnimation extends ShellBackAnimation { @Override public void onBackStarted(BackMotionEvent backEvent) { mProgressAnimator.onBackStarted(backEvent, - CrossActivityAnimation.this::onGestureProgress); + CrossActivityBackAnimation.this::onGestureProgress); } @Override diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/back/CrossTaskBackAnimation.java b/libs/WindowManager/Shell/src/com/android/wm/shell/back/CrossTaskBackAnimation.java index 5a156740e605..80fc3a867d48 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/back/CrossTaskBackAnimation.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/back/CrossTaskBackAnimation.java @@ -18,8 +18,10 @@ package com.android.wm.shell.back; import static android.view.RemoteAnimationTarget.MODE_CLOSING; import static android.view.RemoteAnimationTarget.MODE_OPENING; +import static android.window.BackEvent.EDGE_RIGHT; import static com.android.internal.jank.InteractionJankMonitor.CUJ_PREDICTIVE_BACK_CROSS_TASK; +import static com.android.wm.shell.back.BackAnimationConstants.UPDATE_SYSUI_FLAGS_THRESHOLD; import static com.android.wm.shell.protolog.ShellProtoLogGroup.WM_SHELL_BACK_PREVIEW; import android.animation.Animator; @@ -100,6 +102,7 @@ public class CrossTaskBackAnimation extends ShellBackAnimation { private RemoteAnimationTarget mClosingTarget; private final SurfaceControl.Transaction mTransaction = new SurfaceControl.Transaction(); private boolean mBackInProgress = false; + private boolean mIsRightEdge; private final PointF mTouchPos = new PointF(); private IRemoteAnimationFinishedCallback mFinishCallback; private final BackProgressAnimator mProgressAnimator = new BackProgressAnimator(); @@ -171,7 +174,12 @@ public class CrossTaskBackAnimation extends ShellBackAnimation { // Move the window along the Y axis. float scaledTop = (height - scaledHeight) * 0.5f + deltaY; // Move the window along the X axis. - float right = width - (progress * mVerticalMargin); + float right; + if (mIsRightEdge) { + right = (width - scaledWidth) * 0.5f + scaledWidth; + } else { + right = width - (progress * mVerticalMargin); + } float left = right - scaledWidth; mClosingCurrentRect.set(left, scaledTop, right, scaledTop + scaledHeight); @@ -261,6 +269,7 @@ public class CrossTaskBackAnimation extends ShellBackAnimation { private void onGestureProgress(@NonNull BackEvent backEvent) { if (!mBackInProgress) { + mIsRightEdge = backEvent.getSwipeEdge() == EDGE_RIGHT; mInitialTouchPos.set(backEvent.getTouchX(), backEvent.getTouchY()); mBackInProgress = true; } @@ -287,12 +296,16 @@ public class CrossTaskBackAnimation extends ShellBackAnimation { float progress = animation.getAnimatedFraction(); updatePostCommitEnteringAnimation(progress); updatePostCommitClosingAnimation(progress); + if (progress > 1 - UPDATE_SYSUI_FLAGS_THRESHOLD) { + mBackground.resetStatusBarCustomization(); + } mTransaction.apply(); }); valueAnimator.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { + mBackground.resetStatusBarCustomization(); finishAnimation(); } }); diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/back/TouchTracker.java b/libs/WindowManager/Shell/src/com/android/wm/shell/back/TouchTracker.java index 8a59a9f62425..19eb928d4e30 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/back/TouchTracker.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/back/TouchTracker.java @@ -51,7 +51,6 @@ class TouchTracker { private float mLatestVelocityY; private float mStartThresholdX; private int mSwipeEdge; - private boolean mCancelled; private TouchTrackerState mState = TouchTrackerState.INITIAL; void update(float touchX, float touchY, float velocityX, float velocityY) { @@ -59,9 +58,8 @@ class TouchTracker { * If back was previously cancelled but the user has started swiping in the forward * direction again, restart back. */ - if (mCancelled && ((touchX > mLatestTouchX && mSwipeEdge == BackEvent.EDGE_LEFT) - || touchX < mLatestTouchX && mSwipeEdge == BackEvent.EDGE_RIGHT)) { - mCancelled = false; + if ((touchX < mStartThresholdX && mSwipeEdge == BackEvent.EDGE_LEFT) + || (touchX > mStartThresholdX && mSwipeEdge == BackEvent.EDGE_RIGHT)) { mStartThresholdX = touchX; } mLatestTouchX = touchX; @@ -72,7 +70,7 @@ class TouchTracker { void setTriggerBack(boolean triggerBack) { if (mTriggerBack != triggerBack && !triggerBack) { - mCancelled = true; + mStartThresholdX = mLatestTouchX; } mTriggerBack = triggerBack; } @@ -100,6 +98,8 @@ class TouchTracker { void setGestureStartLocation(float touchX, float touchY, int swipeEdge) { mInitTouchX = touchX; mInitTouchY = touchY; + mLatestTouchX = touchX; + mLatestTouchY = touchY; mSwipeEdge = swipeEdge; mStartThresholdX = mInitTouchX; } @@ -108,7 +108,6 @@ class TouchTracker { mInitTouchX = 0; mInitTouchY = 0; mStartThresholdX = 0; - mCancelled = false; mTriggerBack = false; mState = TouchTrackerState.INITIAL; mSwipeEdge = BackEvent.EDGE_LEFT; @@ -126,11 +125,7 @@ class TouchTracker { } BackMotionEvent createProgressEvent() { - float progress = 0; - // Progress is always 0 when back is cancelled and not restarted. - if (!mCancelled) { - progress = getProgress(mLatestTouchX); - } + float progress = getProgress(mLatestTouchX); return createProgressEvent(progress); } @@ -148,7 +143,13 @@ class TouchTracker { // The starting threshold is initially the first touch location, and updated to // the location everytime back is restarted after being cancelled. float startX = mTriggerBack ? mInitTouchX : mStartThresholdX; - float deltaX = Math.abs(startX - touchX); + float distance; + if (mSwipeEdge == BackEvent.EDGE_LEFT) { + distance = touchX - startX; + } else { + distance = startX - touchX; + } + float deltaX = Math.max(0f, distance); float linearDistance = mLinearDistance; float maxDistance = getMaxDistance(); maxDistance = maxDistance == 0 ? 1 : maxDistance; diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/common/bubbles/DismissView.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/common/bubbles/DismissView.kt index 2eb55e19a960..9094739d0d88 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/common/bubbles/DismissView.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/common/bubbles/DismissView.kt @@ -167,7 +167,11 @@ class DismissView(context: Context) : FrameLayout(context) { animator .spring(DynamicAnimation.TRANSLATION_Y, height.toFloat(), spring) - .withEndActions({ setVisibility(View.INVISIBLE) }) + .withEndActions({ + visibility = View.INVISIBLE + circle.scaleX = 1f + circle.scaleY = 1f + }) .start() } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/back/ShellBackAnimationModule.java b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/back/ShellBackAnimationModule.java index 3be7d970e922..795bc1a7113b 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/back/ShellBackAnimationModule.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/back/ShellBackAnimationModule.java @@ -16,7 +16,7 @@ package com.android.wm.shell.dagger.back; -import com.android.wm.shell.back.CrossActivityAnimation; +import com.android.wm.shell.back.CrossActivityBackAnimation; import com.android.wm.shell.back.CrossTaskBackAnimation; import com.android.wm.shell.back.CustomizeActivityAnimation; import com.android.wm.shell.back.ShellBackAnimation; @@ -47,7 +47,7 @@ public interface ShellBackAnimationModule { @Binds @ShellBackAnimation.CrossActivity ShellBackAnimation bindCrossActivityShellBackAnimation( - CrossActivityAnimation crossActivityAnimation); + CrossActivityBackAnimation crossActivityBackAnimation); /** Default cross task back animation */ @Binds diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/keyguard/KeyguardTransitionHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/keyguard/KeyguardTransitionHandler.java index 0890861596a5..e63bbc07bc41 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/keyguard/KeyguardTransitionHandler.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/keyguard/KeyguardTransitionHandler.java @@ -252,12 +252,7 @@ public class KeyguardTransitionHandler Log.wtf(TAG, "RemoteException thrown from KeyguardService transition", e); } nextFinishCallback.onTransitionFinished(null); - } else if (nextInfo.getType() == TRANSIT_SLEEP) { - // An empty SLEEP transition comes in as a signal to abort transitions whenever a sleep - // token is held. In cases where keyguard is showing, we are running the animation for - // the device sleeping/waking, so it's best to ignore this and keep playing anyway. - return; - } else if (handles(nextInfo)) { + } else { // In all other cases, fast-forward to let the next queued transition start playing. finishAnimationImmediately(currentTransition, playing); } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipAnimationController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipAnimationController.java index 57cc28d1dde5..8eb4a5a1a4c9 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipAnimationController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipAnimationController.java @@ -427,10 +427,10 @@ public class PipAnimationController { new PipContentOverlay.PipSnapshotOverlay(snapshot, sourceRectHint)); } - void setAppIconContentOverlay(Context context, Rect bounds, ActivityInfo activityInfo, - int appIconSizePx) { + void setAppIconContentOverlay(Context context, Rect appBounds, Rect destinationBounds, + ActivityInfo activityInfo, int appIconSizePx) { reattachContentOverlay( - new PipContentOverlay.PipAppIconOverlay(context, bounds, + new PipContentOverlay.PipAppIconOverlay(context, appBounds, destinationBounds, new IconProvider(context).getIcon(activityInfo), appIconSizePx)); } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipContentOverlay.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipContentOverlay.java index c701b9581ca2..850b06a0fb7d 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipContentOverlay.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipContentOverlay.java @@ -180,20 +180,34 @@ public abstract class PipContentOverlay { private final Context mContext; private final int mAppIconSizePx; private final Rect mAppBounds; + private final int mOverlayHalfSize; private final Matrix mTmpTransform = new Matrix(); private final float[] mTmpFloat9 = new float[9]; private Bitmap mBitmap; - public PipAppIconOverlay(Context context, Rect appBounds, + public PipAppIconOverlay(Context context, Rect appBounds, Rect destinationBounds, Drawable appIcon, int appIconSizePx) { mContext = context; final int maxAppIconSizePx = (int) TypedValue.applyDimension(COMPLEX_UNIT_DIP, MAX_APP_ICON_SIZE_DP, context.getResources().getDisplayMetrics()); mAppIconSizePx = Math.min(maxAppIconSizePx, appIconSizePx); - mAppBounds = new Rect(appBounds); - mBitmap = Bitmap.createBitmap(appBounds.width(), appBounds.height(), - Bitmap.Config.ARGB_8888); + + final int appWidth = appBounds.width(); + final int appHeight = appBounds.height(); + + // In order to have the overlay always cover the pip window during the transition, the + // overlay will be drawn with the max size of the start and end bounds in different + // rotation. + final int overlaySize = Math.max(Math.max(appWidth, appHeight), + Math.max(destinationBounds.width(), destinationBounds.height())) + 1; + mOverlayHalfSize = overlaySize >> 1; + + // When the activity is in the secondary split, make sure the scaling center is not + // offset. + mAppBounds = new Rect(0, 0, appWidth, appHeight); + + mBitmap = Bitmap.createBitmap(overlaySize, overlaySize, Bitmap.Config.ARGB_8888); prepareAppIconOverlay(appIcon); mLeash = new SurfaceControl.Builder(new SurfaceSession()) .setCallsite(TAG) @@ -215,12 +229,19 @@ public abstract class PipContentOverlay { public void onAnimationUpdate(SurfaceControl.Transaction atomicTx, Rect currentBounds, float fraction) { mTmpTransform.reset(); + // In order for the overlay to always cover the pip window, the overlay may have a + // size larger than the pip window. Make sure that app icon is at the center. + final int appBoundsCenterX = mAppBounds.centerX(); + final int appBoundsCenterY = mAppBounds.centerY(); + mTmpTransform.setTranslate( + appBoundsCenterX - mOverlayHalfSize, + appBoundsCenterY - mOverlayHalfSize); // Scale back the bitmap with the pivot point at center. mTmpTransform.postScale( (float) mAppBounds.width() / currentBounds.width(), (float) mAppBounds.height() / currentBounds.height(), - mAppBounds.centerX(), - mAppBounds.centerY()); + appBoundsCenterX, + appBoundsCenterY); atomicTx.setMatrix(mLeash, mTmpTransform, mTmpFloat9) .setAlpha(mLeash, fraction < 0.5f ? 0 : (fraction - 0.5f) * 2); } @@ -253,10 +274,10 @@ public abstract class PipContentOverlay { ta.recycle(); } final Rect appIconBounds = new Rect( - mAppBounds.centerX() - mAppIconSizePx / 2, - mAppBounds.centerY() - mAppIconSizePx / 2, - mAppBounds.centerX() + mAppIconSizePx / 2, - mAppBounds.centerY() + mAppIconSizePx / 2); + mOverlayHalfSize - mAppIconSizePx / 2, + mOverlayHalfSize - mAppIconSizePx / 2, + mOverlayHalfSize + mAppIconSizePx / 2, + mOverlayHalfSize + mAppIconSizePx / 2); appIcon.setBounds(appIconBounds); appIcon.draw(canvas); mBitmap = mBitmap.copy(Bitmap.Config.HARDWARE, false /* mutable */); diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTaskOrganizer.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTaskOrganizer.java index 9e8f9c68d43d..083cd08e9a17 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTaskOrganizer.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTaskOrganizer.java @@ -1718,7 +1718,7 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener, sourceHintRect = computeRotatedBounds(rotationDelta, direction, destinationBounds, sourceHintRect); } - Rect baseBounds = direction == TRANSITION_DIRECTION_SNAP_AFTER_RESIZE + final Rect baseBounds = direction == TRANSITION_DIRECTION_SNAP_AFTER_RESIZE ? mPipBoundsState.getBounds() : currentBounds; final boolean existingAnimatorRunning = mPipAnimationController.getCurrentAnimator() != null && mPipAnimationController.getCurrentAnimator().isRunning(); @@ -1741,7 +1741,7 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener, final boolean hasTopActivityInfo = mTaskInfo.topActivityInfo != null; if (hasTopActivityInfo) { animator.setAppIconContentOverlay( - mContext, currentBounds, mTaskInfo.topActivityInfo, + mContext, currentBounds, destinationBounds, mTaskInfo.topActivityInfo, mPipBoundsState.getLauncherState().getAppIconSizePx()); } else { ProtoLog.w(ShellProtoLogGroup.WM_SHELL_TRANSITIONS, diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransition.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransition.java index 018d674e5427..d5b29e384c09 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransition.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransition.java @@ -916,7 +916,7 @@ public class PipTransition extends PipTransitionController { final boolean hasTopActivityInfo = taskInfo.topActivityInfo != null; if (hasTopActivityInfo) { animator.setAppIconContentOverlay( - mContext, currentBounds, taskInfo.topActivityInfo, + mContext, currentBounds, destinationBounds, taskInfo.topActivityInfo, mPipBoundsState.getLauncherState().getAppIconSizePx()); } else { ProtoLog.w(ShellProtoLogGroup.WM_SHELL_TRANSITIONS, diff --git a/libs/WindowManager/Shell/tests/flicker/pip/Android.bp b/libs/WindowManager/Shell/tests/flicker/pip/Android.bp index 386983ce6aae..4d11dfb37c05 100644 --- a/libs/WindowManager/Shell/tests/flicker/pip/Android.bp +++ b/libs/WindowManager/Shell/tests/flicker/pip/Android.bp @@ -124,10 +124,6 @@ android_test { ":WMShellFlickerTestsPipCommon-src", ], static_libs: ["WMShellFlickerTestsBase"], - test_suites: [ - "device-tests", - "csuite", - ], } csuite_test { diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/back/BackAnimationControllerTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/back/BackAnimationControllerTest.java index a67fd377db93..0395a9b78b2b 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/back/BackAnimationControllerTest.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/back/BackAnimationControllerTest.java @@ -130,7 +130,7 @@ public class BackAnimationControllerTest extends ShellTestCase { mShellInit = spy(new ShellInit(mShellExecutor)); mShellBackAnimationRegistry = new ShellBackAnimationRegistry( - new CrossActivityAnimation(mContext, mAnimationBackground), + new CrossActivityBackAnimation(mContext, mAnimationBackground), new CrossTaskBackAnimation(mContext, mAnimationBackground), /* dialogCloseAnimation= */ null, new CustomizeActivityAnimation(mContext, mAnimationBackground), @@ -534,7 +534,7 @@ public class BackAnimationControllerTest extends ShellTestCase { @Test public void testBackToActivity() throws RemoteException { - final CrossActivityAnimation animation = new CrossActivityAnimation(mContext, + final CrossActivityBackAnimation animation = new CrossActivityBackAnimation(mContext, mAnimationBackground); verifySystemBackBehavior(BackNavigationInfo.TYPE_CROSS_ACTIVITY, animation.getRunner()); } diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/back/TouchTrackerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/back/TouchTrackerTest.kt index 9088e8997e79..bf07dccd0658 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/back/TouchTrackerTest.kt +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/back/TouchTrackerTest.kt @@ -71,13 +71,13 @@ class TouchTrackerTest { linearTracker.update(touchX, 0f, velocityX, velocityY) linearTracker.assertProgress(0f) - // Restart + // Restarted, but pre-commit + val restartX = touchX touchX += 10f linearTracker.update(touchX, 0f, velocityX, velocityY) - linearTracker.assertProgress(0f) + linearTracker.assertProgress((touchX - restartX) / MAX_DISTANCE) - // Restarted, but pre-commit - val restartX = touchX + // continue restart within pre-commit touchX += 10f linearTracker.update(touchX, 0f, velocityX, velocityY) linearTracker.assertProgress((touchX - restartX) / MAX_DISTANCE) @@ -119,13 +119,13 @@ class TouchTrackerTest { linearTracker.update(touchX, 0f, velocityX, velocityY) linearTracker.assertProgress(0f) - // Restart + // Restarted, but pre-commit + val restartX = touchX touchX -= 10f linearTracker.update(touchX, 0f, velocityX, velocityY) - linearTracker.assertProgress(0f) + linearTracker.assertProgress((restartX - touchX) / target) - // Restarted, but pre-commit - val restartX = touchX + // continue restart within pre-commit touchX -= 10f linearTracker.update(touchX, 0f, velocityX, velocityY) linearTracker.assertProgress((restartX - touchX) / target) diff --git a/libs/hwui/Properties.cpp b/libs/hwui/Properties.cpp index ad600d0bab93..6c3172a26751 100644 --- a/libs/hwui/Properties.cpp +++ b/libs/hwui/Properties.cpp @@ -46,7 +46,7 @@ namespace uirenderer { #ifndef __ANDROID__ // Layoutlib does not compile HWUIProperties.sysprop as it depends on cutils properties std::optional<bool> use_vulkan() { - return base::GetBoolProperty("ro.hwui.use_vulkan", false); + return base::GetBoolProperty("ro.hwui.use_vulkan", true); } std::optional<std::int32_t> render_ahead() { diff --git a/libs/hwui/RenderNode.cpp b/libs/hwui/RenderNode.cpp index d28bb499c907..3e131bc44d39 100644 --- a/libs/hwui/RenderNode.cpp +++ b/libs/hwui/RenderNode.cpp @@ -40,6 +40,7 @@ #ifdef __ANDROID__ #include "include/gpu/ganesh/SkImageGanesh.h" #endif +#include "utils/ForceDark.h" #include "utils/MathUtils.h" #include "utils/StringUtils.h" @@ -403,16 +404,21 @@ void RenderNode::syncDisplayList(TreeObserver& observer, TreeInfo* info) { deleteDisplayList(observer, info); mDisplayList = std::move(mStagingDisplayList); if (mDisplayList) { - WebViewSyncData syncData { - .applyForceDark = info && !info->disableForceDark - }; + WebViewSyncData syncData{.applyForceDark = shouldEnableForceDark(info)}; mDisplayList.syncContents(syncData); handleForceDark(info); } } +inline bool RenderNode::shouldEnableForceDark(TreeInfo* info) { + return CC_UNLIKELY( + info && + (!info->disableForceDark || + info->forceDarkType == android::uirenderer::ForceDarkType::FORCE_INVERT_COLOR_DARK)); +} + void RenderNode::handleForceDark(android::uirenderer::TreeInfo *info) { - if (CC_LIKELY(!info || info->disableForceDark)) { + if (!shouldEnableForceDark(info)) { return; } auto usage = usageHint(); diff --git a/libs/hwui/RenderNode.h b/libs/hwui/RenderNode.h index c959db37474b..1f3834be5bef 100644 --- a/libs/hwui/RenderNode.h +++ b/libs/hwui/RenderNode.h @@ -233,6 +233,7 @@ private: void syncProperties(); void syncDisplayList(TreeObserver& observer, TreeInfo* info); void handleForceDark(TreeInfo* info); + bool shouldEnableForceDark(TreeInfo* info); void prepareTreeImpl(TreeObserver& observer, TreeInfo& info, bool functorsNeedLayer); void pushStagingPropertiesChanges(TreeInfo& info); diff --git a/libs/hwui/TreeInfo.cpp b/libs/hwui/TreeInfo.cpp index 750f869e2551..717157c09a53 100644 --- a/libs/hwui/TreeInfo.cpp +++ b/libs/hwui/TreeInfo.cpp @@ -24,7 +24,8 @@ TreeInfo::TreeInfo(TraversalMode mode, renderthread::CanvasContext& canvasContex : mode(mode) , prepareTextures(mode == MODE_FULL) , canvasContext(canvasContext) - , disableForceDark(canvasContext.useForceDark() ? 0 : 1) + , disableForceDark(canvasContext.getForceDarkType() == ForceDarkType::NONE ? 1 : 0) + , forceDarkType(canvasContext.getForceDarkType()) , screenSize(canvasContext.getNextFrameSize()) {} } // namespace android::uirenderer diff --git a/libs/hwui/TreeInfo.h b/libs/hwui/TreeInfo.h index ea25f68d7170..88449f3a3572 100644 --- a/libs/hwui/TreeInfo.h +++ b/libs/hwui/TreeInfo.h @@ -24,6 +24,7 @@ #include "Properties.h" #include "SkSize.h" #include "SkippedFrameInfo.h" +#include "utils/ForceDark.h" #include "utils/Macros.h" namespace android { @@ -97,6 +98,7 @@ public: bool updateWindowPositions = false; int disableForceDark; + ForceDarkType forceDarkType = ForceDarkType::NONE; const SkISize screenSize; diff --git a/libs/hwui/jni/android_graphics_HardwareRenderer.cpp b/libs/hwui/jni/android_graphics_HardwareRenderer.cpp index 422ffeaecfd0..d15b1680de94 100644 --- a/libs/hwui/jni/android_graphics_HardwareRenderer.cpp +++ b/libs/hwui/jni/android_graphics_HardwareRenderer.cpp @@ -35,6 +35,7 @@ #include <gui/TraceUtils.h> #include <include/encode/SkPngEncoder.h> #include <inttypes.h> +#include <log/log.h> #include <media/NdkImage.h> #include <media/NdkImageReader.h> #include <nativehelper/JNIPlatformHelp.h> @@ -53,11 +54,11 @@ #include <algorithm> #include <atomic> -#include <log/log.h> #include <vector> #include "JvmErrorReporter.h" #include "android_graphics_HardwareRendererObserver.h" +#include "utils/ForceDark.h" namespace android { @@ -824,10 +825,10 @@ static void android_view_ThreadedRenderer_allocateBuffers(JNIEnv* env, jobject c proxy->allocateBuffers(); } -static void android_view_ThreadedRenderer_setForceDark(JNIEnv* env, jobject clazz, - jlong proxyPtr, jboolean enable) { +static void android_view_ThreadedRenderer_setForceDark(JNIEnv* env, jobject clazz, jlong proxyPtr, + jint type) { RenderProxy* proxy = reinterpret_cast<RenderProxy*>(proxyPtr); - proxy->setForceDark(enable); + proxy->setForceDark(static_cast<ForceDarkType>(type)); } static void android_view_ThreadedRenderer_preload(JNIEnv*, jclass) { @@ -1016,7 +1017,7 @@ static const JNINativeMethod gMethods[] = { {"nSetIsolatedProcess", "(Z)V", (void*)android_view_ThreadedRenderer_setIsolatedProcess}, {"nSetContextPriority", "(I)V", (void*)android_view_ThreadedRenderer_setContextPriority}, {"nAllocateBuffers", "(J)V", (void*)android_view_ThreadedRenderer_allocateBuffers}, - {"nSetForceDark", "(JZ)V", (void*)android_view_ThreadedRenderer_setForceDark}, + {"nSetForceDark", "(JI)V", (void*)android_view_ThreadedRenderer_setForceDark}, {"nSetDisplayDensityDpi", "(I)V", (void*)android_view_ThreadedRenderer_setDisplayDensityDpi}, {"nInitDisplayInfo", "(IIFIJJZZ)V", (void*)android_view_ThreadedRenderer_initDisplayInfo}, diff --git a/libs/hwui/pipeline/skia/SkiaOpenGLPipeline.cpp b/libs/hwui/pipeline/skia/SkiaOpenGLPipeline.cpp index 774478669058..c5ffbb70213e 100644 --- a/libs/hwui/pipeline/skia/SkiaOpenGLPipeline.cpp +++ b/libs/hwui/pipeline/skia/SkiaOpenGLPipeline.cpp @@ -187,11 +187,12 @@ IRenderPipeline::DrawResult SkiaOpenGLPipeline::draw( dumpResourceCacheUsage(); } - return {true, IRenderPipeline::DrawResult::kUnknownTime}; + return {true, IRenderPipeline::DrawResult::kUnknownTime, android::base::unique_fd{}}; } -bool SkiaOpenGLPipeline::swapBuffers(const Frame& frame, bool drew, const SkRect& screenDirty, - FrameInfo* currentFrameInfo, bool* requireSwap) { +bool SkiaOpenGLPipeline::swapBuffers(const Frame& frame, IRenderPipeline::DrawResult& drawResult, + const SkRect& screenDirty, FrameInfo* currentFrameInfo, + bool* requireSwap) { GL_CHECKPOINT(LOW); // Even if we decided to cancel the frame, from the perspective of jank @@ -202,7 +203,7 @@ bool SkiaOpenGLPipeline::swapBuffers(const Frame& frame, bool drew, const SkRect return false; } - *requireSwap = drew || mEglManager.damageRequiresSwap(); + *requireSwap = drawResult.success || mEglManager.damageRequiresSwap(); if (*requireSwap && (CC_UNLIKELY(!mEglManager.swapBuffers(frame, screenDirty)))) { return false; diff --git a/libs/hwui/pipeline/skia/SkiaOpenGLPipeline.h b/libs/hwui/pipeline/skia/SkiaOpenGLPipeline.h index f0461bef170c..098a74655831 100644 --- a/libs/hwui/pipeline/skia/SkiaOpenGLPipeline.h +++ b/libs/hwui/pipeline/skia/SkiaOpenGLPipeline.h @@ -44,8 +44,9 @@ public: const std::vector<sp<RenderNode> >& renderNodes, FrameInfoVisualizer* profiler, const renderthread::HardwareBufferRenderParams& bufferParams) override; GrSurfaceOrigin getSurfaceOrigin() override { return kBottomLeft_GrSurfaceOrigin; } - bool swapBuffers(const renderthread::Frame& frame, bool drew, const SkRect& screenDirty, - FrameInfo* currentFrameInfo, bool* requireSwap) override; + bool swapBuffers(const renderthread::Frame& frame, IRenderPipeline::DrawResult& drawResult, + const SkRect& screenDirty, FrameInfo* currentFrameInfo, + bool* requireSwap) override; DeferredLayerUpdater* createTextureLayer() override; bool setSurface(ANativeWindow* surface, renderthread::SwapBehavior swapBehavior) override; [[nodiscard]] android::base::unique_fd flush() override; diff --git a/libs/hwui/pipeline/skia/SkiaVulkanPipeline.cpp b/libs/hwui/pipeline/skia/SkiaVulkanPipeline.cpp index 86096d5bd01c..12cb69da772b 100644 --- a/libs/hwui/pipeline/skia/SkiaVulkanPipeline.cpp +++ b/libs/hwui/pipeline/skia/SkiaVulkanPipeline.cpp @@ -87,7 +87,7 @@ IRenderPipeline::DrawResult SkiaVulkanPipeline::draw( } if (backBuffer.get() == nullptr) { - return {false, -1}; + return {false, -1, android::base::unique_fd{}}; } // update the coordinates of the global light position based on surface rotation @@ -110,10 +110,10 @@ IRenderPipeline::DrawResult SkiaVulkanPipeline::draw( profiler->draw(profileRenderer); } - nsecs_t submissionTime = IRenderPipeline::DrawResult::kUnknownTime; + VulkanManager::VkDrawResult drawResult; { ATRACE_NAME("flush commands"); - submissionTime = vulkanManager().finishFrame(backBuffer.get()); + drawResult = vulkanManager().finishFrame(backBuffer.get()); } layerUpdateQueue->clear(); @@ -122,11 +122,12 @@ IRenderPipeline::DrawResult SkiaVulkanPipeline::draw( dumpResourceCacheUsage(); } - return {true, submissionTime}; + return {true, drawResult.submissionTime, std::move(drawResult.presentFence)}; } -bool SkiaVulkanPipeline::swapBuffers(const Frame& frame, bool drew, const SkRect& screenDirty, - FrameInfo* currentFrameInfo, bool* requireSwap) { +bool SkiaVulkanPipeline::swapBuffers(const Frame& frame, IRenderPipeline::DrawResult& drawResult, + const SkRect& screenDirty, FrameInfo* currentFrameInfo, + bool* requireSwap) { // Even if we decided to cancel the frame, from the perspective of jank // metrics the frame was swapped at this point currentFrameInfo->markSwapBuffers(); @@ -135,10 +136,10 @@ bool SkiaVulkanPipeline::swapBuffers(const Frame& frame, bool drew, const SkRect return false; } - *requireSwap = drew; + *requireSwap = drawResult.success; if (*requireSwap) { - vulkanManager().swapBuffers(mVkSurface, screenDirty); + vulkanManager().swapBuffers(mVkSurface, screenDirty, std::move(drawResult.presentFence)); } return *requireSwap; diff --git a/libs/hwui/pipeline/skia/SkiaVulkanPipeline.h b/libs/hwui/pipeline/skia/SkiaVulkanPipeline.h index 284cde537ec0..e2ea57d32cd5 100644 --- a/libs/hwui/pipeline/skia/SkiaVulkanPipeline.h +++ b/libs/hwui/pipeline/skia/SkiaVulkanPipeline.h @@ -44,8 +44,9 @@ public: const std::vector<sp<RenderNode> >& renderNodes, FrameInfoVisualizer* profiler, const renderthread::HardwareBufferRenderParams& bufferParams) override; GrSurfaceOrigin getSurfaceOrigin() override { return kTopLeft_GrSurfaceOrigin; } - bool swapBuffers(const renderthread::Frame& frame, bool drew, const SkRect& screenDirty, - FrameInfo* currentFrameInfo, bool* requireSwap) override; + bool swapBuffers(const renderthread::Frame& frame, IRenderPipeline::DrawResult& drawResult, + const SkRect& screenDirty, FrameInfo* currentFrameInfo, + bool* requireSwap) override; DeferredLayerUpdater* createTextureLayer() override; [[nodiscard]] android::base::unique_fd flush() override; diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp index 7fac0c9776ac..56b52dc2abe7 100644 --- a/libs/hwui/renderthread/CanvasContext.cpp +++ b/libs/hwui/renderthread/CanvasContext.cpp @@ -664,8 +664,8 @@ void CanvasContext::draw(bool solelyTextureViewUpdates) { bool didDraw = false; int error = OK; - bool didSwap = mRenderPipeline->swapBuffers(frame, drawResult.success, windowDirty, - mCurrentFrameInfo, &requireSwap); + bool didSwap = mRenderPipeline->swapBuffers(frame, drawResult, windowDirty, mCurrentFrameInfo, + &requireSwap); mCurrentFrameInfo->set(FrameInfoIndex::CommandSubmissionCompleted) = std::max( drawResult.commandSubmissionTime, mCurrentFrameInfo->get(FrameInfoIndex::SwapBuffers)); @@ -969,6 +969,7 @@ void CanvasContext::buildLayer(RenderNode* node) { // buildLayer() will leave the tree in an unknown state, so we must stop drawing stopDrawing(); + ScopedActiveContext activeContext(this); TreeInfo info(TreeInfo::MODE_FULL, *this); info.damageAccumulator = &mDamageAccumulator; info.layerUpdateQueue = &mLayerUpdateQueue; diff --git a/libs/hwui/renderthread/CanvasContext.h b/libs/hwui/renderthread/CanvasContext.h index 37e4f7ecca54..be9b649030ae 100644 --- a/libs/hwui/renderthread/CanvasContext.h +++ b/libs/hwui/renderthread/CanvasContext.h @@ -46,6 +46,7 @@ #include "renderstate/RenderState.h" #include "renderthread/RenderTask.h" #include "renderthread/RenderThread.h" +#include "utils/ForceDark.h" #include "utils/RingBuffer.h" namespace android { @@ -194,11 +195,9 @@ public: mRenderPipeline->setPictureCapturedCallback(callback); } - void setForceDark(bool enable) { mUseForceDark = enable; } + void setForceDark(ForceDarkType type) { mForceDarkType = type; } - bool useForceDark() { - return mUseForceDark; - } + ForceDarkType getForceDarkType() { return mForceDarkType; } SkISize getNextFrameSize() const; @@ -321,7 +320,7 @@ private: nsecs_t mLastDropVsync = 0; bool mOpaque; - bool mUseForceDark = false; + ForceDarkType mForceDarkType = ForceDarkType::NONE; LightInfo mLightInfo; LightGeometry mLightGeometry = {{0, 0, 0}, 0}; diff --git a/libs/hwui/renderthread/IRenderPipeline.h b/libs/hwui/renderthread/IRenderPipeline.h index 6c2cb9d71c55..9c879d5a58d1 100644 --- a/libs/hwui/renderthread/IRenderPipeline.h +++ b/libs/hwui/renderthread/IRenderPipeline.h @@ -61,6 +61,7 @@ public: // submission occurred. -1 if this time is unknown. static constexpr nsecs_t kUnknownTime = -1; nsecs_t commandSubmissionTime = kUnknownTime; + android::base::unique_fd presentFence; }; virtual DrawResult draw(const Frame& frame, const SkRect& screenDirty, const SkRect& dirty, const LightGeometry& lightGeometry, LayerUpdateQueue* layerUpdateQueue, @@ -68,8 +69,9 @@ public: const std::vector<sp<RenderNode>>& renderNodes, FrameInfoVisualizer* profiler, const HardwareBufferRenderParams& bufferParams) = 0; - virtual bool swapBuffers(const Frame& frame, bool drew, const SkRect& screenDirty, - FrameInfo* currentFrameInfo, bool* requireSwap) = 0; + virtual bool swapBuffers(const Frame& frame, IRenderPipeline::DrawResult&, + const SkRect& screenDirty, FrameInfo* currentFrameInfo, + bool* requireSwap) = 0; virtual DeferredLayerUpdater* createTextureLayer() = 0; [[nodiscard]] virtual android::base::unique_fd flush() = 0; virtual void setHardwareBuffer(AHardwareBuffer* hardwareBuffer) = 0; diff --git a/libs/hwui/renderthread/RenderProxy.cpp b/libs/hwui/renderthread/RenderProxy.cpp index be163bad77a7..c3c136feef69 100644 --- a/libs/hwui/renderthread/RenderProxy.cpp +++ b/libs/hwui/renderthread/RenderProxy.cpp @@ -417,8 +417,8 @@ void RenderProxy::removeFrameMetricsObserver(FrameMetricsObserver* observerPtr) }); } -void RenderProxy::setForceDark(bool enable) { - mRenderThread.queue().post([this, enable]() { mContext->setForceDark(enable); }); +void RenderProxy::setForceDark(ForceDarkType type) { + mRenderThread.queue().post([this, type]() { mContext->setForceDark(type); }); } void RenderProxy::copySurfaceInto(ANativeWindow* window, std::shared_ptr<CopyRequest>&& request) { diff --git a/libs/hwui/renderthread/RenderProxy.h b/libs/hwui/renderthread/RenderProxy.h index 47c1b0cd28e5..f2d8e94c7bd2 100644 --- a/libs/hwui/renderthread/RenderProxy.h +++ b/libs/hwui/renderthread/RenderProxy.h @@ -31,6 +31,7 @@ #include "DrawFrameTask.h" #include "SwapBehavior.h" #include "hwui/Bitmap.h" +#include "utils/ForceDark.h" class SkBitmap; class SkPicture; @@ -142,7 +143,7 @@ public: void addFrameMetricsObserver(FrameMetricsObserver* observer); void removeFrameMetricsObserver(FrameMetricsObserver* observer); - void setForceDark(bool enable); + void setForceDark(ForceDarkType type); static void copySurfaceInto(ANativeWindow* window, std::shared_ptr<CopyRequest>&& request); static void prepareToDraw(Bitmap& bitmap); diff --git a/libs/hwui/renderthread/VulkanManager.cpp b/libs/hwui/renderthread/VulkanManager.cpp index 22c586248705..e706eb083ab6 100644 --- a/libs/hwui/renderthread/VulkanManager.cpp +++ b/libs/hwui/renderthread/VulkanManager.cpp @@ -531,32 +531,21 @@ struct DestroySemaphoreInfo { PFN_vkDestroySemaphore mDestroyFunction; VkDevice mDevice; VkSemaphore mSemaphore; - // We need to make sure we don't delete the VkSemaphore until it is done being used by both Skia - // (including by the GPU) and inside the VulkanManager. So we always start with two refs, one - // owned by Skia and one owned by the VulkanManager. The refs are decremented each time - // destroy_semaphore is called with this object. Skia will call destroy_semaphore once it is - // done with the semaphore and the GPU has finished work on the semaphore. The VulkanManager - // calls destroy_semaphore after sending the semaphore to Skia and exporting it if need be. - int mRefs = 2; DestroySemaphoreInfo(PFN_vkDestroySemaphore destroyFunction, VkDevice device, VkSemaphore semaphore) : mDestroyFunction(destroyFunction), mDevice(device), mSemaphore(semaphore) {} + + ~DestroySemaphoreInfo() { mDestroyFunction(mDevice, mSemaphore, nullptr); } }; static void destroy_semaphore(void* context) { DestroySemaphoreInfo* info = reinterpret_cast<DestroySemaphoreInfo*>(context); - --info->mRefs; - if (!info->mRefs) { - info->mDestroyFunction(info->mDevice, info->mSemaphore, nullptr); - delete info; - } + delete info; } -nsecs_t VulkanManager::finishFrame(SkSurface* surface) { +VulkanManager::VkDrawResult VulkanManager::finishFrame(SkSurface* surface) { ATRACE_NAME("Vulkan finish frame"); - ALOGE_IF(mSwapSemaphore != VK_NULL_HANDLE || mDestroySemaphoreContext != nullptr, - "finishFrame already has an outstanding semaphore"); VkExportSemaphoreCreateInfo exportInfo; exportInfo.sType = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO; @@ -576,11 +565,11 @@ nsecs_t VulkanManager::finishFrame(SkSurface* surface) { GrFlushInfo flushInfo; if (err == VK_SUCCESS) { - mDestroySemaphoreContext = new DestroySemaphoreInfo(mDestroySemaphore, mDevice, semaphore); flushInfo.fNumSemaphores = 1; flushInfo.fSignalSemaphores = &backendSemaphore; flushInfo.fFinishedProc = destroy_semaphore; - flushInfo.fFinishedContext = mDestroySemaphoreContext; + flushInfo.fFinishedContext = + new DestroySemaphoreInfo(mDestroySemaphore, mDevice, semaphore); } else { semaphore = VK_NULL_HANDLE; } @@ -589,10 +578,11 @@ nsecs_t VulkanManager::finishFrame(SkSurface* surface) { GrSemaphoresSubmitted submitted = context->flush( surface, SkSurfaces::BackendSurfaceAccess::kPresent, flushInfo); context->submit(); - const nsecs_t submissionTime = systemTime(); + VkDrawResult drawResult{ + .submissionTime = systemTime(), + }; if (semaphore != VK_NULL_HANDLE) { if (submitted == GrSemaphoresSubmitted::kYes) { - mSwapSemaphore = semaphore; if (mFrameBoundaryANDROID) { // retrieve VkImage used as render target VkImage image = VK_NULL_HANDLE; @@ -611,45 +601,37 @@ nsecs_t VulkanManager::finishFrame(SkSurface* surface) { } // frameBoundaryANDROID needs to know about mSwapSemaphore, but // it won't wait on it. - mFrameBoundaryANDROID(mDevice, mSwapSemaphore, image); + mFrameBoundaryANDROID(mDevice, semaphore, image); } - } else { - destroy_semaphore(mDestroySemaphoreContext); - mDestroySemaphoreContext = nullptr; } - } - skiapipeline::ShaderCache::get().onVkFrameFlushed(context); - - return submissionTime; -} - -void VulkanManager::swapBuffers(VulkanSurface* surface, const SkRect& dirtyRect) { - if (CC_UNLIKELY(Properties::waitForGpuCompletion)) { - ATRACE_NAME("Finishing GPU work"); - mDeviceWaitIdle(mDevice); - } - - int fenceFd = -1; - if (mSwapSemaphore != VK_NULL_HANDLE) { VkSemaphoreGetFdInfoKHR getFdInfo; getFdInfo.sType = VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR; getFdInfo.pNext = nullptr; - getFdInfo.semaphore = mSwapSemaphore; + getFdInfo.semaphore = semaphore; getFdInfo.handleType = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT; - VkResult err = mGetSemaphoreFdKHR(mDevice, &getFdInfo, &fenceFd); + int fenceFd = -1; + err = mGetSemaphoreFdKHR(mDevice, &getFdInfo, &fenceFd); ALOGE_IF(VK_SUCCESS != err, "VulkanManager::swapBuffers(): Failed to get semaphore Fd"); + drawResult.presentFence.reset(fenceFd); } else { - ALOGE("VulkanManager::swapBuffers(): Semaphore submission failed"); + ALOGE("VulkanManager::finishFrame(): Semaphore submission failed"); mQueueWaitIdle(mGraphicsQueue); } - if (mDestroySemaphoreContext) { - destroy_semaphore(mDestroySemaphoreContext); + + skiapipeline::ShaderCache::get().onVkFrameFlushed(context); + + return drawResult; +} + +void VulkanManager::swapBuffers(VulkanSurface* surface, const SkRect& dirtyRect, + android::base::unique_fd&& presentFence) { + if (CC_UNLIKELY(Properties::waitForGpuCompletion)) { + ATRACE_NAME("Finishing GPU work"); + mDeviceWaitIdle(mDevice); } - surface->presentCurrentBuffer(dirtyRect, fenceFd); - mSwapSemaphore = VK_NULL_HANDLE; - mDestroySemaphoreContext = nullptr; + surface->presentCurrentBuffer(dirtyRect, presentFence.release()); } void VulkanManager::destroySurface(VulkanSurface* surface) { @@ -753,22 +735,17 @@ status_t VulkanManager::createReleaseFence(int* nativeFence, GrDirectContext* gr GrBackendSemaphore backendSemaphore; backendSemaphore.initVulkan(semaphore); - DestroySemaphoreInfo* destroyInfo = - new DestroySemaphoreInfo(mDestroySemaphore, mDevice, semaphore); // Even if Skia fails to submit the semaphore, it will still call the destroy_semaphore callback - // which will remove its ref to the semaphore. The VulkanManager must still release its ref, - // when it is done with the semaphore. GrFlushInfo flushInfo; flushInfo.fNumSemaphores = 1; flushInfo.fSignalSemaphores = &backendSemaphore; flushInfo.fFinishedProc = destroy_semaphore; - flushInfo.fFinishedContext = destroyInfo; + flushInfo.fFinishedContext = new DestroySemaphoreInfo(mDestroySemaphore, mDevice, semaphore); GrSemaphoresSubmitted submitted = grContext->flush(flushInfo); grContext->submit(); if (submitted == GrSemaphoresSubmitted::kNo) { ALOGE("VulkanManager::createReleaseFence: Failed to submit semaphore"); - destroy_semaphore(destroyInfo); return INVALID_OPERATION; } @@ -781,7 +758,6 @@ status_t VulkanManager::createReleaseFence(int* nativeFence, GrDirectContext* gr int fenceFd = 0; err = mGetSemaphoreFdKHR(mDevice, &getFdInfo, &fenceFd); - destroy_semaphore(destroyInfo); if (VK_SUCCESS != err) { ALOGE("VulkanManager::createReleaseFence: Failed to get semaphore Fd"); return INVALID_OPERATION; diff --git a/libs/hwui/renderthread/VulkanManager.h b/libs/hwui/renderthread/VulkanManager.h index dbef7fbd51b2..b92ebb3cdf71 100644 --- a/libs/hwui/renderthread/VulkanManager.h +++ b/libs/hwui/renderthread/VulkanManager.h @@ -22,6 +22,7 @@ #endif #include <GrContextOptions.h> #include <SkSurface.h> +#include <android-base/unique_fd.h> #include <utils/StrongPointer.h> #include <vk/GrVkBackendContext.h> #include <vk/GrVkExtensions.h> @@ -82,10 +83,17 @@ public: void destroySurface(VulkanSurface* surface); Frame dequeueNextBuffer(VulkanSurface* surface); + + struct VkDrawResult { + // The estimated start time for intiating GPU work, -1 if unknown. + nsecs_t submissionTime; + android::base::unique_fd presentFence; + }; + // Finishes the frame and submits work to the GPU - // Returns the estimated start time for intiating GPU work, -1 otherwise. - nsecs_t finishFrame(SkSurface* surface); - void swapBuffers(VulkanSurface* surface, const SkRect& dirtyRect); + VkDrawResult finishFrame(SkSurface* surface); + void swapBuffers(VulkanSurface* surface, const SkRect& dirtyRect, + android::base::unique_fd&& presentFence); // Inserts a wait on fence command into the Vulkan command buffer. status_t fenceWait(int fence, GrDirectContext* grContext); @@ -201,9 +209,6 @@ private: GrVkExtensions mExtensions; uint32_t mDriverVersion = 0; - VkSemaphore mSwapSemaphore = VK_NULL_HANDLE; - void* mDestroySemaphoreContext = nullptr; - std::once_flag mInitFlag; std::atomic_bool mInitialized = false; }; diff --git a/libs/hwui/utils/ForceDark.h b/libs/hwui/utils/ForceDark.h new file mode 100644 index 000000000000..28538c4b7a7b --- /dev/null +++ b/libs/hwui/utils/ForceDark.h @@ -0,0 +1,34 @@ +/* + * 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. + */ + +#ifndef FORCEDARKUTILS_H +#define FORCEDARKUTILS_H + +namespace android { +namespace uirenderer { + +/** + * The type of force dark set on the renderer, if any. + * + * This should stay in sync with the java @IntDef in + * frameworks/base/graphics/java/android/graphics/ForceDarkType.java + */ +enum class ForceDarkType : __uint8_t { NONE = 0, FORCE_DARK = 1, FORCE_INVERT_COLOR_DARK = 2 }; + +} /* namespace uirenderer */ +} /* namespace android */ + +#endif // FORCEDARKUTILS_H
\ No newline at end of file diff --git a/libs/input/PointerController.cpp b/libs/input/PointerController.cpp index 576ebc1579ef..65e16056c106 100644 --- a/libs/input/PointerController.cpp +++ b/libs/input/PointerController.cpp @@ -74,6 +74,14 @@ std::shared_ptr<PointerController> PointerController::create( controller = std::shared_ptr<PointerController>( new MousePointerController(policy, looper, spriteController, enabled)); break; + case ControllerType::TOUCH: + controller = std::shared_ptr<PointerController>( + new TouchPointerController(policy, looper, spriteController, enabled)); + break; + case ControllerType::STYLUS: + controller = std::shared_ptr<PointerController>( + new StylusPointerController(policy, looper, spriteController, enabled)); + break; case ControllerType::LEGACY: default: controller = std::shared_ptr<PointerController>( @@ -167,8 +175,7 @@ void PointerController::setPosition(float x, float y) { FloatPoint PointerController::getPosition() const { if (!mEnabled) { - return FloatPoint{AMOTION_EVENT_INVALID_CURSOR_POSITION, - AMOTION_EVENT_INVALID_CURSOR_POSITION}; + return FloatPoint{0, 0}; } const int32_t displayId = mCursorController.getDisplayId(); @@ -397,4 +404,34 @@ MousePointerController::MousePointerController(const sp<PointerControllerPolicyI PointerController::setPresentation(Presentation::POINTER); } +MousePointerController::~MousePointerController() { + MousePointerController::fade(Transition::IMMEDIATE); +} + +// --- TouchPointerController --- + +TouchPointerController::TouchPointerController(const sp<PointerControllerPolicyInterface>& policy, + const sp<Looper>& looper, + SpriteController& spriteController, bool enabled) + : PointerController(policy, looper, spriteController, enabled) { + PointerController::setPresentation(Presentation::SPOT); +} + +TouchPointerController::~TouchPointerController() { + TouchPointerController::clearSpots(); +} + +// --- StylusPointerController --- + +StylusPointerController::StylusPointerController(const sp<PointerControllerPolicyInterface>& policy, + const sp<Looper>& looper, + SpriteController& spriteController, bool enabled) + : PointerController(policy, looper, spriteController, enabled) { + PointerController::setPresentation(Presentation::STYLUS_HOVER); +} + +StylusPointerController::~StylusPointerController() { + StylusPointerController::fade(Transition::IMMEDIATE); +} + } // namespace android diff --git a/libs/input/PointerController.h b/libs/input/PointerController.h index 08e19a096d87..fa07c3989720 100644 --- a/libs/input/PointerController.h +++ b/libs/input/PointerController.h @@ -68,7 +68,7 @@ public: void updatePointerIcon(PointerIconStyle iconId); void setCustomPointerIcon(const SpriteIcon& icon); - void setInactivityTimeout(InactivityTimeout inactivityTimeout); + virtual void setInactivityTimeout(InactivityTimeout inactivityTimeout); void doInactivityTimeout(); void reloadPointerResources(); void onDisplayViewportsUpdated(const std::vector<DisplayViewport>& viewports); @@ -143,6 +143,74 @@ public: const sp<Looper>& looper, SpriteController& spriteController, bool enabled); + ~MousePointerController() override; + + void setPresentation(Presentation) override { + LOG_ALWAYS_FATAL("Should not be called"); + } + void setSpots(const PointerCoords*, const uint32_t*, BitSet32, int32_t) override { + LOG_ALWAYS_FATAL("Should not be called"); + } + void clearSpots() override { + LOG_ALWAYS_FATAL("Should not be called"); + } +}; + +class TouchPointerController : public PointerController { +public: + /** A version of PointerController that controls touch spots. */ + TouchPointerController(const sp<PointerControllerPolicyInterface>& policy, + const sp<Looper>& looper, SpriteController& spriteController, + bool enabled); + + ~TouchPointerController() override; + + std::optional<FloatRect> getBounds() const override { + LOG_ALWAYS_FATAL("Should not be called"); + } + void move(float, float) override { + LOG_ALWAYS_FATAL("Should not be called"); + } + void setPosition(float, float) override { + LOG_ALWAYS_FATAL("Should not be called"); + } + FloatPoint getPosition() const override { + LOG_ALWAYS_FATAL("Should not be called"); + } + int32_t getDisplayId() const override { + LOG_ALWAYS_FATAL("Should not be called"); + } + void fade(Transition) override { + LOG_ALWAYS_FATAL("Should not be called"); + } + void unfade(Transition) override { + LOG_ALWAYS_FATAL("Should not be called"); + } + void setDisplayViewport(const DisplayViewport&) override { + LOG_ALWAYS_FATAL("Should not be called"); + } + void setPresentation(Presentation) override { + LOG_ALWAYS_FATAL("Should not be called"); + } + void updatePointerIcon(PointerIconStyle) { + LOG_ALWAYS_FATAL("Should not be called"); + } + void setCustomPointerIcon(const SpriteIcon&) { + LOG_ALWAYS_FATAL("Should not be called"); + } + // fade() should not be called by inactivity timeout. Do nothing. + void setInactivityTimeout(InactivityTimeout) override {} +}; + +class StylusPointerController : public PointerController { +public: + /** A version of PointerController that controls one stylus pointer. */ + StylusPointerController(const sp<PointerControllerPolicyInterface>& policy, + const sp<Looper>& looper, SpriteController& spriteController, + bool enabled); + + ~StylusPointerController() override; + void setPresentation(Presentation) override { LOG_ALWAYS_FATAL("Should not be called"); } diff --git a/media/java/android/media/IAudioService.aidl b/media/java/android/media/IAudioService.aidl index 8584dbc62ef9..12ddf9b34f10 100644 --- a/media/java/android/media/IAudioService.aidl +++ b/media/java/android/media/IAudioService.aidl @@ -303,7 +303,7 @@ interface IAudioService { void disableSafeMediaVolume(String callingPackage); - void lowerVolumeToRs1(String callingPackage); + oneway void lowerVolumeToRs1(String callingPackage); @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED") float getOutputRs2UpperBound(); diff --git a/media/java/android/media/MediaRouter2.java b/media/java/android/media/MediaRouter2.java index 8230a825ea0c..bde0c0cb2a9b 100644 --- a/media/java/android/media/MediaRouter2.java +++ b/media/java/android/media/MediaRouter2.java @@ -759,13 +759,7 @@ public final class MediaRouter2 { return; } - synchronized (mLock) { - mRoutes.clear(); - for (MediaRoute2Info route : currentRoutes) { - mRoutes.put(route.getId(), route); - } - updateFilteredRoutesLocked(); - } + updateRoutesOnHandler(currentRoutes); RoutingSessionInfo oldInfo = mSystemController.getRoutingSessionInfo(); mSystemController.setRoutingSessionInfo(currentSystemSessionInfo); @@ -824,10 +818,10 @@ public final class MediaRouter2 { } } - void updateRoutesOnHandler(List<MediaRoute2Info> routes) { + void updateRoutesOnHandler(List<MediaRoute2Info> newRoutes) { synchronized (mLock) { mRoutes.clear(); - for (MediaRoute2Info route : routes) { + for (MediaRoute2Info route : newRoutes) { mRoutes.put(route.getId(), route); } updateFilteredRoutesLocked(); @@ -2703,16 +2697,6 @@ public final class MediaRouter2 { notifyRouteListingPreferenceUpdated(routeListingPreference); } - private void onRoutesUpdatedOnHandler(@NonNull List<MediaRoute2Info> routes) { - synchronized (mLock) { - mRoutes.clear(); - for (MediaRoute2Info route : routes) { - mRoutes.put(route.getId(), route); - } - updateFilteredRoutesLocked(); - } - } - private void onRequestFailedOnHandler(int requestId, int reason) { MediaRouter2Manager.TransferRequest matchingRequest = null; for (MediaRouter2Manager.TransferRequest request : mTransferRequests) { @@ -2786,9 +2770,7 @@ public final class MediaRouter2 { public void notifyRoutesUpdated(List<MediaRoute2Info> routes) { mHandler.sendMessage( obtainMessage( - ProxyMediaRouter2Impl::onRoutesUpdatedOnHandler, - ProxyMediaRouter2Impl.this, - routes)); + MediaRouter2::updateRoutesOnHandler, MediaRouter2.this, routes)); } @Override diff --git a/media/java/android/media/audiopolicy/AudioVolumeGroup.java b/media/java/android/media/audiopolicy/AudioVolumeGroup.java index 1a9ebbc56d68..d60712674990 100644 --- a/media/java/android/media/audiopolicy/AudioVolumeGroup.java +++ b/media/java/android/media/audiopolicy/AudioVolumeGroup.java @@ -17,6 +17,7 @@ package android.media.audiopolicy; import android.annotation.NonNull; +import android.annotation.Nullable; import android.annotation.SystemApi; import android.media.AudioAttributes; import android.media.AudioSystem; @@ -107,7 +108,7 @@ public final class AudioVolumeGroup implements Parcelable { } @Override - public boolean equals(@NonNull Object o) { + public boolean equals(@Nullable Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; diff --git a/media/jni/android_media_MediaMetricsJNI.cpp b/media/jni/android_media_MediaMetricsJNI.cpp index 08a8d897c96e..2769dbc430ba 100644 --- a/media/jni/android_media_MediaMetricsJNI.cpp +++ b/media/jni/android_media_MediaMetricsJNI.cpp @@ -127,7 +127,7 @@ jobject MediaMetricsJNI::writeMetricsToBundle( if (item->getTimestamp() > 0) { bh.put(mediametrics::BUNDLE_TIMESTAMP, (int64_t)item->getTimestamp()); } - if (item->getUid() != -1) { + if (static_cast<int32_t>(item->getUid()) != -1) { bh.put(mediametrics::BUNDLE_UID, (int32_t)item->getUid()); } for (const auto &prop : *item) { diff --git a/packages/CredentialManager/wear/Android.bp b/packages/CredentialManager/wear/Android.bp index c883b1f26160..2a89a9940936 100644 --- a/packages/CredentialManager/wear/Android.bp +++ b/packages/CredentialManager/wear/Android.bp @@ -35,6 +35,7 @@ android_app { "androidx.compose.ui_ui", "androidx.compose.ui_ui-tooling", "androidx.core_core-ktx", + "androidx.hilt_hilt-navigation-compose", "androidx.lifecycle_lifecycle-extensions", "androidx.lifecycle_lifecycle-livedata", "androidx.lifecycle_lifecycle-runtime-ktx", diff --git a/packages/CredentialManager/wear/src/com/android/credentialmanager/CredentialSelectorActivity.kt b/packages/CredentialManager/wear/src/com/android/credentialmanager/CredentialSelectorActivity.kt index 0a63cb74a25a..f2df64aee22e 100644 --- a/packages/CredentialManager/wear/src/com/android/credentialmanager/CredentialSelectorActivity.kt +++ b/packages/CredentialManager/wear/src/com/android/credentialmanager/CredentialSelectorActivity.kt @@ -21,16 +21,10 @@ import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.viewModels -import androidx.lifecycle.Lifecycle -import androidx.lifecycle.lifecycleScope -import androidx.lifecycle.repeatOnLifecycle import androidx.wear.compose.material.MaterialTheme import com.android.credentialmanager.ui.WearApp -import com.android.credentialmanager.ui.screens.single.password.SinglePasswordScreen import com.google.android.horologist.annotations.ExperimentalHorologistApi -import com.google.android.horologist.compose.layout.belowTimeTextPreview import dagger.hilt.android.AndroidEntryPoint -import kotlinx.coroutines.launch @AndroidEntryPoint(ComponentActivity::class) class CredentialSelectorActivity : Hilt_CredentialSelectorActivity() { @@ -42,50 +36,14 @@ class CredentialSelectorActivity : Hilt_CredentialSelectorActivity() { super.onCreate(savedInstanceState) setTheme(android.R.style.Theme_DeviceDefault) - - // TODO: b/301027810 due to this issue with compose in Main platform, we are implementing a - // workaround. Once the issue is fixed, remove the "else" bracket and leave only the - // contents of the "if" bracket. - if (false) { - setContent { - MaterialTheme { - WearApp( - viewModel = viewModel, - onCloseApp = ::finish, - ) - } - } - } else { - // TODO: b/301027810 Remove the content of this "else" bracket fully once issue is fixed - lifecycleScope.launch { - repeatOnLifecycle(Lifecycle.State.STARTED) { - viewModel.uiState.collect { uiState -> - when (uiState) { - CredentialSelectorUiState.Idle -> { - // Don't display anything, assuming that there should be minimal latency - // to parse the Credential Manager intent and define the state of the - // app. If latency is big, then a "loading" screen should be displayed - // to the user. - } - - is CredentialSelectorUiState.Get -> { - setContent { - MaterialTheme { - SinglePasswordScreen( - columnState = belowTimeTextPreview(), - onCloseApp = ::finish, - ) - } - } - } - - else -> finish() - } - } - } + setContent { + MaterialTheme { + WearApp( + viewModel = viewModel, + onCloseApp = ::finish, + ) } } - viewModel.onNewIntent(intent) } diff --git a/packages/CredentialManager/wear/src/com/android/credentialmanager/ui/screens/single/password/SinglePasswordScreen.kt b/packages/CredentialManager/wear/src/com/android/credentialmanager/ui/screens/single/password/SinglePasswordScreen.kt index 81a067289d89..c28df3e8895a 100644 --- a/packages/CredentialManager/wear/src/com/android/credentialmanager/ui/screens/single/password/SinglePasswordScreen.kt +++ b/packages/CredentialManager/wear/src/com/android/credentialmanager/ui/screens/single/password/SinglePasswordScreen.kt @@ -27,8 +27,8 @@ import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp +import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle -import androidx.lifecycle.viewmodel.compose.viewModel import com.android.credentialmanager.R import com.android.credentialmanager.TAG import com.android.credentialmanager.activity.StartBalIntentSenderForResultContract @@ -47,7 +47,7 @@ fun SinglePasswordScreen( columnState: ScalingLazyColumnState, onCloseApp: () -> Unit, modifier: Modifier = Modifier, - viewModel: SinglePasswordScreenViewModel = viewModel(), + viewModel: SinglePasswordScreenViewModel = hiltViewModel(), ) { viewModel.initialize() diff --git a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/card/CardPageProvider.kt b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/card/CardPageProvider.kt index e914d5ce5140..8386bc1b1ba3 100644 --- a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/card/CardPageProvider.kt +++ b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/card/CardPageProvider.kt @@ -18,6 +18,9 @@ package com.android.settingslib.spa.gallery.card import android.os.Bundle import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.Error +import androidx.compose.material.icons.outlined.PowerOff +import androidx.compose.material.icons.outlined.Shield import androidx.compose.material.icons.outlined.WarningAmber import androidx.compose.runtime.Composable import androidx.compose.ui.res.stringResource @@ -29,13 +32,15 @@ import com.android.settingslib.spa.framework.compose.navigator import com.android.settingslib.spa.framework.theme.SettingsTheme import com.android.settingslib.spa.gallery.R import com.android.settingslib.spa.widget.card.CardButton +import com.android.settingslib.spa.widget.card.CardModel import com.android.settingslib.spa.widget.card.SettingsCard +import com.android.settingslib.spa.widget.card.SettingsCollapsibleCard import com.android.settingslib.spa.widget.preference.Preference import com.android.settingslib.spa.widget.preference.PreferenceModel import com.android.settingslib.spa.widget.scaffold.RegularScaffold object CardPageProvider : SettingsPageProvider { - override val name = "ActionButton" + override val name = "CardPage" override fun getTitle(arguments: Bundle?) = TITLE @@ -44,18 +49,21 @@ object CardPageProvider : SettingsPageProvider { RegularScaffold(title = TITLE) { SettingsCardWithIcon() SettingsCardWithoutIcon() + SampleSettingsCollapsibleCard() } } @Composable private fun SettingsCardWithIcon() { SettingsCard( - title = stringResource(R.string.sample_title), - text = stringResource(R.string.sample_text), - imageVector = Icons.Outlined.WarningAmber, - buttons = listOf( - CardButton(text = "Action") {}, - CardButton(text = "Action", isMain = true) {}, + CardModel( + title = stringResource(R.string.sample_title), + text = stringResource(R.string.sample_text), + imageVector = Icons.Outlined.WarningAmber, + buttons = listOf( + CardButton(text = "Action") {}, + CardButton(text = "Action", isMain = true) {}, + ) ) ) } @@ -63,10 +71,39 @@ object CardPageProvider : SettingsPageProvider { @Composable private fun SettingsCardWithoutIcon() { SettingsCard( - title = stringResource(R.string.sample_title), - text = stringResource(R.string.sample_text), - buttons = listOf( - CardButton(text = "Action") {}, + CardModel( + title = stringResource(R.string.sample_title), + text = stringResource(R.string.sample_text), + buttons = listOf( + CardButton(text = "Action") {}, + ), + ) + ) + } + + @Composable + fun SampleSettingsCollapsibleCard() { + SettingsCollapsibleCard( + title = "More alerts", + imageVector = Icons.Outlined.Error, + models = listOf( + CardModel( + title = stringResource(R.string.sample_title), + text = stringResource(R.string.sample_text), + imageVector = Icons.Outlined.PowerOff, + buttons = listOf( + CardButton(text = "Action") {}, + ) + ), + CardModel( + title = stringResource(R.string.sample_title), + text = stringResource(R.string.sample_text), + imageVector = Icons.Outlined.Shield, + buttons = listOf( + CardButton(text = "Action") {}, + CardButton(text = "Main action", isMain = true) {}, + ) + ) ) ) } diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/debug/UiModePreviews.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/debug/UiModePreviews.kt new file mode 100644 index 000000000000..d48e56464d94 --- /dev/null +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/debug/UiModePreviews.kt @@ -0,0 +1,24 @@ +/* + * 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.settingslib.spa.debug + +import android.content.res.Configuration +import androidx.compose.ui.tooling.preview.Preview + +@Preview(showBackground = true, uiMode = Configuration.UI_MODE_NIGHT_NO) +@Preview(showBackground = true, uiMode = Configuration.UI_MODE_NIGHT_YES) +annotation class UiModePreviews diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/theme/SettingsDimension.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/theme/SettingsDimension.kt index 4088ffd43986..47660bc44cc8 100644 --- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/theme/SettingsDimension.kt +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/theme/SettingsDimension.kt @@ -1,5 +1,5 @@ /* - * Copyright (C) 2022 The Android Open Source Project + * 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. @@ -20,6 +20,8 @@ import androidx.compose.foundation.layout.PaddingValues import androidx.compose.ui.unit.dp object SettingsDimension { + val paddingSmall = 4.dp + val itemIconSize = 24.dp val itemIconContainerSize = 72.dp val itemPaddingStart = 24.dp diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/card/CardModel.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/card/CardModel.kt new file mode 100644 index 000000000000..c113f4332fc3 --- /dev/null +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/card/CardModel.kt @@ -0,0 +1,32 @@ +/* + * 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.settingslib.spa.widget.card + +import androidx.compose.ui.graphics.vector.ImageVector + +data class CardButton( + val text: String, + val isMain: Boolean = false, + val onClick: () -> Unit, +) + +data class CardModel( + val title: String, + val text: String, + val imageVector: ImageVector? = null, + val buttons: List<CardButton> = emptyList(), +) diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/card/SettingsCard.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/card/SettingsCard.kt index 98873e037df8..10e26869a76e 100644 --- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/card/SettingsCard.kt +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/card/SettingsCard.kt @@ -16,9 +16,9 @@ package com.android.settingslib.spa.widget.card -import android.content.res.Configuration import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.ColumnScope import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding @@ -37,26 +37,15 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector -import androidx.compose.ui.tooling.preview.Preview +import com.android.settingslib.spa.debug.UiModePreviews import com.android.settingslib.spa.framework.theme.SettingsDimension import com.android.settingslib.spa.framework.theme.SettingsShape.CornerExtraLarge import com.android.settingslib.spa.framework.theme.SettingsTheme import com.android.settingslib.spa.widget.ui.SettingsBody import com.android.settingslib.spa.widget.ui.SettingsTitle -data class CardButton( - val text: String, - val isMain: Boolean = false, - val onClick: () -> Unit, -) - @Composable -fun SettingsCard( - title: String, - text: String, - imageVector: ImageVector? = null, - buttons: List<CardButton> = emptyList(), -) { +fun SettingsCard(content: @Composable ColumnScope.() -> Unit) { Card( shape = CornerExtraLarge, colors = CardDefaults.cardColors( @@ -68,16 +57,27 @@ fun SettingsCard( horizontal = SettingsDimension.itemPaddingEnd, vertical = SettingsDimension.itemPaddingAround, ), + content = content, + ) +} + +@Composable +fun SettingsCard(model: CardModel) { + SettingsCard { + SettingsCardImpl(model) + } +} + +@Composable +internal fun SettingsCardImpl(model: CardModel) { + Column( + modifier = Modifier.padding(SettingsDimension.itemPaddingStart), + verticalArrangement = Arrangement.spacedBy(SettingsDimension.itemPaddingAround) ) { - Column( - modifier = Modifier.padding(SettingsDimension.itemPaddingStart), - verticalArrangement = Arrangement.spacedBy(SettingsDimension.itemPaddingAround) - ) { - CardIcon(imageVector) - SettingsTitle(title) - SettingsBody(text) - Buttons(buttons) - } + CardIcon(model.imageVector) + SettingsTitle(model.title) + SettingsBody(model.text) + Buttons(model.buttons) } } @@ -136,28 +136,19 @@ private fun Button(button: CardButton) { } } -@Preview(uiMode = Configuration.UI_MODE_NIGHT_NO) -@Composable -private fun SettingsCardPreviewLight() { - SettingsCardPreview() -} - -@Preview(uiMode = Configuration.UI_MODE_NIGHT_YES) -@Composable -private fun SettingsCardPreviewDark() { - SettingsCardPreview() -} - +@UiModePreviews @Composable private fun SettingsCardPreview() { SettingsTheme { SettingsCard( - title = "Lorem ipsum", - text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.", - imageVector = Icons.Outlined.WarningAmber, - buttons = listOf( - CardButton(text = "Action") {}, - CardButton(text = "Action", isMain = true) {}, + CardModel( + title = "Lorem ipsum", + text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.", + imageVector = Icons.Outlined.WarningAmber, + buttons = listOf( + CardButton(text = "Action") {}, + CardButton(text = "Action", isMain = true) {}, + ) ) ) } diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/card/SettingsCollapsibleCard.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/card/SettingsCollapsibleCard.kt new file mode 100644 index 000000000000..7d1064512a64 --- /dev/null +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/card/SettingsCollapsibleCard.kt @@ -0,0 +1,153 @@ +/* + * 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.settingslib.spa.widget.card + +import androidx.compose.animation.AnimatedVisibility +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.Error +import androidx.compose.material.icons.outlined.PowerOff +import androidx.compose.material.icons.outlined.Shield +import androidx.compose.material3.HorizontalDivider +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Surface +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.saveable.rememberSaveable +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.vector.ImageVector +import com.android.settingslib.spa.debug.UiModePreviews +import com.android.settingslib.spa.framework.theme.SettingsDimension +import com.android.settingslib.spa.framework.theme.SettingsShape +import com.android.settingslib.spa.framework.theme.SettingsTheme +import com.android.settingslib.spa.widget.ui.ExpandIcon +import com.android.settingslib.spa.widget.ui.SettingsDialogItem +import com.android.settingslib.spa.widget.ui.SettingsTitleSmall + +@Composable +fun SettingsCollapsibleCard( + title: String, + imageVector: ImageVector, + models: List<CardModel> +) { + var expanded by rememberSaveable { mutableStateOf(false) } + SettingsCard { + Header(title, imageVector, models.size, expanded) { expanded = it } + AnimatedVisibility(expanded) { + Column { + for (model in models) { + HorizontalDivider( + thickness = SettingsDimension.paddingSmall, + color = MaterialTheme.colorScheme.surface, + ) + SettingsCardImpl(model) + } + } + } + } +} + +@Composable +private fun Header( + title: String, + imageVector: ImageVector, + cardCount: Int, + expanded: Boolean, + setExpanded: (Boolean) -> Unit, +) { + Row( + modifier = Modifier + .fillMaxWidth() + .clickable { setExpanded(!expanded) } + .padding( + horizontal = SettingsDimension.itemPaddingStart, + vertical = SettingsDimension.itemPaddingVertical, + ), + horizontalArrangement = Arrangement.spacedBy(SettingsDimension.itemPaddingStart), + verticalAlignment = Alignment.CenterVertically, + ) { + Icon( + imageVector = imageVector, + contentDescription = null, + modifier = Modifier.size(SettingsDimension.itemIconSize), + tint = MaterialTheme.colorScheme.primary, + ) + Box(modifier = Modifier.weight(1f)) { + SettingsTitleSmall(title, useMediumWeight = true) + } + CardCount(cardCount, expanded) + } +} + +@Composable +private fun CardCount(modelSize: Int, expanded: Boolean) { + Surface( + shape = SettingsShape.CornerExtraLarge, + color = MaterialTheme.colorScheme.secondaryContainer, + ) { + Row( + modifier = Modifier.padding(SettingsDimension.paddingSmall), + verticalAlignment = Alignment.CenterVertically, + ) { + Spacer(modifier = Modifier.padding(SettingsDimension.paddingSmall)) + SettingsDialogItem(modelSize.toString()) + ExpandIcon(expanded) + } + } +} + +@UiModePreviews +@Composable +private fun SettingsCollapsibleCardPreview() { + SettingsTheme { + SettingsCollapsibleCard( + title = "More alerts", + imageVector = Icons.Outlined.Error, + models = listOf( + CardModel( + title = "Lorem ipsum", + text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.", + imageVector = Icons.Outlined.PowerOff, + buttons = listOf( + CardButton(text = "Action") {}, + ) + ), + CardModel( + title = "Lorem ipsum", + text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.", + imageVector = Icons.Outlined.Shield, + buttons = listOf( + CardButton(text = "Action") {}, + CardButton(text = "Main action", isMain = true) {}, + ) + ) + ) + ) + } +} diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/Spinner.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/Spinner.kt index 8cbf7cc2ea47..a9974dc7d389 100644 --- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/Spinner.kt +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/Spinner.kt @@ -1,5 +1,5 @@ /* - * Copyright (C) 2022 The Android Open Source Project + * 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. @@ -76,13 +76,7 @@ fun Spinner(options: List<SpinnerOption>, selectedId: Int?, setId: (id: Int) -> contentPadding = contentPadding, ) { SpinnerText(options.find { it.id == selectedId }) - Icon( - imageVector = when { - expanded -> Icons.Outlined.ExpandLess - else -> Icons.Outlined.ExpandMore - }, - contentDescription = null, - ) + ExpandIcon(expanded) } DropdownMenu( expanded = expanded, @@ -110,6 +104,17 @@ fun Spinner(options: List<SpinnerOption>, selectedId: Int?, setId: (id: Int) -> } @Composable +internal fun ExpandIcon(expanded: Boolean) { + Icon( + imageVector = when { + expanded -> Icons.Outlined.ExpandLess + else -> Icons.Outlined.ExpandMore + }, + contentDescription = null, + ) +} + +@Composable private fun SpinnerText( option: SpinnerOption?, modifier: Modifier = Modifier, diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/Text.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/Text.kt index 7f1acffe7a8a..f4b284362c52 100644 --- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/Text.kt +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/Text.kt @@ -1,5 +1,5 @@ /* - * Copyright (C) 2022 The Android Open Source Project + * 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. @@ -26,6 +26,7 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -39,12 +40,16 @@ fun SettingsTitle(title: String, useMediumWeight: Boolean = false) { Text( text = title, color = MaterialTheme.colorScheme.onSurface, - style = MaterialTheme.typography.titleMedium.let { - when (useMediumWeight) { - true -> it.toMediumWeight() - else -> it - } - }, + style = MaterialTheme.typography.titleMedium.withWeight(useMediumWeight), + ) +} + +@Composable +fun SettingsTitleSmall(title: String, useMediumWeight: Boolean = false) { + Text( + text = title, + color = MaterialTheme.colorScheme.onSurface, + style = MaterialTheme.typography.titleSmall.withWeight(useMediumWeight), ) } @@ -78,7 +83,9 @@ fun SettingsBody( @Composable fun PlaceholderTitle(title: String) { Box( - modifier = Modifier.fillMaxSize().padding(SettingsDimension.itemPadding), + modifier = Modifier + .fillMaxSize() + .padding(SettingsDimension.itemPadding), contentAlignment = Alignment.Center, ) { Text( @@ -89,6 +96,11 @@ fun PlaceholderTitle(title: String) { } } +private fun TextStyle.withWeight(useMediumWeight: Boolean = false) = when (useMediumWeight) { + true -> toMediumWeight() + else -> this +} + @Preview @Composable private fun BasePreferencePreview() { diff --git a/packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/widget/card/SettingsCardTest.kt b/packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/widget/card/SettingsCardTest.kt index 0ec8507cb88b..fd3ae49d93c8 100644 --- a/packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/widget/card/SettingsCardTest.kt +++ b/packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/widget/card/SettingsCardTest.kt @@ -35,8 +35,10 @@ class SettingsCardTest { fun settingsCard_titleDisplayed() { composeTestRule.setContent { SettingsCard( - title = TITLE, - text = "", + CardModel( + title = TITLE, + text = "", + ) ) } @@ -47,8 +49,10 @@ class SettingsCardTest { fun settingsCard_textDisplayed() { composeTestRule.setContent { SettingsCard( - title = "", - text = TEXT, + CardModel( + title = "", + text = TEXT, + ) ) } @@ -59,11 +63,13 @@ class SettingsCardTest { fun settingsCard_buttonDisplayed() { composeTestRule.setContent { SettingsCard( - title = "", - text = "", - buttons = listOf( - CardButton(text = TEXT) {} - ), + CardModel( + title = "", + text = "", + buttons = listOf( + CardButton(text = TEXT) {} + ), + ) ) } @@ -75,11 +81,13 @@ class SettingsCardTest { var buttonClicked = false composeTestRule.setContent { SettingsCard( - title = "", - text = "", - buttons = listOf( - CardButton(text = TEXT) { buttonClicked = true } - ), + CardModel( + title = "", + text = "", + buttons = listOf( + CardButton(text = TEXT) { buttonClicked = true } + ), + ) ) } diff --git a/packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/widget/card/SettingsCollapsibleCardTest.kt b/packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/widget/card/SettingsCollapsibleCardTest.kt new file mode 100644 index 000000000000..efe1c701b1f6 --- /dev/null +++ b/packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/widget/card/SettingsCollapsibleCardTest.kt @@ -0,0 +1,84 @@ +/* + * 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.settingslib.spa.widget.card + +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.Error +import androidx.compose.ui.test.assertIsDisplayed +import androidx.compose.ui.test.junit4.createComposeRule +import androidx.compose.ui.test.onNodeWithText +import androidx.compose.ui.test.performClick +import androidx.test.ext.junit.runners.AndroidJUnit4 +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith + +@RunWith(AndroidJUnit4::class) +class SettingsCollapsibleCardTest { + @get:Rule + val composeTestRule = createComposeRule() + + @Test + fun settingsCollapsibleCard_titleDisplayed() { + setContent() + + composeTestRule.onNodeWithText(TITLE).assertIsDisplayed() + } + + @Test + fun settingsCollapsibleCard_cardCountDisplayed() { + setContent() + + composeTestRule.onNodeWithText("1").assertIsDisplayed() + } + + @Test + fun settingsCollapsibleCard_initial_cardTextNotExists() { + setContent() + + composeTestRule.onNodeWithText(CARD_TEXT).assertDoesNotExist() + } + + @Test + fun settingsCollapsibleCard_afterExpand_cardTextDisplayed() { + setContent() + + composeTestRule.onNodeWithText(TITLE).performClick() + + composeTestRule.onNodeWithText(CARD_TEXT).assertIsDisplayed() + } + + private fun setContent() { + composeTestRule.setContent { + SettingsCollapsibleCard( + title = TITLE, + imageVector = Icons.Outlined.Error, + models = listOf( + CardModel( + title = "", + text = CARD_TEXT, + ) + ), + ) + } + } + + private companion object { + const val TITLE = "Title" + const val CARD_TEXT = "Card Text" + } +} diff --git a/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/common/UserProfilePager.kt b/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/common/UserProfilePager.kt index 5447f21fd417..1c92696efd29 100644 --- a/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/common/UserProfilePager.kt +++ b/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/common/UserProfilePager.kt @@ -57,15 +57,18 @@ fun UserProfilePager(content: @Composable (userGroup: UserGroup) -> Unit) { private fun UserManager.getUserGroups(): List<UserGroup> { val userGroupList = mutableListOf<UserGroup>() - val profileToShowInSettingsList = getProfiles(UserHandle.myUserId()) - .map { userInfo -> userInfo to getUserProperties(userInfo.userHandle).showInSettings } + val profileToShowInSettings = getProfiles(UserHandle.myUserId()) + .map { userInfo -> userInfo to getUserProperties(userInfo.userHandle) } - profileToShowInSettingsList.filter { it.second == UserProperties.SHOW_IN_SETTINGS_WITH_PARENT } + profileToShowInSettings + .filter { it.second.showInSettings == UserProperties.SHOW_IN_SETTINGS_WITH_PARENT } .takeIf { it.isNotEmpty() } ?.map { it.first } ?.let { userInfos -> userGroupList += UserGroup(userInfos) } - profileToShowInSettingsList.filter { it.second == UserProperties.SHOW_IN_LAUNCHER_SEPARATE } + profileToShowInSettings + .filter { it.second.showInSettings == UserProperties.SHOW_IN_SETTINGS_SEPARATE && + (!it.second.hideInSettingsInQuietMode || !it.first.isQuietModeEnabled) } .forEach { userGroupList += UserGroup(userInfos = listOf(it.first)) } return userGroupList diff --git a/packages/SettingsLib/src/com/android/settingslib/RestrictedLockUtilsInternal.java b/packages/SettingsLib/src/com/android/settingslib/RestrictedLockUtilsInternal.java index 03d1cda9c071..e77964c6fa0c 100644 --- a/packages/SettingsLib/src/com/android/settingslib/RestrictedLockUtilsInternal.java +++ b/packages/SettingsLib/src/com/android/settingslib/RestrictedLockUtilsInternal.java @@ -243,6 +243,32 @@ public class RestrictedLockUtilsInternal extends RestrictedLockUtils { } /** + * Checks whether add user is disabled on the device + * + * @param context {@link Context} for the calling user. + * + * + * @param userId User to check enforced admin status for. + * + * @return EnforcedAdmin Object containing the enforced admin component and admin user details, + * or {@code null} If adding user is not disabled. + */ + public static EnforcedAdmin checkIfAddUserDisallowed(Context context, int userId) { + final UserManager um = UserManager.get(context); + if (!um.hasUserRestriction(UserManager.DISALLOW_ADD_USER, UserHandle.of(userId))) { + // Restriction is not enforced. + return null; + } + EnforcedAdmin enforcedAdmin = checkIfRestrictionEnforced(context, + UserManager.DISALLOW_ADD_USER, userId); + if (enforcedAdmin != null) { + return enforcedAdmin; + } + return EnforcedAdmin.createDefaultEnforcedAdminWithRestriction( + UserManager.DISALLOW_ADD_USER); + } + + /** * Check if an application is suspended. * * @return EnforcedAdmin Object containing the enforced admin component and admin user details, diff --git a/packages/SettingsLib/src/com/android/settingslib/Utils.java b/packages/SettingsLib/src/com/android/settingslib/Utils.java index f0741061a051..f03263b71138 100644 --- a/packages/SettingsLib/src/com/android/settingslib/Utils.java +++ b/packages/SettingsLib/src/com/android/settingslib/Utils.java @@ -23,6 +23,7 @@ import android.graphics.ColorFilter; import android.graphics.ColorMatrix; import android.graphics.ColorMatrixColorFilter; import android.graphics.drawable.Drawable; +import android.hardware.usb.flags.Flags; import android.hardware.usb.UsbManager; import android.hardware.usb.UsbPort; import android.hardware.usb.UsbPortStatus; @@ -704,12 +705,23 @@ public class Utils { continue; } for (int complianceWarningType : complianceWarnings) { - switch (complianceWarningType) { - case UsbPortStatus.COMPLIANCE_WARNING_OTHER: - case UsbPortStatus.COMPLIANCE_WARNING_DEBUG_ACCESSORY: - return true; - default: - break; + if (Flags.enableUsbDataComplianceWarning() + && Flags.enableInputPowerLimitedWarning()) { + switch (complianceWarningType) { + case UsbPortStatus.COMPLIANCE_WARNING_INPUT_POWER_LIMITED: + case UsbPortStatus.COMPLIANCE_WARNING_DEBUG_ACCESSORY: + return true; + default: + break; + } + } else { + switch (complianceWarningType) { + case UsbPortStatus.COMPLIANCE_WARNING_OTHER: + case UsbPortStatus.COMPLIANCE_WARNING_DEBUG_ACCESSORY: + return true; + default: + break; + } } } } diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CsipDeviceManager.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CsipDeviceManager.java index 3a6da2c98a65..a49314aae1b3 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CsipDeviceManager.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CsipDeviceManager.java @@ -49,7 +49,7 @@ public class CsipDeviceManager { List<CachedBluetoothDevice> cachedDevices) { mBtManager = localBtManager; mCachedDevices = cachedDevices; - }; + } void initCsipDeviceIfNeeded(CachedBluetoothDevice newDevice) { // Current it only supports the base uuid for CSIP and group this set in UI. @@ -218,11 +218,7 @@ public class CsipDeviceManager { * return {@code false}. */ public boolean isExistedGroupId(int groupId) { - if (getCachedDevice(groupId) != null) { - return true; - } - - return false; + return getCachedDevice(groupId) != null; } @VisibleForTesting @@ -271,7 +267,7 @@ public class CsipDeviceManager { .anyMatch(profile -> profile instanceof A2dpProfile || profile instanceof HeadsetProfile)) .findFirst().orElse(null); - if (dualModeDevice != null && dualModeDevice.isConnected()) { + if (isDeviceConnected(dualModeDevice)) { log("getPreferredMainDevice: The connected DUAL mode device"); return dualModeDevice; } @@ -290,13 +286,15 @@ public class CsipDeviceManager { leAudioLeadDevice != null ? deviceManager.findDevice(leAudioLeadDevice) : null; if (leAudioLeadCachedDevice == null) { log("getPreferredMainDevice: The LeadDevice is not in the all of devices list"); - } else if (leAudioLeadCachedDevice.isConnected()) { + } else if (isDeviceConnected(leAudioLeadCachedDevice)) { log("getPreferredMainDevice: The connected LeadDevice from LE profile"); return leAudioLeadCachedDevice; } - CachedBluetoothDevice oneOfConnectedDevices = groupDevicesList.stream() - .filter(cachedDevice -> cachedDevice.isConnected()) - .findFirst().orElse(null); + CachedBluetoothDevice oneOfConnectedDevices = + groupDevicesList.stream() + .filter(cachedDevice -> isDeviceConnected(cachedDevice)) + .findFirst() + .orElse(null); if (oneOfConnectedDevices != null) { log("getPreferredMainDevice: One of the connected devices."); return oneOfConnectedDevices; @@ -390,4 +388,14 @@ public class CsipDeviceManager { Log.d(TAG, msg); } } + + private boolean isDeviceConnected(CachedBluetoothDevice cachedDevice) { + if (cachedDevice == null) { + return false; + } + final BluetoothDevice device = cachedDevice.getDevice(); + return cachedDevice.isConnected() + && device.getBondState() == BluetoothDevice.BOND_BONDED + && device.isConnected(); + } } diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/LeAudioProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/LeAudioProfile.java index a93524f6d873..51164e836590 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/LeAudioProfile.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/LeAudioProfile.java @@ -126,13 +126,25 @@ public class LeAudioProfile implements LocalBluetoothProfile { } public List<BluetoothDevice> getConnectedDevices() { + return getDevicesByStates(new int[] { + BluetoothProfile.STATE_CONNECTED, + BluetoothProfile.STATE_CONNECTING, + BluetoothProfile.STATE_DISCONNECTING}); + } + + public List<BluetoothDevice> getConnectableDevices() { + return getDevicesByStates(new int[] { + BluetoothProfile.STATE_DISCONNECTED, + BluetoothProfile.STATE_CONNECTED, + BluetoothProfile.STATE_CONNECTING, + BluetoothProfile.STATE_DISCONNECTING}); + } + + private List<BluetoothDevice> getDevicesByStates(int[] states) { if (mService == null) { - return new ArrayList<BluetoothDevice>(0); + return new ArrayList<>(0); } - return mService.getDevicesMatchingConnectionStates( - new int[] {BluetoothProfile.STATE_CONNECTED, - BluetoothProfile.STATE_CONNECTING, - BluetoothProfile.STATE_DISCONNECTING}); + return mService.getDevicesMatchingConnectionStates(states); } /* diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothProfileManager.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothProfileManager.java index 0e7b79ba297a..119aef6da12e 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothProfileManager.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothProfileManager.java @@ -136,7 +136,7 @@ public class LocalBluetoothProfileManager { /** * create profile instance according to bluetooth supported profile list */ - void updateLocalProfiles() { + synchronized void updateLocalProfiles() { List<Integer> supportedList = BluetoothAdapter.getDefaultAdapter().getSupportedProfiles(); if (CollectionUtils.isEmpty(supportedList)) { if (DEBUG) Log.d(TAG, "supportedList is null"); diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/UtilsTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/UtilsTest.java index 29846ac30909..a88a9c72e4a9 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/UtilsTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/UtilsTest.java @@ -28,6 +28,7 @@ import android.app.ActivityManager; import android.content.Context; import android.content.Intent; import android.content.res.Resources; +import android.hardware.usb.flags.Flags; import android.hardware.usb.UsbManager; import android.hardware.usb.UsbPort; import android.hardware.usb.UsbPortStatus; @@ -36,6 +37,7 @@ import android.media.AudioManager; import android.os.BatteryManager; import android.os.SystemProperties; import android.os.UserHandle; +import android.platform.test.flag.junit.SetFlagsRule; import android.provider.Settings; import android.telephony.AccessNetworkConstants; import android.telephony.NetworkRegistrationInfo; @@ -44,6 +46,7 @@ import android.text.TextUtils; import org.junit.After; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentMatcher; @@ -85,6 +88,8 @@ public class UtilsTest { @Mock private UsbPortStatus mUsbPortStatus; + @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); + @Before public void setUp() { MockitoAnnotations.initMocks(this); @@ -425,8 +430,38 @@ public class UtilsTest { } @Test - public void containsIncompatibleChargers_complianeWarningOther_returnTrue() { + public void containsIncompatibleChargers_complianeWarningOther_returnTrue_flagDisabled() { + mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_USB_DATA_COMPLIANCE_WARNING); + mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_INPUT_POWER_LIMITED_WARNING); setupIncompatibleCharging(UsbPortStatus.COMPLIANCE_WARNING_OTHER); + + assertThat(Utils.containsIncompatibleChargers(mContext, TAG)).isTrue(); + } + + @Test + public void containsIncompatibleChargers_complianeWarningPower_returnFalse_flagDisabled() { + mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_USB_DATA_COMPLIANCE_WARNING); + mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_INPUT_POWER_LIMITED_WARNING); + setupIncompatibleCharging(UsbPortStatus.COMPLIANCE_WARNING_INPUT_POWER_LIMITED); + + assertThat(Utils.containsIncompatibleChargers(mContext, TAG)).isFalse(); + } + + @Test + public void containsIncompatibleChargers_complianeWarningOther_returnFalse_flagEnabled() { + mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_USB_DATA_COMPLIANCE_WARNING); + mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_INPUT_POWER_LIMITED_WARNING); + setupIncompatibleCharging(UsbPortStatus.COMPLIANCE_WARNING_OTHER); + + assertThat(Utils.containsIncompatibleChargers(mContext, TAG)).isFalse(); + } + + @Test + public void containsIncompatibleChargers_complianeWarningPower_returnTrue_flagEnabled() { + mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_USB_DATA_COMPLIANCE_WARNING); + mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_INPUT_POWER_LIMITED_WARNING); + setupIncompatibleCharging(UsbPortStatus.COMPLIANCE_WARNING_INPUT_POWER_LIMITED); + assertThat(Utils.containsIncompatibleChargers(mContext, TAG)).isTrue(); } @@ -446,7 +481,6 @@ public class UtilsTest { public void containsIncompatibleChargers_emptyComplianceWarnings_returnFalse() { setupIncompatibleCharging(); when(mUsbPortStatus.getComplianceWarnings()).thenReturn(new int[1]); - assertThat(Utils.containsIncompatibleChargers(mContext, TAG)).isFalse(); } @@ -476,7 +510,7 @@ public class UtilsTest { } private void setupIncompatibleCharging() { - setupIncompatibleCharging(UsbPortStatus.COMPLIANCE_WARNING_OTHER); + setupIncompatibleCharging(UsbPortStatus.COMPLIANCE_WARNING_DEBUG_ACCESSORY); } private void setupIncompatibleCharging(int complianceWarningType) { diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CsipDeviceManagerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CsipDeviceManagerTest.java index 9b41bc4f8b00..3f59da4bf24e 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CsipDeviceManagerTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CsipDeviceManagerTest.java @@ -29,9 +29,6 @@ import android.bluetooth.BluetoothProfile; import android.content.Context; import android.os.Parcel; -import java.util.ArrayList; -import java.util.List; - import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -40,6 +37,9 @@ import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; +import java.util.ArrayList; +import java.util.List; + @RunWith(RobolectricTestRunner.class) public class CsipDeviceManagerTest { private final static String DEVICE_NAME_1 = "TestName_1"; @@ -84,7 +84,6 @@ public class CsipDeviceManagerTest { private Context mContext; private List<CachedBluetoothDevice> mCachedDevices = new ArrayList<CachedBluetoothDevice>(); - private BluetoothClass createBtClass(int deviceClass) { Parcel p = Parcel.obtain(); p.writeInt(deviceClass); @@ -112,6 +111,12 @@ public class CsipDeviceManagerTest { when(mDevice1.getBluetoothClass()).thenReturn(DEVICE_CLASS_1); when(mDevice2.getBluetoothClass()).thenReturn(DEVICE_CLASS_2); when(mDevice3.getBluetoothClass()).thenReturn(DEVICE_CLASS_2); + when(mDevice1.isConnected()).thenReturn(true); + when(mDevice2.isConnected()).thenReturn(true); + when(mDevice3.isConnected()).thenReturn(true); + when(mDevice1.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED); + when(mDevice2.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED); + when(mDevice3.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED); when(mLocalBluetoothManager.getEventManager()).thenReturn(mBluetoothEventManager); when(mLocalBluetoothManager.getProfileManager()).thenReturn(mLocalProfileManager); when(mLocalProfileManager.getLeAudioProfile()).thenReturn(mLeAudioProfile); @@ -153,7 +158,6 @@ public class CsipDeviceManagerTest { profiles.add(mA2dpProfile); when(mCachedDevice3.getConnectableProfiles()).thenReturn(profiles); when(mCachedDevice3.isConnected()).thenReturn(true); - } @Test @@ -203,6 +207,7 @@ public class CsipDeviceManagerTest { @Test public void getPreferredMainDevice_noConnectedDualModeDevice_returnLeadDevice() { when(mCachedDevice1.isConnected()).thenReturn(false); + when(mDevice1.isConnected()).thenReturn(false); when(mLeAudioProfile.getConnectedGroupLeadDevice(anyInt())).thenReturn(mDevice2); CachedBluetoothDevice expectedDevice = mCachedDevice2; @@ -216,6 +221,8 @@ public class CsipDeviceManagerTest { public void getPreferredMainDevice_noConnectedDualModeDeviceNoLeadDevice_returnConnectedOne() { when(mCachedDevice1.isConnected()).thenReturn(false); when(mCachedDevice2.isConnected()).thenReturn(true); + when(mDevice1.isConnected()).thenReturn(false); + when(mDevice2.isConnected()).thenReturn(true); CachedBluetoothDevice expectedDevice = mCachedDevice2; assertThat( @@ -228,6 +235,8 @@ public class CsipDeviceManagerTest { public void getPreferredMainDevice_noConnectedDevice_returnDualModeDevice() { when(mCachedDevice1.isConnected()).thenReturn(false); when(mCachedDevice2.isConnected()).thenReturn(false); + when(mDevice1.isConnected()).thenReturn(false); + when(mDevice2.isConnected()).thenReturn(false); CachedBluetoothDevice expectedDevice = mCachedDevice1; assertThat( @@ -240,6 +249,8 @@ public class CsipDeviceManagerTest { public void getPreferredMainDevice_noConnectedDeviceNoDualMode_returnFirstOneDevice() { when(mCachedDevice1.isConnected()).thenReturn(false); when(mCachedDevice2.isConnected()).thenReturn(false); + when(mDevice1.isConnected()).thenReturn(false); + when(mDevice2.isConnected()).thenReturn(false); List<LocalBluetoothProfile> profiles = new ArrayList<LocalBluetoothProfile>(); profiles.add(mLeAudioProfile); when(mCachedDevice1.getConnectableProfiles()).thenReturn(profiles); @@ -267,8 +278,8 @@ public class CsipDeviceManagerTest { } @Test - public void addMemberDevicesIntoMainDevice_preferredDeviceIsMainAndNoOtherInList_noChangeList() - { + public void + addMemberDevicesIntoMainDevice_preferredDeviceIsMainAndNoOtherInList_noChangeList() { // Condition: The preferredDevice is main and no other main device in top list // Expected Result: return false and the list is no changed CachedBluetoothDevice preferredDevice = mCachedDevice1; @@ -295,7 +306,6 @@ public class CsipDeviceManagerTest { mCachedDevices.add(mCachedDevice2); mCachedDevices.add(mCachedDevice3); - assertThat(mCsipDeviceManager.addMemberDevicesIntoMainDevice(GROUP1, preferredDevice)) .isTrue(); assertThat(mCachedDevices.contains(preferredDevice)).isTrue(); diff --git a/packages/SettingsProvider/src/com/android/providers/settings/DeviceConfigService.java b/packages/SettingsProvider/src/com/android/providers/settings/DeviceConfigService.java index 6bc27160c0a8..6ff36d43f91f 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/DeviceConfigService.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/DeviceConfigService.java @@ -29,6 +29,7 @@ import android.app.ActivityManager; import android.content.AttributionSource; import android.content.IContentProvider; import android.os.Binder; +import android.os.Build; import android.os.Bundle; import android.os.ParcelFileDescriptor; import android.os.Process; @@ -219,14 +220,33 @@ public final class DeviceConfigService extends Binder { return lines; } + private static void log(String msg) { + if (Build.IS_DEBUGGABLE) { + Slog.wtf(TAG, msg); + } else { + Slog.e(TAG, msg); + } + } + public static List<String> listAllAconfigFlags(IContentProvider provider) { HashMap<String, String> allFlags = getAllFlags(provider); HashSet<String> aconfigFlagNames = getAconfigFlagNamesInDeviceConfig(); final ArrayList<String> lines = new ArrayList<>(); - for (String key : aconfigFlagNames) { - String val = allFlags.get(key); + for (String aconfigFlag : aconfigFlagNames) { + String val = allFlags.get(aconfigFlag); if (val != null) { - lines.add(key + "=" + val); + // aconfigFlag is in the form of [namespace]/[package].[flag_name] + int idx = aconfigFlag.indexOf("/"); + if (idx == -1 || idx == aconfigFlag.length() - 1 || idx == 0) { + log("invalid flag entry in device config: " + aconfigFlag); + continue; + } + + // we intend to print out [package].[flag_name] [namespace]=val + String aconfigFlagNameByPackage = aconfigFlag.substring(idx + 1); + String namespace = aconfigFlag.substring(0, idx); + lines.add("flag:" + aconfigFlagNameByPackage + " namespace:" + namespace + + " value:" + val); } } Collections.sort(lines); diff --git a/packages/SystemUI/aconfig/systemui.aconfig b/packages/SystemUI/aconfig/systemui.aconfig index 9700bc6e9b2e..aebdaaba3ce1 100644 --- a/packages/SystemUI/aconfig/systemui.aconfig +++ b/packages/SystemUI/aconfig/systemui.aconfig @@ -38,6 +38,13 @@ flag { } flag { + name: "notifications_hide_on_display_switch" + namespace: "systemui" + description: "Temporary hides notifications when folding/unfolding to reduce unfold latency" + bug: "293824309" +} + +flag { name: "notification_lifetime_extension_refactor" namespace: "systemui" description: "Enables moving notification lifetime extension management from SystemUI to " @@ -69,6 +76,14 @@ flag { } flag { + name: "device_entry_udfps_refactor" + namespace: "systemui" + description: "Refactoring device entry UDFPS icon to use modern architecture and " + "consolidating it with the lock/unlock icon to create a combined DeviceEntryIconView" + bug: "279440316" +} + +flag { name: "visual_interruptions_refactor" namespace: "systemui" description: "Enables the refactored version of the code to decide when notifications " @@ -90,3 +105,10 @@ flag { "keyguard_root_view." bug: "278054201" } + +flag { + name: "qs_new_pipeline" + namespace: "systemui" + description: "Use the new pipeline for Quick Settings. Should have no behavior changes." + bug: "241772429" +} diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerScene.kt b/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerScene.kt index 56970d7e3005..33c084e424f6 100644 --- a/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerScene.kt +++ b/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerScene.kt @@ -25,7 +25,9 @@ import androidx.compose.animation.core.animateFloatAsState import androidx.compose.animation.core.snap import androidx.compose.animation.core.tween import androidx.compose.foundation.Canvas +import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.Image +import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.gestures.detectTapGestures import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box @@ -37,6 +39,7 @@ import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.heightIn import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width @@ -68,7 +71,6 @@ import androidx.compose.ui.input.pointer.pointerInput import androidx.compose.ui.platform.LocalConfiguration import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalLayoutDirection -import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.DpOffset import androidx.compose.ui.unit.LayoutDirection @@ -77,7 +79,9 @@ import androidx.compose.ui.unit.times import com.android.compose.PlatformButton import com.android.compose.animation.scene.ElementKey import com.android.compose.animation.scene.SceneScope +import com.android.compose.modifiers.thenIf import com.android.compose.windowsizeclass.LocalWindowSizeClass +import com.android.systemui.bouncer.shared.model.BouncerActionButtonModel import com.android.systemui.bouncer.ui.viewmodel.AuthMethodBouncerViewModel import com.android.systemui.bouncer.ui.viewmodel.BouncerViewModel import com.android.systemui.bouncer.ui.viewmodel.PasswordBouncerViewModel @@ -139,7 +143,11 @@ private fun SceneScope.BouncerScene( modifier: Modifier = Modifier, ) { val backgroundColor = MaterialTheme.colorScheme.surface - val layout = calculateLayout() + val isSideBySideSupported by viewModel.isSideBySideSupported.collectAsState() + val layout = + calculateLayout( + isSideBySideSupported = isSideBySideSupported, + ) Box(modifier) { Canvas(Modifier.element(Bouncer.Elements.Background).fillMaxSize()) { @@ -154,7 +162,7 @@ private fun SceneScope.BouncerScene( Bouncer( viewModel = viewModel, dialogFactory = dialogFactory, - isUserInputAreaVisible = true, + userInputAreaVisibility = UserInputAreaVisibility.FULL, modifier = childModifier, ) Layout.SIDE_BY_SIDE -> @@ -189,17 +197,17 @@ private fun SceneScope.BouncerScene( private fun Bouncer( viewModel: BouncerViewModel, dialogFactory: BouncerSceneDialogFactory, - isUserInputAreaVisible: Boolean, + userInputAreaVisibility: UserInputAreaVisibility, modifier: Modifier = Modifier, ) { val message: BouncerViewModel.MessageViewModel by viewModel.message.collectAsState() val dialogMessage: String? by viewModel.throttlingDialogMessage.collectAsState() var dialog: Dialog? by remember { mutableStateOf(null) } + val actionButton: BouncerActionButtonModel? by viewModel.actionButton.collectAsState() Column( horizontalAlignment = Alignment.CenterHorizontally, - verticalArrangement = Arrangement.spacedBy(60.dp), - modifier = modifier.padding(start = 32.dp, top = 92.dp, end = 32.dp, bottom = 92.dp) + modifier = modifier.padding(start = 32.dp, top = 92.dp, end = 32.dp, bottom = 0.dp) ) { Crossfade( targetState = message, @@ -213,31 +221,33 @@ private fun Bouncer( ) } + Spacer(Modifier.heightIn(min = 21.dp, max = 48.dp)) + Box(Modifier.weight(1f)) { - if (isUserInputAreaVisible) { - UserInputArea( - viewModel = viewModel, - modifier = Modifier.align(Alignment.Center), - ) - } + UserInputArea( + viewModel = viewModel, + visibility = userInputAreaVisibility, + modifier = Modifier.align(Alignment.Center), + ) } - if (viewModel.isEmergencyButtonVisible) { - Button( - onClick = viewModel::onEmergencyServicesButtonClicked, - colors = - ButtonDefaults.buttonColors( - containerColor = MaterialTheme.colorScheme.tertiaryContainer, - contentColor = MaterialTheme.colorScheme.onTertiaryContainer, - ), - ) { - Text( - text = stringResource(com.android.internal.R.string.lockscreen_emergency_call), - style = MaterialTheme.typography.bodyMedium, + Spacer(Modifier.heightIn(min = 21.dp, max = 48.dp)) + + val actionButtonModifier = Modifier.height(56.dp) + + actionButton.let { actionButtonViewModel -> + if (actionButtonViewModel != null) { + BouncerActionButton( + viewModel = actionButtonViewModel, + modifier = actionButtonModifier, ) + } else { + Spacer(modifier = actionButtonModifier) } } + Spacer(Modifier.height(48.dp)) + if (dialogMessage != null) { if (dialog == null) { dialog = @@ -269,6 +279,7 @@ private fun Bouncer( @Composable private fun UserInputArea( viewModel: BouncerViewModel, + visibility: UserInputAreaVisibility, modifier: Modifier = Modifier, ) { val authMethodViewModel: AuthMethodBouncerViewModel? by @@ -276,25 +287,81 @@ private fun UserInputArea( when (val nonNullViewModel = authMethodViewModel) { is PinBouncerViewModel -> - PinBouncer( - viewModel = nonNullViewModel, - modifier = modifier, - ) + when (visibility) { + UserInputAreaVisibility.FULL -> + PinBouncer( + viewModel = nonNullViewModel, + modifier = modifier, + ) + UserInputAreaVisibility.INPUT_ONLY -> + PinPad( + viewModel = nonNullViewModel, + modifier = modifier, + ) + UserInputAreaVisibility.OUTPUT_ONLY -> + PinInputDisplay( + viewModel = nonNullViewModel, + modifier = modifier, + ) + UserInputAreaVisibility.NONE -> {} + } is PasswordBouncerViewModel -> - PasswordBouncer( - viewModel = nonNullViewModel, - modifier = modifier, - ) + when (visibility) { + UserInputAreaVisibility.FULL, + UserInputAreaVisibility.INPUT_ONLY -> + PasswordBouncer( + viewModel = nonNullViewModel, + modifier = modifier, + ) + else -> {} + } is PatternBouncerViewModel -> - PatternBouncer( - viewModel = nonNullViewModel, - modifier = - Modifier.aspectRatio(1f, matchHeightConstraintsFirst = false).then(modifier) - ) + when (visibility) { + UserInputAreaVisibility.FULL, + UserInputAreaVisibility.INPUT_ONLY -> + PatternBouncer( + viewModel = nonNullViewModel, + modifier = + Modifier.aspectRatio(1f, matchHeightConstraintsFirst = false) + .then(modifier) + ) + else -> {} + } else -> Unit } } +/** + * Renders the action button on the bouncer, which triggers either Return to Call or Emergency Call. + */ +@OptIn(ExperimentalFoundationApi::class) +@Composable +private fun BouncerActionButton( + viewModel: BouncerActionButtonModel, + modifier: Modifier = Modifier, +) { + Button( + onClick = viewModel.onClick, + modifier = + modifier.thenIf(viewModel.onLongClick != null) { + Modifier.combinedClickable( + onClick = viewModel.onClick, + onLongClick = viewModel.onLongClick, + ) + }, + colors = + ButtonDefaults.buttonColors( + containerColor = MaterialTheme.colorScheme.tertiaryContainer, + contentColor = MaterialTheme.colorScheme.onTertiaryContainer, + ), + ) { + Text( + text = viewModel.label, + style = MaterialTheme.typography.bodyMedium, + ) + } +} + /** Renders the UI of the user switcher that's displayed on large screens next to the bouncer UI. */ @Composable private fun UserSwitcher( @@ -435,13 +502,14 @@ private fun Split( Bouncer( viewModel = viewModel, dialogFactory = dialogFactory, - isUserInputAreaVisible = false, + userInputAreaVisibility = UserInputAreaVisibility.OUTPUT_ONLY, modifier = startContentModifier, ) }, endContent = { endContentModifier -> UserInputArea( viewModel = viewModel, + visibility = UserInputAreaVisibility.INPUT_ONLY, modifier = endContentModifier, ) }, @@ -520,6 +588,11 @@ private fun SwappableLayout( /** * Arranges the bouncer contents and user switcher contents side-by-side, supporting a double tap * anywhere on the background to flip their positions. + * + * In situations when [isUserSwitcherVisible] is `false`, one of two things may happen: either the + * UI for the bouncer will be shown on its own, taking up one side, with the other side just being + * empty space or, if that kind of "stand-alone side-by-side" isn't supported, the standard + * rendering of the bouncer will be used instead of the side-by-side layout. */ @Composable private fun SideBySide( @@ -545,7 +618,7 @@ private fun SideBySide( Bouncer( viewModel = viewModel, dialogFactory = dialogFactory, - isUserInputAreaVisible = true, + userInputAreaVisibility = UserInputAreaVisibility.FULL, modifier = endContentModifier, ) }, @@ -574,14 +647,16 @@ private fun Stacked( Bouncer( viewModel = viewModel, dialogFactory = dialogFactory, - isUserInputAreaVisible = true, + userInputAreaVisibility = UserInputAreaVisibility.FULL, modifier = Modifier.fillMaxWidth().weight(1f), ) } } @Composable -private fun calculateLayout(): Layout { +private fun calculateLayout( + isSideBySideSupported: Boolean, +): Layout { val windowSizeClass = LocalWindowSizeClass.current val width = windowSizeClass.widthSizeClass val height = windowSizeClass.heightSizeClass @@ -610,7 +685,7 @@ private fun calculateLayout(): Layout { // Large and tall devices (i.e. tablet in portrait). isTall -> Layout.STACKED // Large and wide/square devices (i.e. tablet in landscape, unfolded). - else -> Layout.SIDE_BY_SIDE + else -> if (isSideBySideSupported) Layout.SIDE_BY_SIDE else Layout.STANDARD } } @@ -630,6 +705,27 @@ private enum class Layout { SPLIT, } +/** Enumerates all supported user-input area visibilities. */ +private enum class UserInputAreaVisibility { + /** + * The entire user input area is shown, including where the user enters input and where it's + * reflected to the user. + */ + FULL, + /** + * Only the area where the user enters the input is shown; the area where the input is reflected + * back to the user is not shown. + */ + INPUT_ONLY, + /** + * Only the area where the input is reflected back to the user is shown; the area where the + * input is entered by the user is not shown. + */ + OUTPUT_ONLY, + /** The entire user input area is hidden. */ + NONE, +} + /** * Calculates an alpha for the user switcher and bouncer such that it's at `1` when the offset of * the two reaches a stopping point but `0` in the middle of the transition. diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/PinBouncer.kt b/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/PinBouncer.kt index 6491b70db99b..5b9ad4de8c84 100644 --- a/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/PinBouncer.kt +++ b/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/PinBouncer.kt @@ -30,7 +30,7 @@ import androidx.compose.foundation.gestures.detectTapGestures import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.heightIn import androidx.compose.foundation.layout.size import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text @@ -55,12 +55,12 @@ import androidx.compose.ui.unit.dp import com.android.compose.animation.Easings import com.android.compose.grid.VerticalGrid import com.android.compose.modifiers.thenIf -import com.android.systemui.res.R import com.android.systemui.bouncer.ui.viewmodel.ActionButtonAppearance import com.android.systemui.bouncer.ui.viewmodel.PinBouncerViewModel import com.android.systemui.common.shared.model.ContentDescription import com.android.systemui.common.shared.model.Icon import com.android.systemui.common.ui.compose.Icon +import com.android.systemui.res.R import kotlin.time.Duration.Companion.milliseconds import kotlin.time.DurationUnit import kotlinx.coroutines.async @@ -87,13 +87,16 @@ internal fun PinBouncer( } ) { PinInputDisplay(viewModel) - Spacer(Modifier.height(100.dp)) + Spacer(Modifier.heightIn(min = 34.dp, max = 48.dp)) PinPad(viewModel) } } @Composable -private fun PinPad(viewModel: PinBouncerViewModel) { +fun PinPad( + viewModel: PinBouncerViewModel, + modifier: Modifier = Modifier, +) { val isInputEnabled: Boolean by viewModel.isInputEnabled.collectAsState() val backspaceButtonAppearance by viewModel.backspaceButtonAppearance.collectAsState() val confirmButtonAppearance by viewModel.confirmButtonAppearance.collectAsState() @@ -112,6 +115,7 @@ private fun PinPad(viewModel: PinBouncerViewModel) { columns = 3, verticalSpacing = 12.dp, horizontalSpacing = 20.dp, + modifier = modifier, ) { repeat(9) { index -> DigitButton( diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/PinInputDisplay.kt b/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/PinInputDisplay.kt index 055ece328fc3..814ea31ad510 100644 --- a/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/PinInputDisplay.kt +++ b/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/PinInputDisplay.kt @@ -51,10 +51,10 @@ import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import com.android.compose.animation.Easings import com.android.keyguard.PinShapeAdapter -import com.android.systemui.res.R import com.android.systemui.bouncer.ui.viewmodel.EntryToken.Digit import com.android.systemui.bouncer.ui.viewmodel.PinBouncerViewModel import com.android.systemui.bouncer.ui.viewmodel.PinInputViewModel +import com.android.systemui.res.R import kotlin.time.Duration.Companion.milliseconds import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.async @@ -65,7 +65,10 @@ import kotlinx.coroutines.joinAll import kotlinx.coroutines.launch @Composable -fun PinInputDisplay(viewModel: PinBouncerViewModel) { +fun PinInputDisplay( + viewModel: PinBouncerViewModel, + modifier: Modifier = Modifier, +) { val hintedPinLength: Int? by viewModel.hintedPinLength.collectAsState() val shapeAnimations = rememberShapeAnimations(viewModel.pinShapes) @@ -81,8 +84,8 @@ fun PinInputDisplay(viewModel: PinBouncerViewModel) { // unifying into a single, more complex implementation. when (val length = hintedPinLength) { - null -> RegularPinInputDisplay(viewModel, shapeAnimations) - else -> HintingPinInputDisplay(viewModel, shapeAnimations, length) + null -> RegularPinInputDisplay(viewModel, shapeAnimations, modifier) + else -> HintingPinInputDisplay(viewModel, shapeAnimations, length, modifier) } } @@ -97,6 +100,7 @@ private fun HintingPinInputDisplay( viewModel: PinBouncerViewModel, shapeAnimations: ShapeAnimations, hintedPinLength: Int, + modifier: Modifier = Modifier, ) { val pinInput: PinInputViewModel by viewModel.pinInput.collectAsState() // [ClearAll] marker pointing at the beginning of the current pin input. @@ -151,7 +155,7 @@ private fun HintingPinInputDisplay( LaunchedEffect(Unit) { playAnimation = true } val dotColor = MaterialTheme.colorScheme.onSurfaceVariant - Row(modifier = Modifier.heightIn(min = shapeAnimations.shapeSize)) { + Row(modifier = modifier.heightIn(min = shapeAnimations.shapeSize)) { pinEntryDrawable.forEachIndexed { index, drawable -> // Key the loop by [index] and [drawable], so that updating a shape drawable at the same // index will play the new animation (by remembering a new [atEnd]). @@ -183,6 +187,7 @@ private fun HintingPinInputDisplay( private fun RegularPinInputDisplay( viewModel: PinBouncerViewModel, shapeAnimations: ShapeAnimations, + modifier: Modifier = Modifier, ) { // Holds all currently [VisiblePinEntry] composables. This cannot be simply derived from // `viewModel.pinInput` at composition, since deleting a pin entry needs to play a remove @@ -226,7 +231,7 @@ private fun RegularPinInputDisplay( } } - pinInputRow.Content() + pinInputRow.Content(modifier) } private class PinInputRow( @@ -235,10 +240,11 @@ private class PinInputRow( private val entries = mutableStateListOf<PinInputEntry>() @Composable - fun Content() { + fun Content(modifier: Modifier) { Row( modifier = - Modifier.heightIn(min = shapeAnimations.shapeSize) + modifier + .heightIn(min = shapeAnimations.shapeSize) // Pins overflowing horizontally should still be shown as scrolling. .wrapContentSize(unbounded = true), ) { diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/CommunalHub.kt b/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/CommunalHub.kt index 17726ab06e0f..142978284cfb 100644 --- a/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/CommunalHub.kt +++ b/packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/CommunalHub.kt @@ -16,15 +16,17 @@ package com.android.systemui.communal.ui.compose -import android.appwidget.AppWidgetHostView import android.os.Bundle import android.util.SizeF +import android.widget.FrameLayout import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width import androidx.compose.foundation.lazy.grid.GridCells import androidx.compose.foundation.lazy.grid.GridItemSpan import androidx.compose.foundation.lazy.grid.LazyHorizontalGrid @@ -44,9 +46,11 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.compose.ui.viewinterop.AndroidView +import com.android.systemui.communal.domain.model.CommunalContentModel import com.android.systemui.communal.shared.model.CommunalContentSize -import com.android.systemui.communal.ui.model.CommunalContentUiModel import com.android.systemui.communal.ui.viewmodel.CommunalViewModel +import com.android.systemui.media.controls.ui.MediaHierarchyManager +import com.android.systemui.media.controls.ui.MediaHostState import com.android.systemui.res.R @Composable @@ -54,8 +58,7 @@ fun CommunalHub( modifier: Modifier = Modifier, viewModel: CommunalViewModel, ) { - val showTutorial by viewModel.showTutorialContent.collectAsState(initial = false) - val widgetContent by viewModel.widgetContent.collectAsState(initial = emptyList()) + val communalContent by viewModel.communalContent.collectAsState(initial = emptyList()) Box( modifier = modifier.fillMaxSize().background(Color.White), ) { @@ -65,31 +68,22 @@ fun CommunalHub( horizontalArrangement = Arrangement.spacedBy(Dimensions.Spacing), verticalArrangement = Arrangement.spacedBy(Dimensions.Spacing), ) { - if (showTutorial) { - items( - count = tutorialContentSizes.size, - // TODO(b/308148193): a more scalable solution for unique ids. - key = { index -> "tutorial_$index" }, - span = { index -> GridItemSpan(tutorialContentSizes[index].span) }, - ) { index -> - TutorialCard( - modifier = - Modifier.size(Dimensions.CardWidth, tutorialContentSizes[index].dp()), - ) - } - } else { - items( - count = widgetContent.size, - key = { index -> widgetContent[index].id }, - span = { index -> GridItemSpan(widgetContent[index].size.span) }, - ) { index -> - val widget = widgetContent[index] - ContentCard( - modifier = Modifier.size(Dimensions.CardWidth, widget.size.dp()), - model = widget, - deleteOnClick = viewModel::onDeleteWidget - ) - } + items( + count = communalContent.size, + key = { index -> communalContent[index].key }, + span = { index -> GridItemSpan(communalContent[index].size.span) }, + ) { index -> + CommunalContent( + modifier = Modifier.fillMaxHeight().width(Dimensions.CardWidth), + model = communalContent[index], + viewModel = viewModel, + deleteOnClick = viewModel::onDeleteWidget, + size = + SizeF( + Dimensions.CardWidth.value, + communalContent[index].size.dp().value, + ), + ) } } IconButton(onClick = viewModel::onOpenWidgetPicker) { @@ -101,15 +95,26 @@ fun CommunalHub( } } -// A placeholder for tutorial content. @Composable -private fun TutorialCard(modifier: Modifier = Modifier) { - Card(modifier = modifier, content = {}) +private fun CommunalContent( + model: CommunalContentModel, + viewModel: CommunalViewModel, + size: SizeF, + deleteOnClick: (id: Int) -> Unit, + modifier: Modifier = Modifier, +) { + when (model) { + is CommunalContentModel.Widget -> WidgetContent(model, size, deleteOnClick, modifier) + is CommunalContentModel.Smartspace -> SmartspaceContent(model, modifier) + is CommunalContentModel.Tutorial -> TutorialContent(modifier) + is CommunalContentModel.Umo -> Umo(viewModel, modifier) + } } @Composable -private fun ContentCard( - model: CommunalContentUiModel, +private fun WidgetContent( + model: CommunalContentModel.Widget, + size: SizeF, deleteOnClick: (id: Int) -> Unit, modifier: Modifier = Modifier, ) { @@ -117,31 +122,70 @@ private fun ContentCard( Box( modifier = modifier.fillMaxSize().background(Color.White), ) { - // TODO(b/308148193): this will be cleaned up soon once the change to convert to - // CommunalContentUiModel interface is merged - val widgetId = getWidgetId(model.id) - widgetId?.let { - IconButton(onClick = { deleteOnClick(it) }) { - Icon( - Icons.Default.Close, - LocalContext.current.getString(R.string.button_to_remove_widget) - ) - } + IconButton(onClick = { deleteOnClick(model.appWidgetId) }) { + Icon( + Icons.Default.Close, + LocalContext.current.getString(R.string.button_to_remove_widget) + ) } AndroidView( modifier = modifier, - factory = { - model.view.apply { - if (this is AppWidgetHostView) { - val size = SizeF(Dimensions.CardWidth.value, model.size.dp().value) - updateAppWidgetSize(Bundle.EMPTY, listOf(size)) - } - } + factory = { context -> + model.appWidgetHost + .createView(context, model.appWidgetId, model.providerInfo) + .apply { updateAppWidgetSize(Bundle.EMPTY, listOf(size)) } }, + // For reusing composition in lazy lists. + onReset = {} ) } } +@Composable +private fun SmartspaceContent( + model: CommunalContentModel.Smartspace, + modifier: Modifier = Modifier, +) { + AndroidView( + modifier = modifier, + factory = { context -> + FrameLayout(context).apply { addView(model.remoteViews.apply(context, this)) } + }, + // For reusing composition in lazy lists. + onReset = {} + ) +} + +@Composable +private fun TutorialContent(modifier: Modifier = Modifier) { + Card(modifier = modifier, content = {}) +} + +@Composable +private fun Umo(viewModel: CommunalViewModel, modifier: Modifier = Modifier) { + AndroidView( + modifier = + modifier + .width(Dimensions.CardWidth) + .height(Dimensions.CardHeightThird) + .padding(Dimensions.Spacing), + factory = { + viewModel.mediaHost.expansion = MediaHostState.EXPANDED + viewModel.mediaHost.showsOnlyActiveMedia = false + viewModel.mediaHost.falsingProtectionNeeded = false + viewModel.mediaHost.init(MediaHierarchyManager.LOCATION_COMMUNAL_HUB) + viewModel.mediaHost.hostView.layoutParams = + FrameLayout.LayoutParams( + FrameLayout.LayoutParams.MATCH_PARENT, + FrameLayout.LayoutParams.MATCH_PARENT + ) + viewModel.mediaHost.hostView + }, + // For reusing composition in lazy lists. + onReset = {}, + ) +} + private fun CommunalContentSize.dp(): Dp { return when (this) { CommunalContentSize.FULL -> Dimensions.CardHeightFull @@ -150,23 +194,6 @@ private fun CommunalContentSize.dp(): Dp { } } -private fun getWidgetId(id: String): Int? { - return if (id.startsWith("widget_")) id.substring("widget_".length).toInt() else null -} - -// Sizes for the tutorial placeholders. -private val tutorialContentSizes = - listOf( - CommunalContentSize.FULL, - CommunalContentSize.THIRD, - CommunalContentSize.THIRD, - CommunalContentSize.THIRD, - CommunalContentSize.HALF, - CommunalContentSize.HALF, - CommunalContentSize.HALF, - CommunalContentSize.HALF, - ) - private object Dimensions { val CardWidth = 464.dp val CardHeightFull = 630.dp diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/Element.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/Element.kt index eb10afc1ee57..aae61bd0f554 100644 --- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/Element.kt +++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/Element.kt @@ -33,7 +33,9 @@ import androidx.compose.ui.composed import androidx.compose.ui.draw.drawWithContent import androidx.compose.ui.geometry.Offset import androidx.compose.ui.geometry.isSpecified +import androidx.compose.ui.geometry.isUnspecified import androidx.compose.ui.geometry.lerp +import androidx.compose.ui.graphics.drawscope.scale import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.layout.IntermediateMeasureScope import androidx.compose.ui.layout.Measurable @@ -85,6 +87,9 @@ internal class Element(val key: ElementKey) { /** The size of this element. */ var size = SizeUnspecified + /** The draw scale of this element. */ + var drawScale = Scale.Default + /** The alpha of this element. */ var alpha = AlphaUnspecified } @@ -110,6 +115,13 @@ internal class Element(val key: ElementKey) { } } +data class Scale(val scaleX: Float, val scaleY: Float, val pivot: Offset = Offset.Unspecified) { + + companion object { + val Default = Scale(1f, 1f, Offset.Unspecified) + } +} + /** The implementation of [SceneScope.element]. */ @OptIn(ExperimentalComposeUiApi::class) internal fun Modifier.element( @@ -160,9 +172,24 @@ internal fun Modifier.element( } } + val drawScale by + remember(layoutImpl, element, scene, sceneValues) { + derivedStateOf { getDrawScale(layoutImpl, element, scene, sceneValues) } + } + drawWithContent { if (shouldDrawElement(layoutImpl, scene, element)) { - drawContent() + if (drawScale == Scale.Default) { + this@drawWithContent.drawContent() + } else { + scale( + drawScale.scaleX, + drawScale.scaleY, + if (drawScale.pivot.isUnspecified) center else drawScale.pivot + ) { + this@drawWithContent.drawContent() + } + } } } .modifierTransformations(layoutImpl, scene, element, sceneValues) @@ -377,6 +404,28 @@ private fun IntermediateMeasureScope.measure( return placeable } +private fun getDrawScale( + layoutImpl: SceneTransitionLayoutImpl, + element: Element, + scene: Scene, + sceneValues: Element.TargetValues +): Scale { + return computeValue( + layoutImpl, + scene, + element, + sceneValue = { Scale.Default }, + transformation = { it.drawScale }, + idleValue = Scale.Default, + currentValue = { Scale.Default }, + lastValue = { + sceneValues.lastValues.drawScale.takeIf { it != Scale.Default } + ?: element.lastSharedValues.drawScale + }, + ::lerp, + ) +} + @OptIn(ExperimentalComposeUiApi::class) private fun IntermediateMeasureScope.place( layoutImpl: SceneTransitionLayoutImpl, diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/GestureHandler.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/GestureHandler.kt index ae7d8f599b91..216608aff0cb 100644 --- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/GestureHandler.kt +++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/GestureHandler.kt @@ -3,11 +3,6 @@ package com.android.compose.animation.scene import androidx.compose.ui.geometry.Offset import androidx.compose.ui.input.nestedscroll.NestedScrollConnection -interface GestureHandler { - val draggable: DraggableHandler - val nestedScroll: NestedScrollHandler -} - interface DraggableHandler { fun onDragStarted(startedPosition: Offset, pointersDown: Int = 1) fun onDelta(pixels: Float) diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/NestedScrollToScene.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/NestedScrollToScene.kt new file mode 100644 index 000000000000..658b45f68c92 --- /dev/null +++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/NestedScrollToScene.kt @@ -0,0 +1,103 @@ +/* + * 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.compose.animation.scene + +import androidx.compose.foundation.gestures.Orientation +import androidx.compose.runtime.DisposableEffect +import androidx.compose.runtime.remember +import androidx.compose.ui.Modifier +import androidx.compose.ui.composed +import androidx.compose.ui.input.nestedscroll.nestedScroll + +/** + * Defines the behavior of the [SceneTransitionLayout] when a scrollable component is scrolled. + * + * By default, scrollable elements within the scene have priority during the user's gesture and are + * not consumed by the [SceneTransitionLayout] unless specifically requested via + * [nestedScrollToScene]. + */ +enum class NestedScrollBehavior(val canStartOnPostFling: Boolean) { + /** + * During scene transitions, scroll events are consumed by the [SceneTransitionLayout] instead + * of the scrollable component. + */ + DuringTransitionBetweenScenes(canStartOnPostFling = false), + + /** + * Overscroll will only be used by the [SceneTransitionLayout] to move to the next scene if the + * gesture begins at the edge of the scrollable component (so that a scroll in that direction + * can no longer be consumed). If the gesture is partially consumed by the scrollable component, + * there will be NO overscroll effect between scenes. + * + * In addition, during scene transitions, scroll events are consumed by the + * [SceneTransitionLayout] instead of the scrollable component. + */ + EdgeNoOverscroll(canStartOnPostFling = false), + + /** + * Overscroll will only be used by the [SceneTransitionLayout] to move to the next scene if the + * gesture begins at the edge of the scrollable component. If the gesture is partially consumed + * by the scrollable component, there will be an overscroll effect between scenes. + * + * In addition, during scene transitions, scroll events are consumed by the + * [SceneTransitionLayout] instead of the scrollable component. + */ + EdgeWithOverscroll(canStartOnPostFling = true), + + /** + * Any overscroll will be used by the [SceneTransitionLayout] to move to the next scene. + * + * In addition, during scene transitions, scroll events are consumed by the + * [SceneTransitionLayout] instead of the scrollable component. + */ + Always(canStartOnPostFling = true), +} + +internal fun Modifier.nestedScrollToScene( + layoutImpl: SceneTransitionLayoutImpl, + orientation: Orientation, + startBehavior: NestedScrollBehavior, + endBehavior: NestedScrollBehavior, +): Modifier = composed { + val connection = + remember(layoutImpl, orientation, startBehavior, endBehavior) { + scenePriorityNestedScrollConnection( + layoutImpl = layoutImpl, + orientation = orientation, + startBehavior = startBehavior, + endBehavior = endBehavior + ) + } + + // Make sure we reset the scroll connection when this modifier is removed from composition + DisposableEffect(connection) { onDispose { connection.reset() } } + + nestedScroll(connection = connection) +} + +private fun scenePriorityNestedScrollConnection( + layoutImpl: SceneTransitionLayoutImpl, + orientation: Orientation, + startBehavior: NestedScrollBehavior, + endBehavior: NestedScrollBehavior, +) = + SceneNestedScrollHandler( + gestureHandler = layoutImpl.gestureHandler(orientation = orientation), + startBehavior = startBehavior, + endBehavior = endBehavior, + ) + .connection diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/Scene.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/Scene.kt index 2e50a71673c1..eb5168bdd3cb 100644 --- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/Scene.kt +++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/Scene.kt @@ -16,6 +16,7 @@ package com.android.compose.animation.scene +import androidx.compose.foundation.gestures.Orientation import androidx.compose.foundation.layout.Box import androidx.compose.runtime.Composable import androidx.compose.runtime.State @@ -68,6 +69,18 @@ private class SceneScopeImpl( return element(layoutImpl, scene, key) } + override fun Modifier.nestedScrollToScene( + orientation: Orientation, + startBehavior: NestedScrollBehavior, + endBehavior: NestedScrollBehavior, + ): Modifier = + nestedScrollToScene( + layoutImpl = layoutImpl, + orientation = orientation, + startBehavior = startBehavior, + endBehavior = endBehavior, + ) + @Composable override fun <T> animateSharedValueAsState( value: T, diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneGestureHandler.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneGestureHandler.kt index 7563e27d8e5d..9a3a0aef30cb 100644 --- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneGestureHandler.kt +++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneGestureHandler.kt @@ -1,3 +1,19 @@ +/* + * 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.compose.animation.scene import android.util.Log @@ -25,10 +41,8 @@ class SceneGestureHandler( private val layoutImpl: SceneTransitionLayoutImpl, internal val orientation: Orientation, private val coroutineScope: CoroutineScope, -) : GestureHandler { - override val draggable: DraggableHandler = SceneDraggableHandler(this) - - override val nestedScroll: SceneNestedScrollHandler = SceneNestedScrollHandler(this) +) { + val draggable: DraggableHandler = SceneDraggableHandler(this) private var transitionState get() = layoutImpl.state.transitionState @@ -521,6 +535,8 @@ private class SceneDraggableHandler( @VisibleForTesting class SceneNestedScrollHandler( private val gestureHandler: SceneGestureHandler, + private val startBehavior: NestedScrollBehavior, + private val endBehavior: NestedScrollBehavior, ) : NestedScrollHandler { override val connection: PriorityNestedScrollConnection = nestedScrollConnection() @@ -543,15 +559,9 @@ class SceneNestedScrollHandler( } private fun nestedScrollConnection(): PriorityNestedScrollConnection { - // The next potential scene is calculated during the canStart - var nextScene: SceneKey? = null - - // This is the scene on which we will have priority during the scroll gesture. - var priorityScene: SceneKey? = null - // If we performed a long gesture before entering priority mode, we would have to avoid // moving on to the next scene. - var gestureStartedOnNestedChild = false + var canChangeScene = false val actionUpOrLeft = Swipe( @@ -573,51 +583,70 @@ class SceneNestedScrollHandler( pointerCount = 1, ) - fun findNextScene(amount: Float): SceneKey? { + fun hasNextScene(amount: Float): Boolean { val fromScene = gestureHandler.currentScene - return when { - amount < 0f -> fromScene.userActions[actionUpOrLeft] - amount > 0f -> fromScene.userActions[actionDownOrRight] - else -> null - } + val nextScene = + when { + amount < 0f -> fromScene.userActions[actionUpOrLeft] + amount > 0f -> fromScene.userActions[actionDownOrRight] + else -> null + } + return nextScene != null } return PriorityNestedScrollConnection( canStartPreScroll = { offsetAvailable, offsetBeforeStart -> - gestureStartedOnNestedChild = offsetBeforeStart != Offset.Zero - - val canInterceptPreScroll = - gestureHandler.isDrivingTransition && - !gestureStartedOnNestedChild && - offsetAvailable.toAmount() != 0f - - if (!canInterceptPreScroll) return@PriorityNestedScrollConnection false - - nextScene = gestureHandler.swipeTransitionToScene.key - - true + canChangeScene = offsetBeforeStart == Offset.Zero + gestureHandler.isDrivingTransition && + canChangeScene && + offsetAvailable.toAmount() != 0f }, canStartPostScroll = { offsetAvailable, offsetBeforeStart -> val amount = offsetAvailable.toAmount() - if (amount == 0f) return@PriorityNestedScrollConnection false - - gestureStartedOnNestedChild = offsetBeforeStart != Offset.Zero - nextScene = findNextScene(amount) - nextScene != null + val behavior: NestedScrollBehavior = + when { + amount > 0 -> startBehavior + amount < 0 -> endBehavior + else -> return@PriorityNestedScrollConnection false + } + + val isZeroOffset = offsetBeforeStart == Offset.Zero + + when (behavior) { + NestedScrollBehavior.DuringTransitionBetweenScenes -> { + canChangeScene = false // unused: added for consistency + false + } + NestedScrollBehavior.EdgeNoOverscroll -> { + canChangeScene = isZeroOffset + isZeroOffset && hasNextScene(amount) + } + NestedScrollBehavior.EdgeWithOverscroll -> { + canChangeScene = isZeroOffset + hasNextScene(amount) + } + NestedScrollBehavior.Always -> { + canChangeScene = true + hasNextScene(amount) + } + } }, canStartPostFling = { velocityAvailable -> val amount = velocityAvailable.toAmount() - if (amount == 0f) return@PriorityNestedScrollConnection false + val behavior: NestedScrollBehavior = + when { + amount > 0 -> startBehavior + amount < 0 -> endBehavior + else -> return@PriorityNestedScrollConnection false + } // We could start an overscroll animation - gestureStartedOnNestedChild = true - nextScene = findNextScene(amount) - nextScene != null + canChangeScene = false + behavior.canStartOnPostFling && hasNextScene(amount) }, - canContinueScroll = { priorityScene == gestureHandler.swipeTransitionToScene.key }, + canContinueScroll = { true }, onStart = { gestureHandler.gestureWithPriority = this - priorityScene = nextScene gestureHandler.onDragStarted(pointersDown = 1, startedPosition = null) }, onScroll = { offsetAvailable -> @@ -638,11 +667,9 @@ class SceneNestedScrollHandler( return@PriorityNestedScrollConnection Velocity.Zero } - priorityScene = null - gestureHandler.onDragStopped( velocity = velocityAvailable.toAmount(), - canChangeScene = !gestureStartedOnNestedChild + canChangeScene = canChangeScene ) // The onDragStopped animation consumes any remaining velocity. diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayout.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayout.kt index 35d1f900b39c..efdfe7a7921e 100644 --- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayout.kt +++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayout.kt @@ -20,7 +20,9 @@ import androidx.compose.foundation.gestures.Orientation import androidx.compose.runtime.Composable import androidx.compose.runtime.State import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Modifier +import androidx.compose.ui.input.nestedscroll.NestedScrollConnection import androidx.compose.ui.platform.LocalDensity /** @@ -52,14 +54,16 @@ fun SceneTransitionLayout( scenes: SceneTransitionLayoutScope.() -> Unit, ) { val density = LocalDensity.current + val coroutineScope = rememberCoroutineScope() val layoutImpl = remember { SceneTransitionLayoutImpl( - onChangeScene, - scenes, - transitions, - state, - density, - edgeDetector, + onChangeScene = onChangeScene, + builder = scenes, + transitions = transitions, + state = state, + density = density, + edgeDetector = edgeDetector, + coroutineScope = coroutineScope, ) } @@ -120,6 +124,20 @@ interface SceneScope { fun Modifier.element(key: ElementKey): Modifier /** + * Adds a [NestedScrollConnection] to intercept scroll events not handled by the scrollable + * component. + * + * @param orientation is used to determine if we handle top/bottom or left/right events. + * @param startBehavior when we should perform the overscroll animation at the top/left. + * @param endBehavior when we should perform the overscroll animation at the bottom/right. + */ + fun Modifier.nestedScrollToScene( + orientation: Orientation, + startBehavior: NestedScrollBehavior = NestedScrollBehavior.EdgeNoOverscroll, + endBehavior: NestedScrollBehavior = NestedScrollBehavior.EdgeNoOverscroll, + ): Modifier + + /** * Create a *movable* element identified by [key]. * * This creates an element that will be automatically shared when present in multiple scenes and diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayoutImpl.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayoutImpl.kt index 6618eb0acc1b..6edd1b6b923d 100644 --- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayoutImpl.kt +++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayoutImpl.kt @@ -37,6 +37,7 @@ import androidx.compose.ui.layout.onSizeChanged import androidx.compose.ui.unit.Density import androidx.compose.ui.unit.IntSize import androidx.compose.ui.util.fastForEach +import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.channels.Channel @VisibleForTesting @@ -47,6 +48,7 @@ class SceneTransitionLayoutImpl( internal val state: SceneTransitionLayoutState, density: Density, edgeDetector: EdgeDetector, + coroutineScope: CoroutineScope, ) { internal val scenes = SnapshotStateMap<SceneKey, Scene>() internal val elements = SnapshotStateMap<ElementKey, Element>() @@ -59,6 +61,9 @@ class SceneTransitionLayoutImpl( internal var density: Density by mutableStateOf(density) internal var edgeDetector by mutableStateOf(edgeDetector) + private val horizontalGestureHandler: SceneGestureHandler + private val verticalGestureHandler: SceneGestureHandler + /** * The size of this layout. Note that this could be [IntSize.Zero] if this layour does not have * any scene configured or right before the first measure pass of the layout. @@ -67,8 +72,30 @@ class SceneTransitionLayoutImpl( init { setScenes(builder) + + // SceneGestureHandler must wait for the scenes to be initialized, in order to access the + // current scene (required for SwipeTransition). + horizontalGestureHandler = + SceneGestureHandler( + layoutImpl = this, + orientation = Orientation.Horizontal, + coroutineScope = coroutineScope, + ) + + verticalGestureHandler = + SceneGestureHandler( + layoutImpl = this, + orientation = Orientation.Vertical, + coroutineScope = coroutineScope, + ) } + internal fun gestureHandler(orientation: Orientation): SceneGestureHandler = + when (orientation) { + Orientation.Vertical -> verticalGestureHandler + Orientation.Horizontal -> horizontalGestureHandler + } + internal fun scene(key: SceneKey): Scene { return scenes[key] ?: error("Scene $key is not configured") } @@ -131,18 +158,13 @@ class SceneTransitionLayoutImpl( @Composable internal fun Content(modifier: Modifier) { - val horizontalGestureHandler = - rememberSceneGestureHandler(layoutImpl = this, Orientation.Horizontal) - val verticalGestureHandler = - rememberSceneGestureHandler(layoutImpl = this, Orientation.Vertical) - Box( modifier // Handle horizontal and vertical swipes on this layout. // Note: order here is important and will give a slight priority to the vertical // swipes. - .swipeToScene(horizontalGestureHandler) - .swipeToScene(verticalGestureHandler) + .swipeToScene(gestureHandler(Orientation.Horizontal)) + .swipeToScene(gestureHandler(Orientation.Vertical)) .onSizeChanged { size = it } ) { LookaheadScope { diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitions.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitions.kt index b163a2a96039..72a2d612d8e3 100644 --- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitions.kt +++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitions.kt @@ -25,6 +25,7 @@ import androidx.compose.ui.util.fastForEach import androidx.compose.ui.util.fastMap import com.android.compose.animation.scene.transformation.AnchoredSize import com.android.compose.animation.scene.transformation.AnchoredTranslate +import com.android.compose.animation.scene.transformation.DrawScale import com.android.compose.animation.scene.transformation.EdgeTranslate import com.android.compose.animation.scene.transformation.Fade import com.android.compose.animation.scene.transformation.ModifierTransformation @@ -126,6 +127,7 @@ data class TransitionSpec( val modifier = mutableListOf<ModifierTransformation>() var offset: PropertyTransformation<Offset>? = null var size: PropertyTransformation<IntSize>? = null + var drawScale: PropertyTransformation<Scale>? = null var alpha: PropertyTransformation<Float>? = null fun <T> onPropertyTransformation( @@ -144,6 +146,10 @@ data class TransitionSpec( throwIfNotNull(size, element, name = "size") size = root as PropertyTransformation<IntSize> } + is DrawScale -> { + throwIfNotNull(drawScale, element, name = "drawScale") + drawScale = root as PropertyTransformation<Scale> + } is Fade -> { throwIfNotNull(alpha, element, name = "alpha") alpha = root as PropertyTransformation<Float> @@ -167,7 +173,7 @@ data class TransitionSpec( } } - return ElementTransformations(shared, modifier, offset, size, alpha) + return ElementTransformations(shared, modifier, offset, size, drawScale, alpha) } private fun throwIfNotNull( @@ -187,5 +193,6 @@ internal class ElementTransformations( val modifier: List<ModifierTransformation>, val offset: PropertyTransformation<Offset>?, val size: PropertyTransformation<IntSize>?, + val drawScale: PropertyTransformation<Scale>?, val alpha: PropertyTransformation<Float>?, ) diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SwipeToScene.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SwipeToScene.kt index 8980df86bb66..2c78dee56bbc 100644 --- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SwipeToScene.kt +++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SwipeToScene.kt @@ -17,12 +17,7 @@ package com.android.compose.animation.scene import androidx.compose.foundation.gestures.Orientation -import androidx.compose.runtime.Composable -import androidx.compose.runtime.DisposableEffect -import androidx.compose.runtime.remember -import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Modifier -import androidx.compose.ui.input.nestedscroll.nestedScroll /** * Configures the swipeable behavior of a [SceneTransitionLayout] depending on the current state. @@ -43,38 +38,18 @@ internal fun Modifier.swipeToScene(gestureHandler: SceneGestureHandler): Modifie } ) - return nestedScroll(connection = gestureHandler.nestedScroll.connection) - .multiPointerDraggable( - orientation = orientation, - enabled = gestureHandler.isDrivingTransition || canSwipe, - // Immediately start the drag if this our [transition] is currently animating to a scene - // (i.e. the user released their input pointer after swiping in this orientation) and - // the user can't swipe in the other direction. - startDragImmediately = - gestureHandler.isDrivingTransition && - gestureHandler.isAnimatingOffset && - !canOppositeSwipe, - onDragStarted = gestureHandler.draggable::onDragStarted, - onDragDelta = gestureHandler.draggable::onDelta, - onDragStopped = gestureHandler.draggable::onDragStopped, - ) -} - -@Composable -internal fun rememberSceneGestureHandler( - layoutImpl: SceneTransitionLayoutImpl, - orientation: Orientation, -): SceneGestureHandler { - val coroutineScope = rememberCoroutineScope() - - val gestureHandler = - remember(layoutImpl, orientation, coroutineScope) { - SceneGestureHandler(layoutImpl, orientation, coroutineScope) - } - - // Make sure we reset the scroll connection when this handler is removed from composition - val connection = gestureHandler.nestedScroll.connection - DisposableEffect(connection) { onDispose { connection.reset() } } - - return gestureHandler + return multiPointerDraggable( + orientation = orientation, + enabled = gestureHandler.isDrivingTransition || canSwipe, + // Immediately start the drag if this our [transition] is currently animating to a scene + // (i.e. the user released their input pointer after swiping in this orientation) and the + // user can't swipe in the other direction. + startDragImmediately = + gestureHandler.isDrivingTransition && + gestureHandler.isAnimatingOffset && + !canOppositeSwipe, + onDragStarted = gestureHandler.draggable::onDragStarted, + onDragDelta = gestureHandler.draggable::onDelta, + onDragStopped = gestureHandler.draggable::onDragStopped, + ) } diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/TransitionDsl.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/TransitionDsl.kt index 7b7ddfa5ec4e..ca66dff5e231 100644 --- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/TransitionDsl.kt +++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/TransitionDsl.kt @@ -17,6 +17,7 @@ package com.android.compose.animation.scene import androidx.compose.animation.core.AnimationSpec +import androidx.compose.ui.geometry.Offset import androidx.compose.ui.graphics.RectangleShape import androidx.compose.ui.graphics.Shape import androidx.compose.ui.unit.Dp @@ -224,12 +225,22 @@ interface PropertyTransformationBuilder { /** * Scale the [width] and [height] of the element(s) matching [matcher]. Note that this scaling * is done during layout, so it will potentially impact the size and position of other elements. - * - * TODO(b/290184746): Also provide a scaleDrawing() to scale an element at drawing time. */ fun scaleSize(matcher: ElementMatcher, width: Float = 1f, height: Float = 1f) /** + * Scale the drawing with [scaleX] and [scaleY] of the element(s) matching [matcher]. Note this + * will only scale the draw inside of an element, therefore it won't impact layout of elements + * around it. + */ + fun scaleDraw( + matcher: ElementMatcher, + scaleX: Float = 1f, + scaleY: Float = 1f, + pivot: Offset = Offset.Unspecified + ) + + /** * Scale the element(s) matching [matcher] so that it grows/shrinks to the same size as [anchor] * . * diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/TransitionDslImpl.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/TransitionDslImpl.kt index d2bfd91842ae..d4909892f492 100644 --- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/TransitionDslImpl.kt +++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/TransitionDslImpl.kt @@ -21,10 +21,12 @@ import androidx.compose.animation.core.DurationBasedAnimationSpec import androidx.compose.animation.core.Spring import androidx.compose.animation.core.VectorConverter import androidx.compose.animation.core.spring +import androidx.compose.ui.geometry.Offset import androidx.compose.ui.graphics.Shape import androidx.compose.ui.unit.Dp import com.android.compose.animation.scene.transformation.AnchoredSize import com.android.compose.animation.scene.transformation.AnchoredTranslate +import com.android.compose.animation.scene.transformation.DrawScale import com.android.compose.animation.scene.transformation.EdgeTranslate import com.android.compose.animation.scene.transformation.Fade import com.android.compose.animation.scene.transformation.PropertyTransformation @@ -178,6 +180,10 @@ internal class TransitionBuilderImpl : TransitionBuilder { transformation(ScaleSize(matcher, width, height)) } + override fun scaleDraw(matcher: ElementMatcher, scaleX: Float, scaleY: Float, pivot: Offset) { + transformation(DrawScale(matcher, scaleX, scaleY, pivot)) + } + override fun anchoredSize(matcher: ElementMatcher, anchor: ElementKey) { transformation(AnchoredSize(matcher, anchor)) } diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/transformation/DrawScale.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/transformation/DrawScale.kt new file mode 100644 index 000000000000..d1cf8ee6ad4a --- /dev/null +++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/transformation/DrawScale.kt @@ -0,0 +1,48 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.compose.animation.scene.transformation + +import androidx.compose.ui.geometry.Offset +import com.android.compose.animation.scene.Element +import com.android.compose.animation.scene.ElementMatcher +import com.android.compose.animation.scene.Scale +import com.android.compose.animation.scene.Scene +import com.android.compose.animation.scene.SceneTransitionLayoutImpl +import com.android.compose.animation.scene.TransitionState + +/** + * Scales the draw size of an element. Note this will only scale the draw inside of an element, + * therefore it won't impact layout of elements around it. + */ +internal class DrawScale( + override val matcher: ElementMatcher, + private val scaleX: Float, + private val scaleY: Float, + private val pivot: Offset = Offset.Unspecified, +) : PropertyTransformation<Scale> { + + override fun transform( + layoutImpl: SceneTransitionLayoutImpl, + scene: Scene, + element: Element, + sceneValues: Element.TargetValues, + transition: TransitionState.Transition, + value: Scale, + ): Scale { + return Scale(scaleX, scaleY, pivot) + } +} diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/transformation/PunchHole.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/transformation/PunchHole.kt index 62d67f03f1d0..984086b7792a 100644 --- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/transformation/PunchHole.kt +++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/transformation/PunchHole.kt @@ -19,9 +19,11 @@ package com.android.compose.animation.scene.transformation import androidx.compose.ui.Modifier import androidx.compose.ui.draw.drawWithContent import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.geometry.Size import androidx.compose.ui.geometry.toRect import androidx.compose.ui.graphics.BlendMode import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.Outline import androidx.compose.ui.graphics.Paint import androidx.compose.ui.graphics.RectangleShape import androidx.compose.ui.graphics.Shape @@ -30,6 +32,7 @@ import androidx.compose.ui.graphics.drawscope.DrawScope import androidx.compose.ui.graphics.drawscope.drawIntoCanvas import androidx.compose.ui.graphics.drawscope.translate import androidx.compose.ui.graphics.withSaveLayer +import androidx.compose.ui.unit.LayoutDirection import androidx.compose.ui.unit.toSize import com.android.compose.animation.scene.Element import com.android.compose.animation.scene.ElementKey @@ -43,6 +46,11 @@ internal class PunchHole( private val bounds: ElementKey, private val shape: Shape, ) : ModifierTransformation { + + private var lastSize: Size = Size.Unspecified + private var lastLayoutDirection: LayoutDirection = LayoutDirection.Ltr + private var lastOutline: Outline? = null + override fun Modifier.transform( layoutImpl: SceneTransitionLayoutImpl, scene: Scene, @@ -59,7 +67,6 @@ internal class PunchHole( drawContent() return@drawWithContent } - drawIntoCanvas { canvas -> canvas.withSaveLayer(size.toRect(), Paint()) { drawContent() @@ -78,13 +85,19 @@ internal class PunchHole( return } - // TODO(b/290184746): Cache outline if the size of bounds does not change. + val outline = + if (boundsSize == lastSize && layoutDirection == lastLayoutDirection) { + lastOutline!! + } else { + val newOutline = shape.createOutline(boundsSize, layoutDirection, this) + lastSize = boundsSize + lastLayoutDirection = layoutDirection + lastOutline = newOutline + newOutline + } + drawOutline( - shape.createOutline( - boundsSize, - layoutDirection, - this, - ), + outline, Color.Black, blendMode = BlendMode.DstOut, ) diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/ui/util/MathHelpers.kt b/packages/SystemUI/compose/scene/src/com/android/compose/ui/util/MathHelpers.kt index eb1a634ff491..13747b72724e 100644 --- a/packages/SystemUI/compose/scene/src/com/android/compose/ui/util/MathHelpers.kt +++ b/packages/SystemUI/compose/scene/src/com/android/compose/ui/util/MathHelpers.kt @@ -17,7 +17,10 @@ package com.android.compose.ui.util +import androidx.compose.ui.geometry.isSpecified +import androidx.compose.ui.geometry.lerp import androidx.compose.ui.unit.IntSize +import com.android.compose.animation.scene.Scale import kotlin.math.roundToInt import kotlin.math.roundToLong @@ -43,3 +46,19 @@ fun lerp(start: IntSize, stop: IntSize, fraction: Float): IntSize { lerp(start.height, stop.height, fraction) ) } + +/** Linearly interpolate between [start] and [stop] with [fraction] fraction between them. */ +fun lerp(start: Scale, stop: Scale, fraction: Float): Scale { + val pivot = + when { + start.pivot.isSpecified && stop.pivot.isSpecified -> + lerp(start.pivot, stop.pivot, fraction) + start.pivot.isSpecified -> start.pivot + else -> stop.pivot + } + return Scale( + lerp(start.scaleX, stop.scaleX, fraction), + lerp(start.scaleY, stop.scaleY, fraction), + pivot + ) +} diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/SceneGestureHandlerTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/SceneGestureHandlerTest.kt index 1eb3392f1374..1e3d01108103 100644 --- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/SceneGestureHandlerTest.kt +++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/SceneGestureHandlerTest.kt @@ -1,3 +1,19 @@ +/* + * 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.compose.animation.scene import androidx.compose.foundation.gestures.Orientation @@ -6,12 +22,17 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.input.nestedscroll.NestedScrollConnection import androidx.compose.ui.input.nestedscroll.NestedScrollSource import androidx.compose.ui.test.ExperimentalTestApi import androidx.compose.ui.unit.Density import androidx.compose.ui.unit.IntSize import androidx.compose.ui.unit.Velocity import androidx.test.ext.junit.runners.AndroidJUnit4 +import com.android.compose.animation.scene.NestedScrollBehavior.Always +import com.android.compose.animation.scene.NestedScrollBehavior.DuringTransitionBetweenScenes +import com.android.compose.animation.scene.NestedScrollBehavior.EdgeNoOverscroll +import com.android.compose.animation.scene.NestedScrollBehavior.EdgeWithOverscroll import com.android.compose.animation.scene.TestScenes.SceneA import com.android.compose.animation.scene.TestScenes.SceneB import com.android.compose.animation.scene.TestScenes.SceneC @@ -57,6 +78,7 @@ class SceneGestureHandlerTest { state = layoutState, density = Density(1f), edgeDetector = DefaultEdgeDetector, + coroutineScope = coroutineScope, ) .also { it.size = IntSize(SCREEN_SIZE.toInt(), SCREEN_SIZE.toInt()) }, orientation = Orientation.Vertical, @@ -65,7 +87,13 @@ class SceneGestureHandlerTest { val draggable = sceneGestureHandler.draggable - val nestedScroll = sceneGestureHandler.nestedScroll.connection + fun nestedScrollConnection(nestedScrollBehavior: NestedScrollBehavior) = + SceneNestedScrollHandler( + gestureHandler = sceneGestureHandler, + startBehavior = nestedScrollBehavior, + endBehavior = nestedScrollBehavior, + ) + .connection val velocityThreshold = sceneGestureHandler.velocityThreshold @@ -194,13 +222,15 @@ class SceneGestureHandlerTest { } @Test - fun onInitialPreScroll_doNotChangeState() = runGestureTest { + fun onInitialPreScroll_EdgeWithOverscroll_doNotChangeState() = runGestureTest { + val nestedScroll = nestedScrollConnection(nestedScrollBehavior = EdgeWithOverscroll) nestedScroll.onPreScroll(available = offsetY10, source = NestedScrollSource.Drag) assertScene(currentScene = SceneA, isIdle = true) } @Test - fun onPostScrollWithNothingAvailable_doNotChangeState() = runGestureTest { + fun onPostScrollWithNothingAvailable_EdgeWithOverscroll_doNotChangeState() = runGestureTest { + val nestedScroll = nestedScrollConnection(nestedScrollBehavior = EdgeWithOverscroll) val consumed = nestedScroll.onPostScroll( consumed = Offset.Zero, @@ -214,6 +244,7 @@ class SceneGestureHandlerTest { @Test fun onPostScrollWithSomethingAvailable_startSceneTransition() = runGestureTest { + val nestedScroll = nestedScrollConnection(nestedScrollBehavior = EdgeWithOverscroll) val consumed = nestedScroll.onPostScroll( consumed = Offset.Zero, @@ -227,14 +258,14 @@ class SceneGestureHandlerTest { assertThat(consumed).isEqualTo(offsetY10) } - private fun TestGestureScope.nestedScrollEvents( + private fun NestedScrollConnection.scroll( available: Offset, consumedByScroll: Offset = Offset.Zero, ) { val consumedByPreScroll = - nestedScroll.onPreScroll(available = available, source = NestedScrollSource.Drag) + onPreScroll(available = available, source = NestedScrollSource.Drag) val consumed = consumedByPreScroll + consumedByScroll - nestedScroll.onPostScroll( + onPostScroll( consumed = consumed, available = available - consumed, source = NestedScrollSource.Drag @@ -243,7 +274,8 @@ class SceneGestureHandlerTest { @Test fun afterSceneTransitionIsStarted_interceptPreScrollEvents() = runGestureTest { - nestedScrollEvents(available = offsetY10) + val nestedScroll = nestedScrollConnection(nestedScrollBehavior = EdgeWithOverscroll) + nestedScroll.scroll(available = offsetY10) assertScene(currentScene = SceneA, isIdle = false) val transition = transitionState as Transition @@ -262,14 +294,15 @@ class SceneGestureHandlerTest { ) assertThat(transition.progress).isEqualTo(0.2f) - nestedScrollEvents(available = offsetY10) + nestedScroll.scroll(available = offsetY10) assertThat(transition.progress).isEqualTo(0.3f) assertScene(currentScene = SceneA, isIdle = false) } @Test fun onPreFling_velocityLowerThanThreshold_remainSameScene() = runGestureTest { - nestedScrollEvents(available = offsetY10) + val nestedScroll = nestedScrollConnection(nestedScrollBehavior = EdgeWithOverscroll) + nestedScroll.scroll(available = offsetY10) assertScene(currentScene = SceneA, isIdle = false) nestedScroll.onPreFling(available = Velocity.Zero) @@ -280,12 +313,28 @@ class SceneGestureHandlerTest { assertScene(currentScene = SceneA, isIdle = true) } - @Test - fun onPreFling_velocityAtLeastThreshold_goToNextScene() = runGestureTest { - nestedScrollEvents(available = offsetY10) - assertScene(currentScene = SceneA, isIdle = false) + private suspend fun TestGestureScope.flingAfterScroll( + use: NestedScrollBehavior, + idleAfterScroll: Boolean, + ) { + val nestedScroll = nestedScrollConnection(nestedScrollBehavior = use) + nestedScroll.scroll(available = offsetY10) + assertScene(currentScene = SceneA, isIdle = idleAfterScroll) nestedScroll.onPreFling(available = Velocity(0f, velocityThreshold)) + } + + @Test + fun flingAfterScroll_DuringTransitionBetweenScenes_doNothing() = runGestureTest { + flingAfterScroll(use = DuringTransitionBetweenScenes, idleAfterScroll = true) + + assertScene(currentScene = SceneA, isIdle = true) + } + + @Test + fun flingAfterScroll_EdgeNoOverscroll_goToNextScene() = runGestureTest { + flingAfterScroll(use = EdgeNoOverscroll, idleAfterScroll = false) + assertScene(currentScene = SceneC, isIdle = false) // wait for the stop animation @@ -294,16 +343,61 @@ class SceneGestureHandlerTest { } @Test - fun scrollStartedInScene_doOverscrollAnimation() = runGestureTest { - // we started the scroll in the scene - nestedScrollEvents(available = offsetY10, consumedByScroll = offsetY10) + fun flingAfterScroll_EdgeWithOverscroll_goToNextScene() = runGestureTest { + flingAfterScroll(use = EdgeWithOverscroll, idleAfterScroll = false) - // now we can intercept the scroll events - nestedScrollEvents(available = offsetY10) - assertScene(currentScene = SceneA, isIdle = false) + assertScene(currentScene = SceneC, isIdle = false) + + // wait for the stop animation + advanceUntilIdle() + assertScene(currentScene = SceneC, isIdle = true) + } + + @Test + fun flingAfterScroll_Always_goToNextScene() = runGestureTest { + flingAfterScroll(use = Always, idleAfterScroll = false) + + assertScene(currentScene = SceneC, isIdle = false) + + // wait for the stop animation + advanceUntilIdle() + assertScene(currentScene = SceneC, isIdle = true) + } + + /** we started the scroll in the scene, then fling with the velocityThreshold */ + private suspend fun TestGestureScope.flingAfterScrollStartedInScene( + use: NestedScrollBehavior, + idleAfterScroll: Boolean, + ) { + val nestedScroll = nestedScrollConnection(nestedScrollBehavior = use) + // scroll consumed in child + nestedScroll.scroll(available = offsetY10, consumedByScroll = offsetY10) + + // scroll offsetY10 is all available for parents + nestedScroll.scroll(available = offsetY10) + assertScene(currentScene = SceneA, isIdle = idleAfterScroll) nestedScroll.onPreFling(available = Velocity(0f, velocityThreshold)) - // should start an overscroll animation (the gesture started in the scene) + } + + @Test + fun flingAfterScrollStartedInScene_DuringTransitionBetweenScenes_doNothing() = runGestureTest { + flingAfterScrollStartedInScene(use = DuringTransitionBetweenScenes, idleAfterScroll = true) + + assertScene(currentScene = SceneA, isIdle = true) + } + + @Test + fun flingAfterScrollStartedInScene_EdgeNoOverscroll_doNothing() = runGestureTest { + flingAfterScrollStartedInScene(use = EdgeNoOverscroll, idleAfterScroll = true) + + assertScene(currentScene = SceneA, isIdle = true) + } + + @Test + fun flingAfterScrollStartedInScene_EdgeWithOverscroll_doOverscrollAnimation() = runGestureTest { + flingAfterScrollStartedInScene(use = EdgeWithOverscroll, idleAfterScroll = false) + assertScene(currentScene = SceneA, isIdle = false) // wait for the stop animation @@ -312,6 +406,17 @@ class SceneGestureHandlerTest { } @Test + fun flingAfterScrollStartedInScene_Always_goToNextScene() = runGestureTest { + flingAfterScrollStartedInScene(use = Always, idleAfterScroll = false) + + assertScene(currentScene = SceneC, isIdle = false) + + // wait for the stop animation + advanceUntilIdle() + assertScene(currentScene = SceneC, isIdle = true) + } + + @Test fun beforeDraggableStart_drag_shouldBeIgnored() = runGestureTest { draggable.onDelta(deltaInPixels10) assertScene(currentScene = SceneA, isIdle = true) @@ -324,12 +429,14 @@ class SceneGestureHandlerTest { @Test fun beforeNestedScrollStart_stop_shouldBeIgnored() = runGestureTest { + val nestedScroll = nestedScrollConnection(nestedScrollBehavior = EdgeWithOverscroll) nestedScroll.onPreFling(Velocity(0f, velocityThreshold)) assertScene(currentScene = SceneA, isIdle = true) } @Test fun startNestedScrollWhileDragging() = runGestureTest { + val nestedScroll = nestedScrollConnection(nestedScrollBehavior = Always) draggable.onDragStarted(Offset.Zero) assertScene(currentScene = SceneA, isIdle = false) val transition = transitionState as Transition @@ -338,17 +445,17 @@ class SceneGestureHandlerTest { assertThat(transition.progress).isEqualTo(0.1f) // now we can intercept the scroll events - nestedScrollEvents(available = offsetY10) + nestedScroll.scroll(available = offsetY10) assertThat(transition.progress).isEqualTo(0.2f) // this should be ignored, we are scrolling now! draggable.onDragStopped(velocityThreshold) assertScene(currentScene = SceneA, isIdle = false) - nestedScrollEvents(available = offsetY10) + nestedScroll.scroll(available = offsetY10) assertThat(transition.progress).isEqualTo(0.3f) - nestedScrollEvents(available = offsetY10) + nestedScroll.scroll(available = offsetY10) assertThat(transition.progress).isEqualTo(0.4f) nestedScroll.onPreFling(available = Velocity(0f, velocityThreshold)) diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/ui/util/MathHelpersTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/ui/util/MathHelpersTest.kt new file mode 100644 index 000000000000..3ec73c793049 --- /dev/null +++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/ui/util/MathHelpersTest.kt @@ -0,0 +1,56 @@ +package com.android.compose.ui.util + +import androidx.compose.ui.geometry.Offset +import androidx.test.ext.junit.runners.AndroidJUnit4 +import com.android.compose.animation.scene.Scale +import com.google.common.truth.Truth.assertThat +import org.junit.Test +import org.junit.runner.RunWith + +@RunWith(AndroidJUnit4::class) +class MathHelpersTest { + + @Test + fun lerpScaleWithPivotUnspecified() { + val scale1 = Scale(1f, 1f) + val scale2 = Scale(5f, 3f) + val expectedScale = Scale(3f, 2f) + + val actualScale = lerp(scale1, scale2, 0.5f) + + assertThat(actualScale).isEqualTo(expectedScale) + } + + @Test + fun lerpScaleWithFirstPivotSpecified() { + val scale1 = Scale(1f, 1f, Offset(1f, 1f)) + val scale2 = Scale(5f, 3f) + val expectedScale = Scale(3f, 2f, Offset(1f, 1f)) + + val actualScale = lerp(scale1, scale2, 0.5f) + + assertThat(actualScale).isEqualTo(expectedScale) + } + + @Test + fun lerpScaleWithSecondPivotSpecified() { + val scale1 = Scale(1f, 1f) + val scale2 = Scale(5f, 3f, Offset(1f, 1f)) + val expectedScale = Scale(3f, 2f, Offset(1f, 1f)) + + val actualScale = lerp(scale1, scale2, 0.5f) + + assertThat(actualScale).isEqualTo(expectedScale) + } + + @Test + fun lerpScaleWithBothPivotsSpecified() { + val scale1 = Scale(1f, 1f, Offset(1f, 1f)) + val scale2 = Scale(5f, 3f, Offset(3f, 5f)) + val expectedScale = Scale(3f, 2f, Offset(2f, 3f)) + + val actualScale = lerp(scale1, scale2, 0.5f) + + assertThat(actualScale).isEqualTo(expectedScale) + } +} diff --git a/packages/SystemUI/log/src/com/android/systemui/log/LogBuffer.kt b/packages/SystemUI/log/src/com/android/systemui/log/LogBuffer.kt index e0051f59469d..4b5e9de2cce7 100644 --- a/packages/SystemUI/log/src/com/android/systemui/log/LogBuffer.kt +++ b/packages/SystemUI/log/src/com/android/systemui/log/LogBuffer.kt @@ -26,9 +26,6 @@ import com.android.systemui.log.core.MessageInitializer import com.android.systemui.log.core.MessagePrinter import com.google.errorprone.annotations.CompileTimeConstant import java.io.PrintWriter -import java.util.concurrent.ArrayBlockingQueue -import java.util.concurrent.BlockingQueue -import kotlin.concurrent.thread import kotlin.math.max /** @@ -51,12 +48,12 @@ import kotlin.math.max * * To enable logcat echoing for an entire buffer: * ``` - * $ adb shell settings put global systemui/buffer/<bufferName> <level> + * $ adb shell cmd statusbar echo -b <bufferName>:<level> * ``` * * To enable logcat echoing for a specific tag: * ``` - * $ adb shell settings put global systemui/tag/<tag> <level> + * $ adb shell cmd statusbar echo -t <tagName>:<level> * ``` * * In either case, `level` can be any of `verbose`, `debug`, `info`, `warn`, `error`, `assert`, or @@ -81,23 +78,6 @@ constructor( ) : MessageBuffer { private val buffer = RingBuffer(maxSize) { LogMessageImpl.create() } - private val echoMessageQueue: BlockingQueue<LogMessage>? = - if (logcatEchoTracker.logInBackgroundThread) ArrayBlockingQueue(10) else null - - init { - if (logcatEchoTracker.logInBackgroundThread && echoMessageQueue != null) { - thread(start = true, name = "LogBuffer-$name", priority = Thread.NORM_PRIORITY) { - try { - while (true) { - echoToDesiredEndpoints(echoMessageQueue.take()) - } - } catch (e: InterruptedException) { - Thread.currentThread().interrupt() - } - } - } - } - var frozen = false private set @@ -204,18 +184,7 @@ constructor( if (!mutable) { return } - // Log in the background thread only if echoMessageQueue exists and has capacity (checking - // capacity avoids the possibility of blocking this thread) - if (echoMessageQueue != null && echoMessageQueue.remainingCapacity() > 0) { - try { - echoMessageQueue.put(message) - } catch (e: InterruptedException) { - // the background thread has been shut down, so just log on this one - echoToDesiredEndpoints(message) - } - } else { - echoToDesiredEndpoints(message) - } + echoToDesiredEndpoints(message) } /** Sends message to echo after determining whether to use Logcat and/or systrace. */ @@ -223,7 +192,18 @@ constructor( val includeInLogcat = logcatEchoTracker.isBufferLoggable(name, message.level) || logcatEchoTracker.isTagLoggable(message.tag, message.level) - echo(message, toLogcat = includeInLogcat, toSystrace = systrace) + + val includeInSystrace = systrace && Trace.isTagEnabled(Trace.TRACE_TAG_APP) + + if (includeInLogcat || includeInSystrace) { + val strMessage = message.messagePrinter(message) + if (includeInLogcat) { + echoToLogcat(message, strMessage) + } + if (includeInSystrace) { + echoToSystrace(message.level, message.tag, strMessage) + } + } } /** Converts the entire buffer to a newline-delimited string */ @@ -263,26 +243,12 @@ constructor( } } - private fun echo(message: LogMessage, toLogcat: Boolean, toSystrace: Boolean) { - if (toLogcat || toSystrace) { - val strMessage = message.messagePrinter(message) - if (toSystrace) { - echoToSystrace(message, strMessage) - } - if (toLogcat) { - echoToLogcat(message, strMessage) - } - } - } - - private fun echoToSystrace(message: LogMessage, strMessage: String) { - if (Trace.isTagEnabled(Trace.TRACE_TAG_APP)) { - Trace.instantForTrack( - Trace.TRACE_TAG_APP, - "UI Events", - "$name - ${message.level.shortString} ${message.tag}: $strMessage" - ) - } + private fun echoToSystrace(level: LogLevel, tag: String, strMessage: String) { + Trace.instantForTrack( + Trace.TRACE_TAG_APP, + "UI Events", + "$name - ${level.shortString} $tag: $strMessage" + ) } private fun echoToLogcat(message: LogMessage, strMessage: String) { diff --git a/packages/SystemUI/log/src/com/android/systemui/log/LogcatEchoTracker.kt b/packages/SystemUI/log/src/com/android/systemui/log/LogcatEchoTracker.kt index ae717df50fce..4410e5dda5eb 100644 --- a/packages/SystemUI/log/src/com/android/systemui/log/LogcatEchoTracker.kt +++ b/packages/SystemUI/log/src/com/android/systemui/log/LogcatEchoTracker.kt @@ -25,7 +25,4 @@ interface LogcatEchoTracker { /** Whether [tagName] should echo messages of [level] or higher to logcat. */ fun isTagLoggable(tagName: String, level: LogLevel): Boolean - - /** Whether to log messages in a background thread. */ - val logInBackgroundThread: Boolean } diff --git a/packages/SystemUI/log/src/com/android/systemui/log/LogcatEchoTrackerDebug.kt b/packages/SystemUI/log/src/com/android/systemui/log/LogcatEchoTrackerDebug.kt deleted file mode 100644 index 9ff48cabc6f4..000000000000 --- a/packages/SystemUI/log/src/com/android/systemui/log/LogcatEchoTrackerDebug.kt +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Copyright (C) 2020 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.systemui.log - -import android.content.ContentResolver -import android.database.ContentObserver -import android.net.Uri -import android.os.Handler -import android.os.Looper -import android.os.Trace -import android.provider.Settings -import com.android.systemui.log.core.LogLevel - -/** - * Version of [LogcatEchoTracker] for debuggable builds - * - * The log level of individual buffers or tags can be controlled via global settings: - * ``` - * # Echo any message to <bufferName> of <level> or higher - * $ adb shell settings put global systemui/buffer/<bufferName> <level> - * - * # Echo any message of <tag> and of <level> or higher - * $ adb shell settings put global systemui/tag/<tag> <level> - * ``` - */ -class LogcatEchoTrackerDebug private constructor(private val contentResolver: ContentResolver) : - LogcatEchoTracker { - private val cachedBufferLevels: MutableMap<String, LogLevel> = mutableMapOf() - private val cachedTagLevels: MutableMap<String, LogLevel> = mutableMapOf() - override val logInBackgroundThread = true - - companion object Factory { - @JvmStatic - fun create(contentResolver: ContentResolver, mainLooper: Looper): LogcatEchoTrackerDebug { - val tracker = LogcatEchoTrackerDebug(contentResolver) - tracker.attach(mainLooper) - return tracker - } - } - - private fun clearCache() { - Trace.beginSection("LogcatEchoTrackerDebug#clearCache") - cachedBufferLevels.clear() - Trace.endSection() - } - - private fun attach(mainLooper: Looper) { - Trace.beginSection("LogcatEchoTrackerDebug#attach") - contentResolver.registerContentObserver( - Settings.Global.getUriFor(BUFFER_PATH), - true, - object : ContentObserver(Handler(mainLooper)) { - override fun onChange(selfChange: Boolean, uri: Uri?) { - super.onChange(selfChange, uri) - clearCache() - } - } - ) - - contentResolver.registerContentObserver( - Settings.Global.getUriFor(TAG_PATH), - true, - object : ContentObserver(Handler(mainLooper)) { - override fun onChange(selfChange: Boolean, uri: Uri?) { - super.onChange(selfChange, uri) - clearCache() - } - } - ) - Trace.endSection() - } - - /** Whether [bufferName] should echo messages of [level] or higher to logcat. */ - @Synchronized - override fun isBufferLoggable(bufferName: String, level: LogLevel): Boolean { - return level.ordinal >= getLogLevel(bufferName, BUFFER_PATH, cachedBufferLevels).ordinal - } - - /** Whether [tagName] should echo messages of [level] or higher to logcat. */ - @Synchronized - override fun isTagLoggable(tagName: String, level: LogLevel): Boolean { - return level >= getLogLevel(tagName, TAG_PATH, cachedTagLevels) - } - - private fun getLogLevel( - name: String, - path: String, - cache: MutableMap<String, LogLevel> - ): LogLevel { - return cache[name] ?: readSetting("$path/$name").also { cache[name] = it } - } - - private fun readSetting(path: String): LogLevel { - return try { - Trace.beginSection("LogcatEchoTrackerDebug#readSetting") - parseProp(Settings.Global.getString(contentResolver, path)) - } catch (_: Settings.SettingNotFoundException) { - DEFAULT_LEVEL - } finally { - Trace.endSection() - } - } - - private fun parseProp(propValue: String?): LogLevel { - return when (propValue?.lowercase()) { - "verbose" -> LogLevel.VERBOSE - "v" -> LogLevel.VERBOSE - "debug" -> LogLevel.DEBUG - "d" -> LogLevel.DEBUG - "info" -> LogLevel.INFO - "i" -> LogLevel.INFO - "warning" -> LogLevel.WARNING - "warn" -> LogLevel.WARNING - "w" -> LogLevel.WARNING - "error" -> LogLevel.ERROR - "e" -> LogLevel.ERROR - "assert" -> LogLevel.WTF - "wtf" -> LogLevel.WTF - else -> DEFAULT_LEVEL - } - } -} - -private val DEFAULT_LEVEL = LogLevel.WARNING -private const val BUFFER_PATH = "systemui/buffer" -private const val TAG_PATH = "systemui/tag" diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/data/repository/EmergencyServicesRepositoryImplTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/data/repository/EmergencyServicesRepositoryImplTest.kt new file mode 100644 index 000000000000..c2117ae5bda4 --- /dev/null +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/data/repository/EmergencyServicesRepositoryImplTest.kt @@ -0,0 +1,81 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.bouncer.data.repository + +import androidx.test.ext.junit.runners.AndroidJUnit4 +import androidx.test.filters.SmallTest +import com.android.internal.R +import com.android.systemui.SysuiTestCase +import com.android.systemui.coroutines.collectLastValue +import com.android.systemui.scene.SceneTestUtils +import com.google.common.truth.Truth.assertThat +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.test.TestScope +import kotlinx.coroutines.test.runCurrent +import kotlinx.coroutines.test.runTest +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith + +@OptIn(ExperimentalCoroutinesApi::class) +@SmallTest +@RunWith(AndroidJUnit4::class) +class EmergencyServicesRepositoryImplTest : SysuiTestCase() { + + private val utils = SceneTestUtils(this) + private val testScope = utils.testScope + + private lateinit var underTest: EmergencyServicesRepository + + @Before + fun setUp() { + overrideResource( + R.bool.config_enable_emergency_call_while_sim_locked, + ENABLE_EMERGENCY_CALL_WHILE_SIM_LOCKED + ) + + underTest = + EmergencyServicesRepository( + resources = context.resources, + applicationScope = testScope.backgroundScope, + configurationRepository = utils.configurationRepository, + ) + } + + @Test + fun enableEmergencyCallWhileSimLocked() = + testScope.runTest { + val enableEmergencyCallWhileSimLocked by + collectLastValue(underTest.enableEmergencyCallWhileSimLocked) + + setEmergencyCallWhileSimLocked(isEnabled = false) + assertThat(enableEmergencyCallWhileSimLocked).isFalse() + + setEmergencyCallWhileSimLocked(isEnabled = true) + assertThat(enableEmergencyCallWhileSimLocked).isTrue() + } + + private fun TestScope.setEmergencyCallWhileSimLocked(isEnabled: Boolean) { + overrideResource(R.bool.config_enable_emergency_call_while_sim_locked, isEnabled) + utils.configurationRepository.onConfigurationChange() + runCurrent() + } + + companion object { + private const val ENABLE_EMERGENCY_CALL_WHILE_SIM_LOCKED = true + } +} diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/domain/interactor/BouncerActionButtonInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/domain/interactor/BouncerActionButtonInteractorTest.kt new file mode 100644 index 000000000000..15d4d2002b2b --- /dev/null +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/bouncer/domain/interactor/BouncerActionButtonInteractorTest.kt @@ -0,0 +1,226 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.bouncer.domain.interactor + +import android.app.ActivityTaskManager +import android.telecom.TelecomManager +import androidx.test.ext.junit.runners.AndroidJUnit4 +import androidx.test.filters.SmallTest +import com.android.internal.R +import com.android.internal.logging.nano.MetricsProto +import com.android.internal.logging.testing.FakeMetricsLogger +import com.android.internal.util.EmergencyAffordanceManager +import com.android.systemui.SysuiTestCase +import com.android.systemui.authentication.data.model.AuthenticationMethodModel +import com.android.systemui.coroutines.collectLastValue +import com.android.systemui.flags.Flags.REFACTOR_GETCURRENTUSER +import com.android.systemui.log.table.TableLogBuffer +import com.android.systemui.scene.SceneTestUtils +import com.android.systemui.statusbar.pipeline.mobile.data.repository.FakeMobileConnectionsRepository +import com.android.systemui.statusbar.pipeline.mobile.util.FakeMobileMappingsProxy +import com.android.systemui.user.domain.interactor.SelectedUserInteractor +import com.android.systemui.util.mockito.whenever +import com.google.common.truth.Truth.assertThat +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.test.TestScope +import kotlinx.coroutines.test.runCurrent +import kotlinx.coroutines.test.runTest +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.ArgumentMatchers.eq +import org.mockito.Mock +import org.mockito.Mockito.never +import org.mockito.Mockito.verify +import org.mockito.MockitoAnnotations + +@OptIn(ExperimentalCoroutinesApi::class) +@SmallTest +@RunWith(AndroidJUnit4::class) +class BouncerActionButtonInteractorTest : SysuiTestCase() { + + @Mock private lateinit var activityTaskManager: ActivityTaskManager + @Mock private lateinit var emergencyAffordanceManager: EmergencyAffordanceManager + @Mock private lateinit var selectedUserInteractor: SelectedUserInteractor + @Mock private lateinit var tableLogger: TableLogBuffer + @Mock private lateinit var telecomManager: TelecomManager + + private lateinit var utils: SceneTestUtils + private lateinit var testScope: TestScope + private lateinit var mobileConnectionsRepository: FakeMobileConnectionsRepository + + private val metricsLogger = FakeMetricsLogger() + private var currentUserId: Int = 0 + private var needsEmergencyAffordance = true + + private lateinit var underTest: BouncerActionButtonInteractor + + @Before + fun setUp() { + utils = SceneTestUtils(this) + testScope = utils.testScope + MockitoAnnotations.initMocks(this) + + overrideResource(R.string.lockscreen_emergency_call, MESSAGE_EMERGENCY_CALL) + overrideResource(R.string.lockscreen_return_to_call, MESSAGE_RETURN_TO_CALL) + overrideResource( + R.bool.config_enable_emergency_call_while_sim_locked, + ENABLE_EMERGENCY_CALL_WHILE_SIM_LOCKED + ) + whenever(selectedUserInteractor.getSelectedUserId()).thenReturn(currentUserId) + whenever(emergencyAffordanceManager.needsEmergencyAffordance()) + .thenReturn(needsEmergencyAffordance) + whenever(telecomManager.isInCall).thenReturn(false) + + utils.featureFlags.set(REFACTOR_GETCURRENTUSER, true) + + mobileConnectionsRepository = + FakeMobileConnectionsRepository(FakeMobileMappingsProxy(), tableLogger) + + utils.telephonyRepository.setHasTelephonyRadio(true) + + underTest = + utils.bouncerActionButtonInteractor( + mobileConnectionsRepository = mobileConnectionsRepository, + activityTaskManager = activityTaskManager, + telecomManager = telecomManager, + emergencyAffordanceManager = emergencyAffordanceManager, + metricsLogger = metricsLogger, + ) + } + + @Test + fun noTelephonyRadio_noButton() = + testScope.runTest { + utils.telephonyRepository.setHasTelephonyRadio(false) + underTest = + utils.bouncerActionButtonInteractor( + mobileConnectionsRepository = mobileConnectionsRepository, + activityTaskManager = activityTaskManager, + telecomManager = telecomManager, + ) + + val actionButton by collectLastValue(underTest.actionButton) + assertThat(actionButton).isNull() + } + + @Test + fun noTelecomManager_noButton() = + testScope.runTest { + underTest = + utils.bouncerActionButtonInteractor( + mobileConnectionsRepository = mobileConnectionsRepository, + activityTaskManager = activityTaskManager, + telecomManager = null, + ) + val actionButton by collectLastValue(underTest.actionButton) + assertThat(actionButton).isNull() + } + + @Test + fun duringCall_returnToCallButton() = + testScope.runTest { + val actionButton by collectLastValue(underTest.actionButton) + utils.telephonyRepository.setIsInCall(true) + + assertThat(actionButton).isNotNull() + assertThat(actionButton?.label).isEqualTo(MESSAGE_RETURN_TO_CALL) + assertThat(actionButton?.onClick).isNotNull() + assertThat(actionButton?.onLongClick).isNull() + + actionButton?.onClick?.invoke() + + assertThat(metricsLogger.logs.size).isEqualTo(1) + assertThat(metricsLogger.logs.element().category) + .isEqualTo(MetricsProto.MetricsEvent.ACTION_EMERGENCY_CALL) + verify(activityTaskManager).stopSystemLockTaskMode() + verify(telecomManager).showInCallScreen(eq(false)) + } + + @Test + fun noCall_secureAuthMethod_emergencyCallButton() = + testScope.runTest { + val actionButton by collectLastValue(underTest.actionButton) + mobileConnectionsRepository.isAnySimSecure.value = false + utils.authenticationRepository.setAuthenticationMethod(AuthenticationMethodModel.Pin) + utils.telephonyRepository.setIsInCall(false) + + assertThat(actionButton).isNotNull() + assertThat(actionButton?.label).isEqualTo(MESSAGE_EMERGENCY_CALL) + assertThat(actionButton?.onClick).isNotNull() + assertThat(actionButton?.onLongClick).isNotNull() + + actionButton?.onClick?.invoke() + + assertThat(metricsLogger.logs.size).isEqualTo(1) + assertThat(metricsLogger.logs.element().category) + .isEqualTo(MetricsProto.MetricsEvent.ACTION_EMERGENCY_CALL) + verify(activityTaskManager).stopSystemLockTaskMode() + + // TODO(b/25189994): Test the activity has been started once we switch to the + // ActivityStarter interface here. + verify(emergencyAffordanceManager, never()).performEmergencyCall() + + actionButton?.onLongClick?.invoke() + verify(emergencyAffordanceManager).performEmergencyCall() + } + + @Test + fun noCall_insecureAuthMethodButSecureSim_emergencyCallButton() = + testScope.runTest { + val actionButton by collectLastValue(underTest.actionButton) + mobileConnectionsRepository.isAnySimSecure.value = true + utils.authenticationRepository.setAuthenticationMethod(AuthenticationMethodModel.None) + utils.telephonyRepository.setIsInCall(false) + + assertThat(actionButton).isNotNull() + assertThat(actionButton?.label).isEqualTo(MESSAGE_EMERGENCY_CALL) + assertThat(actionButton?.onClick).isNotNull() + assertThat(actionButton?.onLongClick).isNotNull() + } + + @Test + fun noCall_insecure_noButton() = + testScope.runTest { + val actionButton by collectLastValue(underTest.actionButton) + mobileConnectionsRepository.isAnySimSecure.value = false + utils.authenticationRepository.setAuthenticationMethod(AuthenticationMethodModel.None) + utils.telephonyRepository.setIsInCall(false) + + assertThat(actionButton).isNull() + } + + @Test + fun noCall_simSecureButEmergencyNotSupported_noButton() = + testScope.runTest { + val actionButton by collectLastValue(underTest.actionButton) + mobileConnectionsRepository.isAnySimSecure.value = true + overrideResource(R.bool.config_enable_emergency_call_while_sim_locked, false) + utils.configurationRepository.onConfigurationChange() + utils.authenticationRepository.setAuthenticationMethod(AuthenticationMethodModel.None) + utils.telephonyRepository.setIsInCall(false) + runCurrent() + + assertThat(actionButton).isNull() + } + + companion object { + private const val MESSAGE_EMERGENCY_CALL = "Emergency" + private const val MESSAGE_RETURN_TO_CALL = "Return to call" + private const val ENABLE_EMERGENCY_CALL_WHILE_SIM_LOCKED = true + } +} diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/data/repository/CommunalRepositoryImplTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/data/repository/CommunalRepositoryImplTest.kt new file mode 100644 index 000000000000..7196de6608cb --- /dev/null +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/data/repository/CommunalRepositoryImplTest.kt @@ -0,0 +1,119 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.communal.data.repository + +import androidx.test.ext.junit.runners.AndroidJUnit4 +import androidx.test.filters.SmallTest +import com.android.systemui.SysuiTestCase +import com.android.systemui.communal.shared.model.CommunalSceneKey +import com.android.systemui.coroutines.collectLastValue +import com.android.systemui.flags.FakeFeatureFlagsClassic +import com.android.systemui.flags.Flags +import com.android.systemui.scene.SceneTestUtils +import com.android.systemui.scene.data.repository.SceneContainerRepository +import com.android.systemui.scene.shared.flag.FakeSceneContainerFlags +import com.android.systemui.scene.shared.model.SceneKey +import com.android.systemui.scene.shared.model.SceneModel +import com.google.common.truth.Truth.assertThat +import kotlinx.coroutines.test.TestScope +import kotlinx.coroutines.test.runTest +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith + +@SmallTest +@RunWith(AndroidJUnit4::class) +class CommunalRepositoryImplTest : SysuiTestCase() { + private lateinit var underTest: CommunalRepositoryImpl + + private lateinit var testScope: TestScope + + private lateinit var featureFlagsClassic: FakeFeatureFlagsClassic + private lateinit var sceneContainerFlags: FakeSceneContainerFlags + private lateinit var sceneContainerRepository: SceneContainerRepository + + @Before + fun setUp() { + testScope = TestScope() + + val sceneTestUtils = SceneTestUtils(this) + sceneContainerFlags = FakeSceneContainerFlags(enabled = false) + sceneContainerRepository = sceneTestUtils.fakeSceneContainerRepository() + featureFlagsClassic = FakeFeatureFlagsClassic() + + featureFlagsClassic.set(Flags.COMMUNAL_SERVICE_ENABLED, true) + + underTest = + CommunalRepositoryImpl( + featureFlagsClassic, + sceneContainerFlags, + sceneContainerRepository, + ) + } + + @Test + fun isCommunalShowing_sceneContainerDisabled_onCommunalScene_true() = + testScope.runTest { + underTest.setDesiredScene(CommunalSceneKey.Communal) + + val isCommunalHubShowing by collectLastValue(underTest.isCommunalHubShowing) + assertThat(isCommunalHubShowing).isTrue() + } + + @Test + fun isCommunalShowing_sceneContainerDisabled_onBlankScene_false() = + testScope.runTest { + underTest.setDesiredScene(CommunalSceneKey.Blank) + + val isCommunalHubShowing by collectLastValue(underTest.isCommunalHubShowing) + assertThat(isCommunalHubShowing).isFalse() + } + + @Test + fun isCommunalShowing_sceneContainerEnabled_onCommunalScene_true() = + testScope.runTest { + sceneContainerFlags = FakeSceneContainerFlags(enabled = true) + underTest = + CommunalRepositoryImpl( + featureFlagsClassic, + sceneContainerFlags, + sceneContainerRepository, + ) + + sceneContainerRepository.setDesiredScene(SceneModel(key = SceneKey.Communal)) + + val isCommunalHubShowing by collectLastValue(underTest.isCommunalHubShowing) + assertThat(isCommunalHubShowing).isTrue() + } + + @Test + fun isCommunalShowing_sceneContainerEnabled_onLockscreenScene_false() = + testScope.runTest { + sceneContainerFlags = FakeSceneContainerFlags(enabled = true) + underTest = + CommunalRepositoryImpl( + featureFlagsClassic, + sceneContainerFlags, + sceneContainerRepository, + ) + + sceneContainerRepository.setDesiredScene(SceneModel(key = SceneKey.Lockscreen)) + + val isCommunalHubShowing by collectLastValue(underTest.isCommunalHubShowing) + assertThat(isCommunalHubShowing).isFalse() + } +} diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/domain/interactor/CommunalTutorialInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/domain/interactor/CommunalTutorialInteractorTest.kt new file mode 100644 index 000000000000..9a3129f2e962 --- /dev/null +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/domain/interactor/CommunalTutorialInteractorTest.kt @@ -0,0 +1,184 @@ +/* + * 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.communal.domain.interactor + +import android.provider.Settings.Secure.HUB_MODE_TUTORIAL_COMPLETED +import android.provider.Settings.Secure.HUB_MODE_TUTORIAL_NOT_STARTED +import android.provider.Settings.Secure.HUB_MODE_TUTORIAL_STARTED +import androidx.test.ext.junit.runners.AndroidJUnit4 +import androidx.test.filters.SmallTest +import com.android.systemui.SysuiTestCase +import com.android.systemui.communal.data.repository.FakeCommunalRepository +import com.android.systemui.communal.data.repository.FakeCommunalTutorialRepository +import com.android.systemui.coroutines.collectLastValue +import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository +import com.android.systemui.settings.UserTracker +import com.android.systemui.util.mockito.mock +import com.android.systemui.util.mockito.whenever +import com.google.common.truth.Truth.assertThat +import kotlinx.coroutines.test.TestScope +import kotlinx.coroutines.test.runTest +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.Mock +import org.mockito.MockitoAnnotations + +@SmallTest +@RunWith(AndroidJUnit4::class) +class CommunalTutorialInteractorTest : SysuiTestCase() { + + @Mock private lateinit var userTracker: UserTracker + + private lateinit var testScope: TestScope + private lateinit var underTest: CommunalTutorialInteractor + private lateinit var keyguardRepository: FakeKeyguardRepository + private lateinit var communalTutorialRepository: FakeCommunalTutorialRepository + private lateinit var communalRepository: FakeCommunalRepository + + @Before + fun setUp() { + MockitoAnnotations.initMocks(this) + + testScope = TestScope() + + val withDeps = CommunalTutorialInteractorFactory.create(testScope) + keyguardRepository = withDeps.keyguardRepository + communalTutorialRepository = withDeps.communalTutorialRepository + communalRepository = withDeps.communalRepository + + underTest = withDeps.communalTutorialInteractor + + whenever(userTracker.userHandle).thenReturn(mock()) + } + + @Test + fun tutorialUnavailable_whenKeyguardNotVisible() = + testScope.runTest { + val isTutorialAvailable by collectLastValue(underTest.isTutorialAvailable) + communalTutorialRepository.setTutorialSettingState(HUB_MODE_TUTORIAL_NOT_STARTED) + keyguardRepository.setKeyguardShowing(false) + assertThat(isTutorialAvailable).isFalse() + } + + @Test + fun tutorialUnavailable_whenTutorialIsCompleted() = + testScope.runTest { + val isTutorialAvailable by collectLastValue(underTest.isTutorialAvailable) + keyguardRepository.setKeyguardShowing(true) + keyguardRepository.setKeyguardOccluded(false) + communalRepository.setIsCommunalHubShowing(false) + communalTutorialRepository.setTutorialSettingState(HUB_MODE_TUTORIAL_COMPLETED) + assertThat(isTutorialAvailable).isFalse() + } + + @Test + fun tutorialAvailable_whenTutorialNotStarted() = + testScope.runTest { + val isTutorialAvailable by collectLastValue(underTest.isTutorialAvailable) + keyguardRepository.setKeyguardShowing(true) + keyguardRepository.setKeyguardOccluded(false) + communalRepository.setIsCommunalHubShowing(false) + communalTutorialRepository.setTutorialSettingState(HUB_MODE_TUTORIAL_NOT_STARTED) + assertThat(isTutorialAvailable).isTrue() + } + + @Test + fun tutorialAvailable_whenTutorialIsStarted() = + testScope.runTest { + val isTutorialAvailable by collectLastValue(underTest.isTutorialAvailable) + keyguardRepository.setKeyguardShowing(true) + keyguardRepository.setKeyguardOccluded(false) + communalRepository.setIsCommunalHubShowing(true) + communalTutorialRepository.setTutorialSettingState(HUB_MODE_TUTORIAL_STARTED) + assertThat(isTutorialAvailable).isTrue() + } + + @Test + fun tutorialState_notStartedAndCommunalSceneShowing_tutorialStarted() = + testScope.runTest { + val tutorialSettingState by + collectLastValue(communalTutorialRepository.tutorialSettingState) + communalTutorialRepository.setTutorialSettingState(HUB_MODE_TUTORIAL_NOT_STARTED) + + communalRepository.setIsCommunalHubShowing(true) + + assertThat(tutorialSettingState).isEqualTo(HUB_MODE_TUTORIAL_STARTED) + } + + @Test + fun tutorialState_startedAndCommunalSceneShowing_stateWillNotUpdate() = + testScope.runTest { + val tutorialSettingState by + collectLastValue(communalTutorialRepository.tutorialSettingState) + communalTutorialRepository.setTutorialSettingState(HUB_MODE_TUTORIAL_STARTED) + + communalRepository.setIsCommunalHubShowing(true) + + assertThat(tutorialSettingState).isEqualTo(HUB_MODE_TUTORIAL_STARTED) + } + + @Test + fun tutorialState_completedAndCommunalSceneShowing_stateWillNotUpdate() = + testScope.runTest { + val tutorialSettingState by + collectLastValue(communalTutorialRepository.tutorialSettingState) + communalTutorialRepository.setTutorialSettingState(HUB_MODE_TUTORIAL_COMPLETED) + + communalRepository.setIsCommunalHubShowing(true) + + assertThat(tutorialSettingState).isEqualTo(HUB_MODE_TUTORIAL_COMPLETED) + } + + @Test + fun tutorialState_notStartedAndCommunalSceneNotShowing_stateWillNotUpdate() = + testScope.runTest { + val tutorialSettingState by + collectLastValue(communalTutorialRepository.tutorialSettingState) + communalTutorialRepository.setTutorialSettingState(HUB_MODE_TUTORIAL_NOT_STARTED) + + communalRepository.setIsCommunalHubShowing(false) + + assertThat(tutorialSettingState).isEqualTo(HUB_MODE_TUTORIAL_NOT_STARTED) + } + + @Test + fun tutorialState_startedAndCommunalSceneNotShowing_tutorialCompleted() = + testScope.runTest { + val tutorialSettingState by + collectLastValue(communalTutorialRepository.tutorialSettingState) + communalRepository.setIsCommunalHubShowing(true) + communalTutorialRepository.setTutorialSettingState(HUB_MODE_TUTORIAL_STARTED) + + communalRepository.setIsCommunalHubShowing(false) + + assertThat(tutorialSettingState).isEqualTo(HUB_MODE_TUTORIAL_COMPLETED) + } + + @Test + fun tutorialState_completedAndCommunalSceneNotShowing_stateWillNotUpdate() = + testScope.runTest { + val tutorialSettingState by + collectLastValue(communalTutorialRepository.tutorialSettingState) + communalRepository.setIsCommunalHubShowing(true) + communalTutorialRepository.setTutorialSettingState(HUB_MODE_TUTORIAL_COMPLETED) + + communalRepository.setIsCommunalHubShowing(false) + + assertThat(tutorialSettingState).isEqualTo(HUB_MODE_TUTORIAL_COMPLETED) + } +} diff --git a/packages/SystemUI/tests/src/com/android/systemui/telephony/data/repository/TelephonyRepositoryImplTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/telephony/data/repository/TelephonyRepositoryImplTest.kt index 020903057eb3..262795fe0eb6 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/telephony/data/repository/TelephonyRepositoryImplTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/telephony/data/repository/TelephonyRepositoryImplTest.kt @@ -17,48 +17,62 @@ package com.android.systemui.telephony.data.repository +import android.telecom.TelecomManager import android.telephony.TelephonyCallback +import android.telephony.TelephonyManager +import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase +import com.android.systemui.coroutines.collectLastValue +import com.android.systemui.scene.SceneTestUtils import com.android.systemui.telephony.TelephonyListenerManager import com.android.systemui.util.mockito.kotlinArgumentCaptor +import com.android.systemui.util.mockito.whenever import com.google.common.truth.Truth.assertThat -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.flow.launchIn -import kotlinx.coroutines.flow.onEach -import kotlinx.coroutines.runBlocking +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.test.runCurrent +import kotlinx.coroutines.test.runTest import org.junit.Before import org.junit.Test import org.junit.runner.RunWith -import org.junit.runners.JUnit4 import org.mockito.Mock import org.mockito.Mockito.verify import org.mockito.MockitoAnnotations +@OptIn(ExperimentalCoroutinesApi::class) @SmallTest -@RunWith(JUnit4::class) +@RunWith(AndroidJUnit4::class) class TelephonyRepositoryImplTest : SysuiTestCase() { @Mock private lateinit var manager: TelephonyListenerManager + @Mock private lateinit var telecomManager: TelecomManager + + private val utils = SceneTestUtils(this) + private val testScope = utils.testScope private lateinit var underTest: TelephonyRepositoryImpl @Before fun setUp() { MockitoAnnotations.initMocks(this) + whenever(telecomManager.isInCall).thenReturn(false) underTest = TelephonyRepositoryImpl( + applicationScope = testScope.backgroundScope, applicationContext = context, + backgroundDispatcher = utils.testDispatcher, manager = manager, + telecomManager = telecomManager, ) } @Test fun callState() = - runBlocking(IMMEDIATE) { - var callState: Int? = null - val job = underTest.callState.onEach { callState = it }.launchIn(this) + testScope.runTest { + val callState by collectLastValue(underTest.callState) + runCurrent() + val listenerCaptor = kotlinArgumentCaptor<TelephonyCallback.CallStateListener>() verify(manager).addCallStateListener(listenerCaptor.capture()) val listener = listenerCaptor.value @@ -71,13 +85,25 @@ class TelephonyRepositoryImplTest : SysuiTestCase() { listener.onCallStateChanged(2) assertThat(callState).isEqualTo(2) + } - job.cancel() + @Test + fun isInCall() = + testScope.runTest { + val isInCall by collectLastValue(underTest.isInCall) + runCurrent() - verify(manager).removeCallStateListener(listener) - } + val listenerCaptor = kotlinArgumentCaptor<TelephonyCallback.CallStateListener>() + verify(manager).addCallStateListener(listenerCaptor.capture()) + val listener = listenerCaptor.value + whenever(telecomManager.isInCall).thenReturn(true) + listener.onCallStateChanged(TelephonyManager.CALL_STATE_OFFHOOK) - companion object { - private val IMMEDIATE = Dispatchers.Main.immediate - } + assertThat(isInCall).isTrue() + + whenever(telecomManager.isInCall).thenReturn(false) + listener.onCallStateChanged(TelephonyManager.CALL_STATE_IDLE) + + assertThat(isInCall).isFalse() + } } diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml index 9a3c6d5b322f..8780f58743cd 100644 --- a/packages/SystemUI/res/values/strings.xml +++ b/packages/SystemUI/res/values/strings.xml @@ -3266,9 +3266,4 @@ <string name="privacy_dialog_active_app_usage_2">In use by <xliff:g id="app_name" example="Gmail">%1$s</xliff:g> (<xliff:g id="attribution_label" example="For Wallet">%2$s</xliff:g> \u2022 <xliff:g id="proxy_label" example="Speech services">%3$s</xliff:g>)</string> <!-- Label for recent app usage of a phone sensor with sub-attribution and proxy label in the privacy dialog [CHAR LIMIT=NONE] --> <string name="privacy_dialog_recent_app_usage_2">Recently used by <xliff:g id="app_name" example="Gmail">%1$s</xliff:g> (<xliff:g id="attribution_label" example="For Wallet">%2$s</xliff:g> \u2022 <xliff:g id="proxy_label" example="Speech services">%3$s</xliff:g>)</string> - - <!-- Content description for keyboard backlight brightness dialog [CHAR LIMIT=NONE] --> - <string name="keyboard_backlight_dialog_title">Keyboard backlight</string> - <!-- Content description for keyboard backlight brightness value [CHAR LIMIT=NONE] --> - <string name="keyboard_backlight_value">Level %1$d of %2$d</string> </resources> diff --git a/packages/SystemUI/shared/src/com/android/systemui/navigationbar/buttons/KeyButtonRipple.java b/packages/SystemUI/shared/src/com/android/systemui/navigationbar/buttons/KeyButtonRipple.java index a14f97128662..f005af3780cb 100644 --- a/packages/SystemUI/shared/src/com/android/systemui/navigationbar/buttons/KeyButtonRipple.java +++ b/packages/SystemUI/shared/src/com/android/systemui/navigationbar/buttons/KeyButtonRipple.java @@ -28,6 +28,7 @@ import android.graphics.PixelFormat; import android.graphics.RecordingCanvas; import android.graphics.drawable.Drawable; import android.os.Handler; +import android.os.Looper; import android.os.Trace; import android.view.RenderNodeAnimator; import android.view.View; @@ -48,6 +49,7 @@ public class KeyButtonRipple extends Drawable { private static final float GLOW_MAX_ALPHA_DARK = 0.1f; private static final int ANIMATION_DURATION_SCALE = 350; private static final int ANIMATION_DURATION_FADE = 450; + private static final int ANIMATION_DURATION_FADE_FAST = 80; private static final Interpolator ALPHA_OUT_INTERPOLATOR = new PathInterpolator(0f, 0f, 0.8f, 1f); @@ -71,6 +73,9 @@ public class KeyButtonRipple extends Drawable { private boolean mLastDark; private boolean mDark; private boolean mDelayTouchFeedback; + private boolean mSpeedUpNextFade; + // When non-null, this runs the next time this ripple is drawn invisibly. + private Runnable mOnInvisibleRunnable; private final Interpolator mInterpolator = new LogInterpolator(); private boolean mSupportHardware; @@ -112,6 +117,18 @@ public class KeyButtonRipple extends Drawable { mDelayTouchFeedback = delay; } + /** Next time we fade out (pressed==false), use a shorter duration than the standard. */ + public void speedUpNextFade() { + mSpeedUpNextFade = true; + } + + /** + * @param onInvisibleRunnable run after we are next drawn invisibly. Only used once. + */ + void setOnInvisibleRunnable(Runnable onInvisibleRunnable) { + mOnInvisibleRunnable = onInvisibleRunnable; + } + public void setType(Type type) { mType = type; } @@ -161,6 +178,11 @@ public class KeyButtonRipple extends Drawable { } else { drawSoftware(canvas); } + + if (!mPressed && !mVisible && mOnInvisibleRunnable != null) { + new Handler(Looper.getMainLooper()).post(mOnInvisibleRunnable); + mOnInvisibleRunnable = null; + } } @Override @@ -270,7 +292,7 @@ public class KeyButtonRipple extends Drawable { return true; } - public void setPressed(boolean pressed) { + private void setPressed(boolean pressed) { if (mDark != mLastDark && pressed) { mRipplePaint = null; mLastDark = mDark; @@ -350,7 +372,7 @@ public class KeyButtonRipple extends Drawable { private void exitSoftware() { ObjectAnimator alphaAnimator = ObjectAnimator.ofFloat(this, "glowAlpha", mGlowAlpha, 0f); alphaAnimator.setInterpolator(ALPHA_OUT_INTERPOLATOR); - alphaAnimator.setDuration(ANIMATION_DURATION_FADE); + alphaAnimator.setDuration(getFadeDuration()); alphaAnimator.addListener(mAnimatorListener); alphaAnimator.start(); mRunningAnimations.add(alphaAnimator); @@ -414,6 +436,12 @@ public class KeyButtonRipple extends Drawable { return Math.min(size, mMaxWidth); } + private int getFadeDuration() { + int duration = mSpeedUpNextFade ? ANIMATION_DURATION_FADE_FAST : ANIMATION_DURATION_FADE; + mSpeedUpNextFade = false; + return duration; + } + private void enterHardware() { endAnimations("enterHardware", true /* cancel */); mVisible = true; @@ -471,7 +499,7 @@ public class KeyButtonRipple extends Drawable { mPaintProp = CanvasProperty.createPaint(getRipplePaint()); final RenderNodeAnimator opacityAnim = new RenderNodeAnimator(mPaintProp, RenderNodeAnimator.PAINT_ALPHA, 0); - opacityAnim.setDuration(ANIMATION_DURATION_FADE); + opacityAnim.setDuration(getFadeDuration()); opacityAnim.setInterpolator(ALPHA_OUT_INTERPOLATOR); opacityAnim.addListener(mAnimatorListener); opacityAnim.addListener(mExitHwTraceAnimator); diff --git a/packages/SystemUI/src/com/android/keyguard/EmergencyButton.java b/packages/SystemUI/src/com/android/keyguard/EmergencyButton.java index c5a06b48e015..8ed675c61edf 100644 --- a/packages/SystemUI/src/com/android/keyguard/EmergencyButton.java +++ b/packages/SystemUI/src/com/android/keyguard/EmergencyButton.java @@ -17,6 +17,7 @@ package com.android.keyguard; import android.content.Context; +import android.text.TextUtils; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; @@ -57,7 +58,10 @@ public class EmergencyButton extends Button { super.onFinishInflate(); if (mEmergencyAffordanceManager.needsEmergencyAffordance()) { setOnLongClickListener(v -> { - if (!mLongPressWasDragged + boolean isEmergencyCallButton = getVisibility() == View.VISIBLE + && TextUtils.equals(getText(), getEmergencyButtonLabel()); + if (isEmergencyCallButton + && !mLongPressWasDragged && mEmergencyAffordanceManager.needsEmergencyAffordance()) { mEmergencyAffordanceManager.performEmergencyCall(); return true; @@ -122,4 +126,8 @@ public class EmergencyButton extends Button { setVisibility(View.GONE); } } + + private String getEmergencyButtonLabel() { + return mContext.getString(com.android.internal.R.string.lockscreen_emergency_call); + } } diff --git a/packages/SystemUI/src/com/android/keyguard/EmergencyButtonController.java b/packages/SystemUI/src/com/android/keyguard/EmergencyButtonController.java index 5de370f22eb8..77338410642c 100644 --- a/packages/SystemUI/src/com/android/keyguard/EmergencyButtonController.java +++ b/packages/SystemUI/src/com/android/keyguard/EmergencyButtonController.java @@ -28,7 +28,6 @@ import android.os.PowerManager; import android.os.SystemClock; import android.os.UserHandle; import android.telecom.TelecomManager; -import android.telephony.TelephonyManager; import android.util.Log; import androidx.annotation.Nullable; @@ -54,21 +53,20 @@ import javax.inject.Inject; /** View Controller for {@link com.android.keyguard.EmergencyButton}. */ @KeyguardBouncerScope public class EmergencyButtonController extends ViewController<EmergencyButton> { - static final String LOG_TAG = "EmergencyButton"; + private static final String TAG = "EmergencyButton"; private final ConfigurationController mConfigurationController; private final KeyguardUpdateMonitor mKeyguardUpdateMonitor; - private final TelephonyManager mTelephonyManager; private final PowerManager mPowerManager; private final ActivityTaskManager mActivityTaskManager; - private ShadeController mShadeController; + private final ShadeController mShadeController; private final TelecomManager mTelecomManager; private final MetricsLogger mMetricsLogger; private EmergencyButtonCallback mEmergencyButtonCallback; - private LockPatternUtils mLockPatternUtils; - private Executor mMainExecutor; - private Executor mBackgroundExecutor; - private SelectedUserInteractor mSelectedUserInteractor; + private final LockPatternUtils mLockPatternUtils; + private final Executor mMainExecutor; + private final Executor mBackgroundExecutor; + private final SelectedUserInteractor mSelectedUserInteractor; private final KeyguardUpdateMonitorCallback mInfoCallback = new KeyguardUpdateMonitorCallback() { @@ -93,17 +91,18 @@ public class EmergencyButtonController extends ViewController<EmergencyButton> { @VisibleForTesting public EmergencyButtonController(@Nullable EmergencyButton view, ConfigurationController configurationController, - KeyguardUpdateMonitor keyguardUpdateMonitor, TelephonyManager telephonyManager, - PowerManager powerManager, ActivityTaskManager activityTaskManager, + KeyguardUpdateMonitor keyguardUpdateMonitor, + PowerManager powerManager, + ActivityTaskManager activityTaskManager, ShadeController shadeController, - @Nullable TelecomManager telecomManager, MetricsLogger metricsLogger, + @Nullable TelecomManager telecomManager, + MetricsLogger metricsLogger, LockPatternUtils lockPatternUtils, Executor mainExecutor, Executor backgroundExecutor, SelectedUserInteractor selectedUserInteractor) { super(view); mConfigurationController = configurationController; mKeyguardUpdateMonitor = keyguardUpdateMonitor; - mTelephonyManager = telephonyManager; mPowerManager = powerManager; mActivityTaskManager = activityTaskManager; mShadeController = shadeController; @@ -183,7 +182,7 @@ public class EmergencyButtonController extends ViewController<EmergencyButton> { } else { mKeyguardUpdateMonitor.reportEmergencyCallAction(true /* bypassHandler */); if (mTelecomManager == null) { - Log.wtf(LOG_TAG, "TelecomManager was null, cannot launch emergency dialer"); + Log.wtf(TAG, "TelecomManager was null, cannot launch emergency dialer"); return; } Intent emergencyDialIntent = @@ -212,10 +211,9 @@ public class EmergencyButtonController extends ViewController<EmergencyButton> { public static class Factory { private final ConfigurationController mConfigurationController; private final KeyguardUpdateMonitor mKeyguardUpdateMonitor; - private final TelephonyManager mTelephonyManager; private final PowerManager mPowerManager; private final ActivityTaskManager mActivityTaskManager; - private ShadeController mShadeController; + private final ShadeController mShadeController; @Nullable private final TelecomManager mTelecomManager; private final MetricsLogger mMetricsLogger; @@ -226,10 +224,12 @@ public class EmergencyButtonController extends ViewController<EmergencyButton> { @Inject public Factory(ConfigurationController configurationController, - KeyguardUpdateMonitor keyguardUpdateMonitor, TelephonyManager telephonyManager, - PowerManager powerManager, ActivityTaskManager activityTaskManager, + KeyguardUpdateMonitor keyguardUpdateMonitor, + PowerManager powerManager, + ActivityTaskManager activityTaskManager, ShadeController shadeController, - @Nullable TelecomManager telecomManager, MetricsLogger metricsLogger, + @Nullable TelecomManager telecomManager, + MetricsLogger metricsLogger, LockPatternUtils lockPatternUtils, @Main Executor mainExecutor, @Background Executor backgroundExecutor, @@ -237,7 +237,6 @@ public class EmergencyButtonController extends ViewController<EmergencyButton> { mConfigurationController = configurationController; mKeyguardUpdateMonitor = keyguardUpdateMonitor; - mTelephonyManager = telephonyManager; mPowerManager = powerManager; mActivityTaskManager = activityTaskManager; mShadeController = shadeController; @@ -252,9 +251,9 @@ public class EmergencyButtonController extends ViewController<EmergencyButton> { /** Construct an {@link com.android.keyguard.EmergencyButtonController}. */ public EmergencyButtonController create(EmergencyButton view) { return new EmergencyButtonController(view, mConfigurationController, - mKeyguardUpdateMonitor, mTelephonyManager, mPowerManager, mActivityTaskManager, - mShadeController, mTelecomManager, mMetricsLogger, mLockPatternUtils, - mMainExecutor, mBackgroundExecutor, mSelectedUserInteractor); + mKeyguardUpdateMonitor, mPowerManager, mActivityTaskManager, mShadeController, + mTelecomManager, mMetricsLogger, mLockPatternUtils, mMainExecutor, + mBackgroundExecutor, mSelectedUserInteractor); } } } diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitchController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitchController.java index 6b8009d6cf9f..32f9c3057753 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitchController.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitchController.java @@ -605,7 +605,6 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS mAodIconsViewModel, mConfigurationState, mConfigurationController, - mDozeParameters, mAodIconViewStore); final DisposableHandle visHandle = KeyguardRootViewBinder.bindAodIconVisibility( nic, diff --git a/packages/SystemUI/src/com/android/systemui/battery/BatteryMeterView.java b/packages/SystemUI/src/com/android/systemui/battery/BatteryMeterView.java index f25f994bf8f3..b1a153aa86aa 100644 --- a/packages/SystemUI/src/com/android/systemui/battery/BatteryMeterView.java +++ b/packages/SystemUI/src/com/android/systemui/battery/BatteryMeterView.java @@ -47,9 +47,9 @@ import androidx.annotation.VisibleForTesting; import com.android.app.animation.Interpolators; import com.android.systemui.DualToneHandler; -import com.android.systemui.res.R; import com.android.systemui.plugins.DarkIconDispatcher; import com.android.systemui.plugins.DarkIconDispatcher.DarkReceiver; +import com.android.systemui.res.R; import com.android.systemui.statusbar.policy.BatteryController; import java.io.PrintWriter; @@ -87,10 +87,7 @@ public class BatteryMeterView extends LinearLayout implements DarkReceiver { private Drawable mUnknownStateDrawable; private DualToneHandler mDualToneHandler; - - private int mNonAdaptedSingleToneColor; - private int mNonAdaptedForegroundColor; - private int mNonAdaptedBackgroundColor; + private boolean mIsStaticColor = false; private BatteryEstimateFetcher mBatteryEstimateFetcher; @@ -447,13 +444,18 @@ public class BatteryMeterView extends LinearLayout implements DarkReceiver { @Override public void onDarkChanged(ArrayList<Rect> areas, float darkIntensity, int tint) { + if (mIsStaticColor) return; float intensity = DarkIconDispatcher.isInAreas(areas, this) ? darkIntensity : 0; - mNonAdaptedSingleToneColor = mDualToneHandler.getSingleColor(intensity); - mNonAdaptedForegroundColor = mDualToneHandler.getFillColor(intensity); - mNonAdaptedBackgroundColor = mDualToneHandler.getBackgroundColor(intensity); + int nonAdaptedSingleToneColor = mDualToneHandler.getSingleColor(intensity); + int nonAdaptedForegroundColor = mDualToneHandler.getFillColor(intensity); + int nonAdaptedBackgroundColor = mDualToneHandler.getBackgroundColor(intensity); + + updateColors(nonAdaptedForegroundColor, nonAdaptedBackgroundColor, + nonAdaptedSingleToneColor); + } - updateColors(mNonAdaptedForegroundColor, mNonAdaptedBackgroundColor, - mNonAdaptedSingleToneColor); + public void setStaticColor(boolean isStaticColor) { + mIsStaticColor = isStaticColor; } /** diff --git a/packages/SystemUI/src/com/android/systemui/bouncer/data/repository/BouncerRepository.kt b/packages/SystemUI/src/com/android/systemui/bouncer/data/repository/BouncerRepository.kt index b2a7607cb323..7265c0c1cb94 100644 --- a/packages/SystemUI/src/com/android/systemui/bouncer/data/repository/BouncerRepository.kt +++ b/packages/SystemUI/src/com/android/systemui/bouncer/data/repository/BouncerRepository.kt @@ -29,14 +29,15 @@ import kotlinx.coroutines.flow.asStateFlow class BouncerRepository @Inject constructor( - flags: FeatureFlagsClassic, + private val flags: FeatureFlagsClassic, ) { private val _message = MutableStateFlow<String?>(null) /** The user-facing message to show in the bouncer. */ val message: StateFlow<String?> = _message.asStateFlow() /** Whether the user switcher should be displayed within the bouncer UI on large screens. */ - val isUserSwitcherVisible: Boolean = flags.isEnabled(Flags.FULL_SCREEN_USER_SWITCHER) + val isUserSwitcherVisible: Boolean + get() = flags.isEnabled(Flags.FULL_SCREEN_USER_SWITCHER) fun setMessage(message: String?) { _message.value = message diff --git a/packages/SystemUI/src/com/android/systemui/bouncer/data/repository/EmergencyServicesRepository.kt b/packages/SystemUI/src/com/android/systemui/bouncer/data/repository/EmergencyServicesRepository.kt new file mode 100644 index 000000000000..bba00506df85 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/bouncer/data/repository/EmergencyServicesRepository.kt @@ -0,0 +1,57 @@ +/* + * 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.bouncer.data.repository + +import android.content.res.Resources +import com.android.internal.R +import com.android.systemui.common.ui.data.repository.ConfigurationRepository +import com.android.systemui.dagger.SysUISingleton +import com.android.systemui.dagger.qualifiers.Application +import com.android.systemui.dagger.qualifiers.Main +import javax.inject.Inject +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.flow.SharingStarted +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.map +import kotlinx.coroutines.flow.stateIn + +/** Encapsulates Emergency Services related state. */ +@SysUISingleton +class EmergencyServicesRepository +@Inject +constructor( + @Application private val applicationScope: CoroutineScope, + @Main private val resources: Resources, + configurationRepository: ConfigurationRepository, +) { + /** + * Whether to enable emergency services calls while the SIM card is locked. This is disabled in + * certain countries that don't support this. + */ + val enableEmergencyCallWhileSimLocked: StateFlow<Boolean> = + configurationRepository.onConfigurationChange + .map { getEnableEmergencyCallWhileSimLocked() } + .stateIn( + scope = applicationScope, + started = SharingStarted.Eagerly, + initialValue = getEnableEmergencyCallWhileSimLocked() + ) + + private fun getEnableEmergencyCallWhileSimLocked(): Boolean { + return resources.getBoolean(R.bool.config_enable_emergency_call_while_sim_locked) + } +} diff --git a/packages/SystemUI/src/com/android/systemui/bouncer/domain/interactor/BouncerActionButtonInteractor.kt b/packages/SystemUI/src/com/android/systemui/bouncer/domain/interactor/BouncerActionButtonInteractor.kt new file mode 100644 index 000000000000..f36ef6630a48 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/bouncer/domain/interactor/BouncerActionButtonInteractor.kt @@ -0,0 +1,181 @@ +/* + * 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.bouncer.domain.interactor + +import android.annotation.SuppressLint +import android.app.ActivityOptions +import android.app.ActivityTaskManager +import android.content.Context +import android.content.Intent +import android.os.UserHandle +import android.telecom.TelecomManager +import com.android.internal.R +import com.android.internal.logging.MetricsLogger +import com.android.internal.logging.nano.MetricsProto.MetricsEvent +import com.android.internal.util.EmergencyAffordanceManager +import com.android.systemui.authentication.domain.interactor.AuthenticationInteractor +import com.android.systemui.bouncer.data.repository.EmergencyServicesRepository +import com.android.systemui.bouncer.shared.model.BouncerActionButtonModel +import com.android.systemui.dagger.SysUISingleton +import com.android.systemui.dagger.qualifiers.Application +import com.android.systemui.dagger.qualifiers.Background +import com.android.systemui.doze.DozeLogger +import com.android.systemui.statusbar.pipeline.mobile.data.repository.MobileConnectionsRepository +import com.android.systemui.telephony.domain.interactor.TelephonyInteractor +import com.android.systemui.user.domain.interactor.SelectedUserInteractor +import com.android.systemui.util.EmergencyDialerConstants +import javax.inject.Inject +import kotlinx.coroutines.CoroutineDispatcher +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.distinctUntilChanged +import kotlinx.coroutines.flow.flowOf +import kotlinx.coroutines.flow.map +import kotlinx.coroutines.flow.merge +import kotlinx.coroutines.withContext + +/** + * Encapsulates business logic and application state for the bouncer action button. The action + * button can support multiple different actions, depending on device state. + */ +@SysUISingleton +class BouncerActionButtonInteractor +@Inject +constructor( + @Application private val applicationContext: Context, + @Background private val backgroundDispatcher: CoroutineDispatcher, + private val repository: EmergencyServicesRepository, + // TODO(b/307977401): Replace with `MobileConnectionsInteractor` when available. + private val mobileConnectionsRepository: MobileConnectionsRepository, + private val telephonyInteractor: TelephonyInteractor, + private val authenticationInteractor: AuthenticationInteractor, + private val selectedUserInteractor: SelectedUserInteractor, + private val activityTaskManager: ActivityTaskManager, + private val telecomManager: TelecomManager?, + private val emergencyAffordanceManager: EmergencyAffordanceManager, + private val emergencyDialerIntentFactory: EmergencyDialerIntentFactory, + private val metricsLogger: MetricsLogger, + private val dozeLogger: DozeLogger, +) { + /** The bouncer action button. If `null`, the button should not be shown. */ + val actionButton: Flow<BouncerActionButtonModel?> = + if (telecomManager == null || !telephonyInteractor.hasTelephonyRadio) { + flowOf(null) + } else { + merge( + telephonyInteractor.isInCall.asUnitFlow, + mobileConnectionsRepository.isAnySimSecure.asUnitFlow, + authenticationInteractor.authenticationMethod.asUnitFlow, + repository.enableEmergencyCallWhileSimLocked.asUnitFlow, + ) + .map { + when { + isReturnToCallButton() -> returnToCallButtonModel + isEmergencyCallButton() -> emergencyCallButtonModel + else -> null // Do not show the button. + } + } + .distinctUntilChanged() + } + + private val returnToCallButtonModel: BouncerActionButtonModel by lazy { + BouncerActionButtonModel( + label = applicationContext.getString(R.string.lockscreen_return_to_call), + onClick = { + prepareToPerformAction() + returnToCall() + }, + onLongClick = null + ) + } + + private val emergencyCallButtonModel: BouncerActionButtonModel by lazy { + BouncerActionButtonModel( + label = applicationContext.getString(R.string.lockscreen_emergency_call), + onClick = { + prepareToPerformAction() + dozeLogger.logEmergencyCall() + startEmergencyDialerActivity() + }, + // TODO(b/308001302): The long click detector doesn't work properly, investigate. + onLongClick = { + if (emergencyAffordanceManager.needsEmergencyAffordance()) { + prepareToPerformAction() + + // TODO(b/298026988): Check that !longPressWasDragged before invoking. + emergencyAffordanceManager.performEmergencyCall() + } + } + ) + } + + private fun startEmergencyDialerActivity() { + emergencyDialerIntentFactory()?.apply { + flags = + Intent.FLAG_ACTIVITY_NEW_TASK or + Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS or + Intent.FLAG_ACTIVITY_CLEAR_TOP + + putExtra( + EmergencyDialerConstants.EXTRA_ENTRY_TYPE, + EmergencyDialerConstants.ENTRY_TYPE_LOCKSCREEN_BUTTON, + ) + + // TODO(b/25189994): Use the ActivityStarter interface instead. + applicationContext.startActivityAsUser( + this, + ActivityOptions.makeCustomAnimation(applicationContext, 0, 0).toBundle(), + UserHandle(selectedUserInteractor.getSelectedUserId()) + ) + } + } + + private fun isReturnToCallButton() = telephonyInteractor.isInCall.value + + private suspend fun isEmergencyCallButton(): Boolean { + return if (mobileConnectionsRepository.getIsAnySimSecure()) { + // Some countries can't handle emergency calls while SIM is locked. + repository.enableEmergencyCallWhileSimLocked.value + } else { + // Only show if there is a secure screen (password/pin/pattern/SIM pin/SIM puk). + withContext(backgroundDispatcher) { + authenticationInteractor.getAuthenticationMethod().isSecure + } + } + } + + private fun prepareToPerformAction() { + // TODO(b/308001302): Trigger occlusion and resetting bouncer state. + metricsLogger.action(MetricsEvent.ACTION_EMERGENCY_CALL) + activityTaskManager.stopSystemLockTaskMode() + } + + @SuppressLint("MissingPermission") + private fun returnToCall() { + telecomManager?.showInCallScreen(/* showDialpad = */ false) + } + + private val <T> Flow<T>.asUnitFlow: Flow<Unit> + get() = map {} +} + +/** + * Creates an intent to launch the Emergency Services dialer. If no [TelecomManager] is present, + * returns `null`. + */ +interface EmergencyDialerIntentFactory { + operator fun invoke(): Intent? +} diff --git a/packages/SystemUI/src/com/android/systemui/bouncer/domain/interactor/BouncerInteractor.kt b/packages/SystemUI/src/com/android/systemui/bouncer/domain/interactor/BouncerInteractor.kt index 4ce1422b91e8..b9a913ea866f 100644 --- a/packages/SystemUI/src/com/android/systemui/bouncer/domain/interactor/BouncerInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/bouncer/domain/interactor/BouncerInteractor.kt @@ -97,7 +97,8 @@ constructor( val isPatternVisible: StateFlow<Boolean> = authenticationInteractor.isPatternVisible /** Whether the user switcher should be displayed within the bouncer UI on large screens. */ - val isUserSwitcherVisible: Boolean = repository.isUserSwitcherVisible + val isUserSwitcherVisible: Boolean + get() = repository.isUserSwitcherVisible init { if (flags.isEnabled()) { diff --git a/packages/SystemUI/src/com/android/systemui/bouncer/domain/interactor/BouncerInteractorModule.kt b/packages/SystemUI/src/com/android/systemui/bouncer/domain/interactor/BouncerInteractorModule.kt new file mode 100644 index 000000000000..e398c930e86e --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/bouncer/domain/interactor/BouncerInteractorModule.kt @@ -0,0 +1,50 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.bouncer.domain.interactor + +import android.content.Context +import android.content.Intent +import android.telecom.TelecomManager +import com.android.internal.util.EmergencyAffordanceManager +import com.android.systemui.dagger.SysUISingleton +import com.android.systemui.dagger.qualifiers.Application +import dagger.Module +import dagger.Provides + +/** Module for providing interactor-related objects for the bouncer. */ +@Module +object BouncerInteractorModule { + + @Provides + fun emergencyDialerIntentFactory( + telecomManager: TelecomManager? + ): EmergencyDialerIntentFactory { + return object : EmergencyDialerIntentFactory { + override fun invoke(): Intent? { + return telecomManager?.createLaunchEmergencyDialerIntent(/* number = */ null) + } + } + } + + @Provides + @SysUISingleton + fun emergencyAffordanceManager( + @Application applicationContext: Context, + ): EmergencyAffordanceManager { + return EmergencyAffordanceManager(applicationContext) + } +} diff --git a/packages/SystemUI/src/com/android/systemui/bouncer/shared/model/BouncerActionButtonModel.kt b/packages/SystemUI/src/com/android/systemui/bouncer/shared/model/BouncerActionButtonModel.kt new file mode 100644 index 000000000000..7f1730cb2abd --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/bouncer/shared/model/BouncerActionButtonModel.kt @@ -0,0 +1,32 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.bouncer.shared.model + +/** Models the action button on the bouncer. */ +data class BouncerActionButtonModel( + /** The text to be shown on the button. */ + val label: String, + + /** The action to perform when the user clicks on the button. */ + val onClick: () -> Unit, + + /** + * The action to perform when the user long-clicks on the button. When not provided, long-clicks + * will be treated as regular clicks. + */ + val onLongClick: (() -> Unit)? = null, +) diff --git a/packages/SystemUI/src/com/android/systemui/bouncer/ui/viewmodel/BouncerViewModel.kt b/packages/SystemUI/src/com/android/systemui/bouncer/ui/viewmodel/BouncerViewModel.kt index ef0609a99e05..73d15f0f369b 100644 --- a/packages/SystemUI/src/com/android/systemui/bouncer/ui/viewmodel/BouncerViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/bouncer/ui/viewmodel/BouncerViewModel.kt @@ -21,14 +21,15 @@ import android.graphics.Bitmap import androidx.core.graphics.drawable.toBitmap import com.android.systemui.authentication.domain.interactor.AuthenticationInteractor import com.android.systemui.authentication.domain.model.AuthenticationMethodModel +import com.android.systemui.bouncer.domain.interactor.BouncerActionButtonInteractor import com.android.systemui.bouncer.domain.interactor.BouncerInteractor +import com.android.systemui.bouncer.shared.model.BouncerActionButtonModel import com.android.systemui.common.shared.model.Icon import com.android.systemui.common.shared.model.Text import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.dagger.qualifiers.Main import com.android.systemui.scene.shared.flag.SceneContainerFlags -import com.android.systemui.telephony.domain.interactor.TelephonyInteractor import com.android.systemui.user.ui.viewmodel.UserActionViewModel import com.android.systemui.user.ui.viewmodel.UserSwitcherViewModel import com.android.systemui.user.ui.viewmodel.UserViewModel @@ -59,10 +60,10 @@ class BouncerViewModel( private val bouncerInteractor: BouncerInteractor, authenticationInteractor: AuthenticationInteractor, flags: SceneContainerFlags, - private val telephonyInteractor: TelephonyInteractor, selectedUser: Flow<UserViewModel>, users: Flow<List<UserViewModel>>, userSwitcherMenu: Flow<List<UserActionViewModel>>, + actionButtonInteractor: BouncerActionButtonInteractor, ) { val selectedUserImage: StateFlow<Bitmap?> = selectedUser @@ -99,7 +100,8 @@ class BouncerViewModel( initialValue = emptyList(), ) - val isUserSwitcherVisible: Boolean = bouncerInteractor.isUserSwitcherVisible + val isUserSwitcherVisible: Boolean + get() = bouncerInteractor.isUserSwitcherVisible private val isInputEnabled: StateFlow<Boolean> = bouncerInteractor.isThrottled @@ -150,8 +152,33 @@ class BouncerViewModel( ), ) - val isEmergencyButtonVisible: Boolean - get() = telephonyInteractor.hasTelephonyRadio + /** + * The bouncer action button (Return to Call / Emergency Call). If `null`, the button should not + * be shown. + */ + val actionButton: StateFlow<BouncerActionButtonModel?> = + actionButtonInteractor.actionButton.stateIn( + scope = applicationScope, + started = SharingStarted.WhileSubscribed(), + initialValue = null + ) + + /** + * Whether the "side-by-side" layout is supported. + * + * When presented on its own, without a user switcher (e.g. not on communal devices like + * tablets, for example), some authentication method UIs don't do well if they're shown in the + * side-by-side layout; these need to be shown with the standard layout so they can take up as + * much width as possible. + */ + val isSideBySideSupported: StateFlow<Boolean> = + authMethodViewModel + .map { authMethod -> isSideBySideSupported(authMethod) } + .stateIn( + scope = applicationScope, + started = SharingStarted.WhileSubscribed(), + initialValue = isSideBySideSupported(authMethodViewModel.value), + ) init { if (flags.isEnabled()) { @@ -176,16 +203,15 @@ class BouncerViewModel( } } - /** Notifies that the emergency services button was clicked. */ - fun onEmergencyServicesButtonClicked() { - // TODO(b/280877228): implement this - } - /** Notifies that a throttling dialog has been dismissed by the user. */ fun onThrottlingDialogDismissed() { _throttlingDialogMessage.value = null } + private fun isSideBySideSupported(authMethod: AuthMethodBouncerViewModel?): Boolean { + return isUserSwitcherVisible || authMethod !is PasswordBouncerViewModel + } + private fun toMessageViewModel( message: String?, isThrottled: Boolean, @@ -271,8 +297,8 @@ object BouncerViewModelModule { bouncerInteractor: BouncerInteractor, authenticationInteractor: AuthenticationInteractor, flags: SceneContainerFlags, - telephonyInteractor: TelephonyInteractor, userSwitcherViewModel: UserSwitcherViewModel, + actionButtonInteractor: BouncerActionButtonInteractor, ): BouncerViewModel { return BouncerViewModel( applicationContext = applicationContext, @@ -281,10 +307,10 @@ object BouncerViewModelModule { bouncerInteractor = bouncerInteractor, authenticationInteractor = authenticationInteractor, flags = flags, - telephonyInteractor = telephonyInteractor, selectedUser = userSwitcherViewModel.selectedUser, users = userSwitcherViewModel.users, userSwitcherMenu = userSwitcherViewModel.menu, + actionButtonInteractor = actionButtonInteractor, ) } } diff --git a/packages/SystemUI/src/com/android/systemui/common/CommonModule.kt b/packages/SystemUI/src/com/android/systemui/common/CommonModule.kt new file mode 100644 index 000000000000..5e6caf0d0317 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/common/CommonModule.kt @@ -0,0 +1,30 @@ +/* + * 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.common + +import com.android.systemui.common.domain.interactor.ConfigurationInteractor +import com.android.systemui.common.domain.interactor.ConfigurationInteractorImpl +import com.android.systemui.common.ui.data.repository.ConfigurationRepository +import com.android.systemui.common.ui.data.repository.ConfigurationRepositoryImpl +import dagger.Binds +import dagger.Module + +@Module +abstract class CommonModule { + @Binds abstract fun bindRepository(impl: ConfigurationRepositoryImpl): ConfigurationRepository + + @Binds abstract fun bindInteractor(impl: ConfigurationInteractorImpl): ConfigurationInteractor +} diff --git a/packages/SystemUI/src/com/android/systemui/common/domain/interactor/ConfigurationInteractor.kt b/packages/SystemUI/src/com/android/systemui/common/domain/interactor/ConfigurationInteractor.kt new file mode 100644 index 000000000000..89053d1d05fa --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/common/domain/interactor/ConfigurationInteractor.kt @@ -0,0 +1,57 @@ +/* + * 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.common.domain.interactor + +import android.content.res.Configuration +import android.graphics.Rect +import android.view.Surface +import com.android.systemui.common.ui.data.repository.ConfigurationRepository +import javax.inject.Inject +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.distinctUntilChanged +import kotlinx.coroutines.flow.map + +interface ConfigurationInteractor { + /** + * Returns screen size adjusted to rotation, so returned screen sizes are stable across all + * rotations, could be useful if you need to react to screen resize (e.g. fold/unfold on + * foldable devices) + */ + val naturalMaxBounds: Flow<Rect> +} + +class ConfigurationInteractorImpl +@Inject +constructor(private val repository: ConfigurationRepository) : ConfigurationInteractor { + + override val naturalMaxBounds: Flow<Rect> + get() = repository.configurationValues.map { it.naturalScreenBounds }.distinctUntilChanged() + + /** + * Returns screen size adjusted to rotation, so returned screen size is stable across all + * rotations + */ + private val Configuration.naturalScreenBounds: Rect + get() { + val rotation = windowConfiguration.displayRotation + val maxBounds = windowConfiguration.maxBounds + return if (rotation == Surface.ROTATION_0 || rotation == Surface.ROTATION_180) { + Rect(0, 0, maxBounds.width(), maxBounds.height()) + } else { + Rect(0, 0, maxBounds.height(), maxBounds.width()) + } + } +} diff --git a/packages/SystemUI/src/com/android/systemui/common/ui/data/CommonUiDataLayerModule.kt b/packages/SystemUI/src/com/android/systemui/common/ui/data/CommonUiDataLayerModule.kt deleted file mode 100644 index b0e69317e0ee..000000000000 --- a/packages/SystemUI/src/com/android/systemui/common/ui/data/CommonUiDataLayerModule.kt +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright (C) 2023 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the - * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the specific language governing - * permissions and limitations under the License. - * - */ - -package com.android.systemui.common.ui.data - -import com.android.systemui.common.ui.data.repository.ConfigurationRepositoryModule -import dagger.Module - -@Module(includes = [ConfigurationRepositoryModule::class]) object CommonUiDataLayerModule diff --git a/packages/SystemUI/src/com/android/systemui/common/ui/data/repository/ConfigurationRepository.kt b/packages/SystemUI/src/com/android/systemui/common/ui/data/repository/ConfigurationRepository.kt index e44927432719..2052c70e740d 100644 --- a/packages/SystemUI/src/com/android/systemui/common/ui/data/repository/ConfigurationRepository.kt +++ b/packages/SystemUI/src/com/android/systemui/common/ui/data/repository/ConfigurationRepository.kt @@ -22,7 +22,7 @@ import android.content.res.Configuration import android.view.DisplayInfo import androidx.annotation.DimenRes import com.android.systemui.common.coroutine.ChannelExt.trySendWithFailureLogging -import com.android.systemui.common.coroutine.ConflatedCallbackFlow +import com.android.systemui.common.coroutine.ConflatedCallbackFlow.conflatedCallbackFlow import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.statusbar.policy.ConfigurationController @@ -44,11 +44,16 @@ import kotlinx.coroutines.flow.stateIn interface ConfigurationRepository { /** Called whenever ui mode, theme or configuration has changed. */ val onAnyConfigurationChange: Flow<Unit> + + /** Called whenever the configuration has changed. */ + val onConfigurationChange: Flow<Unit> + val scaleForResolution: Flow<Float> + val configurationValues: Flow<Configuration> fun getResolutionScale(): Float - /** Convience to context.resources.getDimensionPixelSize() */ + /** Convenience to context.resources.getDimensionPixelSize() */ fun getDimensionPixelSize(id: Int): Int } @@ -64,7 +69,7 @@ constructor( private val displayInfo = MutableStateFlow(DisplayInfo()) override val onAnyConfigurationChange: Flow<Unit> = - ConflatedCallbackFlow.conflatedCallbackFlow { + conflatedCallbackFlow { val callback = object : ConfigurationController.ConfigurationListener { override fun onUiModeChanged() { @@ -87,8 +92,8 @@ constructor( awaitClose { configurationController.removeCallback(callback) } } - private val configurationChange: Flow<Unit> = - ConflatedCallbackFlow.conflatedCallbackFlow { + override val onConfigurationChange: Flow<Unit> = + conflatedCallbackFlow { val callback = object : ConfigurationController.ConfigurationListener { override fun onConfigChanged(newConfig: Configuration) { @@ -99,8 +104,22 @@ constructor( awaitClose { configurationController.removeCallback(callback) } } + override val configurationValues: Flow<Configuration> = + conflatedCallbackFlow { + val callback = + object : ConfigurationController.ConfigurationListener { + override fun onConfigChanged(newConfig: Configuration) { + trySend(newConfig) + } + } + + trySend(context.resources.configuration) + configurationController.addCallback(callback) + awaitClose { configurationController.removeCallback(callback) } + } + override val scaleForResolution: StateFlow<Float> = - configurationChange + onConfigurationChange .mapLatest { getResolutionScale() } .distinctUntilChanged() .stateIn(scope, SharingStarted.WhileSubscribed(), getResolutionScale()) diff --git a/packages/SystemUI/src/com/android/systemui/communal/dagger/CommunalModule.kt b/packages/SystemUI/src/com/android/systemui/communal/dagger/CommunalModule.kt index c3421de8f663..273adcf83271 100644 --- a/packages/SystemUI/src/com/android/systemui/communal/dagger/CommunalModule.kt +++ b/packages/SystemUI/src/com/android/systemui/communal/dagger/CommunalModule.kt @@ -17,6 +17,7 @@ package com.android.systemui.communal.dagger import com.android.systemui.communal.data.db.CommunalDatabaseModule +import com.android.systemui.communal.data.repository.CommunalMediaRepositoryModule import com.android.systemui.communal.data.repository.CommunalRepositoryModule import com.android.systemui.communal.data.repository.CommunalTutorialRepositoryModule import com.android.systemui.communal.data.repository.CommunalWidgetRepositoryModule @@ -26,6 +27,7 @@ import dagger.Module includes = [ CommunalRepositoryModule::class, + CommunalMediaRepositoryModule::class, CommunalTutorialRepositoryModule::class, CommunalWidgetRepositoryModule::class, CommunalDatabaseModule::class, diff --git a/packages/SystemUI/src/com/android/systemui/communal/data/repository/CommunalMediaRepository.kt b/packages/SystemUI/src/com/android/systemui/communal/data/repository/CommunalMediaRepository.kt new file mode 100644 index 000000000000..e41c32261c11 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/communal/data/repository/CommunalMediaRepository.kt @@ -0,0 +1,73 @@ +/* + * 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.communal.data.repository + +import com.android.systemui.dagger.SysUISingleton +import com.android.systemui.media.controls.models.player.MediaData +import com.android.systemui.media.controls.pipeline.MediaDataManager +import javax.inject.Inject +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.onCompletion +import kotlinx.coroutines.flow.onStart + +/** Encapsulates the state of smartspace in communal. */ +interface CommunalMediaRepository { + val mediaPlaying: Flow<Boolean> +} + +@SysUISingleton +class CommunalMediaRepositoryImpl +@Inject +constructor( + private val mediaDataManager: MediaDataManager, +) : CommunalMediaRepository { + + private val mediaDataListener = + object : MediaDataManager.Listener { + override fun onMediaDataLoaded( + key: String, + oldKey: String?, + data: MediaData, + immediately: Boolean, + receivedSmartspaceCardLatency: Int, + isSsReactivated: Boolean + ) { + if (!mediaDataManager.hasAnyMediaOrRecommendation()) { + return + } + _mediaPlaying.value = true + } + + override fun onMediaDataRemoved(key: String) { + if (mediaDataManager.hasAnyMediaOrRecommendation()) { + return + } + _mediaPlaying.value = false + } + } + + private val _mediaPlaying: MutableStateFlow<Boolean> = MutableStateFlow(false) + + override val mediaPlaying: Flow<Boolean> = + _mediaPlaying + .onStart { + mediaDataManager.addListener(mediaDataListener) + _mediaPlaying.value = mediaDataManager.hasAnyMediaOrRecommendation() + } + .onCompletion { mediaDataManager.removeListener(mediaDataListener) } +} diff --git a/packages/SystemUI/src/com/android/systemui/communal/data/repository/CommunalMediaRepositoryModule.kt b/packages/SystemUI/src/com/android/systemui/communal/data/repository/CommunalMediaRepositoryModule.kt new file mode 100644 index 000000000000..2c6d9e4c39c3 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/communal/data/repository/CommunalMediaRepositoryModule.kt @@ -0,0 +1,25 @@ +/* + * 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.communal.data.repository + +import dagger.Binds +import dagger.Module + +@Module +interface CommunalMediaRepositoryModule { + @Binds fun communalMediaRepository(impl: CommunalMediaRepositoryImpl): CommunalMediaRepository +} diff --git a/packages/SystemUI/src/com/android/systemui/communal/data/repository/CommunalRepository.kt b/packages/SystemUI/src/com/android/systemui/communal/data/repository/CommunalRepository.kt index b40570bccc55..3119b9e98bac 100644 --- a/packages/SystemUI/src/com/android/systemui/communal/data/repository/CommunalRepository.kt +++ b/packages/SystemUI/src/com/android/systemui/communal/data/repository/CommunalRepository.kt @@ -21,16 +21,24 @@ import com.android.systemui.communal.shared.model.CommunalSceneKey import com.android.systemui.dagger.SysUISingleton import com.android.systemui.flags.FeatureFlagsClassic import com.android.systemui.flags.Flags +import com.android.systemui.scene.data.repository.SceneContainerRepository +import com.android.systemui.scene.shared.flag.SceneContainerFlags +import com.android.systemui.scene.shared.model.SceneKey import javax.inject.Inject +import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.map /** Encapsulates the state of communal mode. */ interface CommunalRepository { /** Whether communal features are enabled. */ val isCommunalEnabled: Boolean + /** Whether the communal hub is showing. */ + val isCommunalHubShowing: Flow<Boolean> + /** * Target scene as requested by the underlying [SceneTransitionLayout] or through * [setDesiredScene]. @@ -46,6 +54,8 @@ class CommunalRepositoryImpl @Inject constructor( private val featureFlagsClassic: FeatureFlagsClassic, + sceneContainerFlags: SceneContainerFlags, + sceneContainerRepository: SceneContainerRepository, ) : CommunalRepository { override val isCommunalEnabled: Boolean get() = featureFlagsClassic.isEnabled(Flags.COMMUNAL_SERVICE_ENABLED) && communalHub() @@ -57,4 +67,11 @@ constructor( override fun setDesiredScene(desiredScene: CommunalSceneKey) { _desiredScene.value = desiredScene } + + override val isCommunalHubShowing: Flow<Boolean> = + if (sceneContainerFlags.isEnabled()) { + sceneContainerRepository.desiredScene.map { scene -> scene.key == SceneKey.Communal } + } else { + desiredScene.map { sceneKey -> sceneKey == CommunalSceneKey.Communal } + } } diff --git a/packages/SystemUI/src/com/android/systemui/communal/domain/interactor/CommunalInteractor.kt b/packages/SystemUI/src/com/android/systemui/communal/domain/interactor/CommunalInteractor.kt index 2c683ee828aa..eb36b19972f9 100644 --- a/packages/SystemUI/src/com/android/systemui/communal/domain/interactor/CommunalInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/communal/domain/interactor/CommunalInteractor.kt @@ -16,25 +16,39 @@ package com.android.systemui.communal.domain.interactor +import android.app.smartspace.SmartspaceTarget +import android.appwidget.AppWidgetHost import android.content.ComponentName +import com.android.systemui.communal.data.repository.CommunalMediaRepository import com.android.systemui.communal.data.repository.CommunalRepository import com.android.systemui.communal.data.repository.CommunalWidgetRepository +import com.android.systemui.communal.domain.model.CommunalContentModel import com.android.systemui.communal.shared.model.CommunalAppWidgetInfo +import com.android.systemui.communal.shared.model.CommunalContentSize import com.android.systemui.communal.shared.model.CommunalSceneKey -import com.android.systemui.communal.shared.model.CommunalWidgetContentModel import com.android.systemui.dagger.SysUISingleton +import com.android.systemui.smartspace.data.repository.SmartspaceRepository import javax.inject.Inject +import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.combine +import kotlinx.coroutines.flow.flatMapLatest +import kotlinx.coroutines.flow.flowOf import kotlinx.coroutines.flow.map /** Encapsulates business-logic related to communal mode. */ +@OptIn(ExperimentalCoroutinesApi::class) @SysUISingleton class CommunalInteractor @Inject constructor( private val communalRepository: CommunalRepository, private val widgetRepository: CommunalWidgetRepository, + mediaRepository: CommunalMediaRepository, + smartspaceRepository: SmartspaceRepository, + tutorialInteractor: CommunalTutorialInteractor, + private val appWidgetHost: AppWidgetHost, ) { /** Whether communal features are enabled. */ @@ -45,14 +59,6 @@ constructor( val appWidgetInfo: Flow<CommunalAppWidgetInfo?> = widgetRepository.stopwatchAppWidgetInfo /** - * A flow of information about widgets to be shown in communal hub. - * - * Currently only showing persistent widgets that have been bound to the app widget service - * (have an allocated id). - */ - val widgetContent: Flow<List<CommunalWidgetContentModel>> = widgetRepository.communalWidgets - - /** * Target scene as requested by the underlying [SceneTransitionLayout] or through * [onSceneChanged]. */ @@ -76,4 +82,72 @@ constructor( /** Delete a widget by id. */ fun deleteWidget(id: Int) = widgetRepository.deleteWidget(id) + + /** A list of all the communal content to be displayed in the communal hub. */ + @OptIn(ExperimentalCoroutinesApi::class) + val communalContent: Flow<List<CommunalContentModel>> = + tutorialInteractor.isTutorialAvailable.flatMapLatest { isTutorialMode -> + if (isTutorialMode) { + return@flatMapLatest flowOf(tutorialContent) + } + combine(smartspaceContent, umoContent, widgetContent) { smartspace, umo, widgets -> + smartspace + umo + widgets + } + } + + /** A list of widget content to be displayed in the communal hub. */ + private val widgetContent: Flow<List<CommunalContentModel.Widget>> = + widgetRepository.communalWidgets.map { widgets -> + widgets.map Widget@{ widget -> + return@Widget CommunalContentModel.Widget( + appWidgetId = widget.appWidgetId, + providerInfo = widget.providerInfo, + appWidgetHost = appWidgetHost, + ) + } + } + + /** A flow of available smartspace content. Currently only showing timer targets. */ + private val smartspaceContent: Flow<List<CommunalContentModel.Smartspace>> = + if (!smartspaceRepository.isSmartspaceRemoteViewsEnabled) { + flowOf(emptyList()) + } else { + smartspaceRepository.lockscreenSmartspaceTargets.map { targets -> + targets + .filter { target -> + target.featureType == SmartspaceTarget.FEATURE_TIMER && + target.remoteViews != null + } + .map Target@{ target -> + return@Target CommunalContentModel.Smartspace( + smartspaceTargetId = target.smartspaceTargetId, + remoteViews = target.remoteViews!!, + // Smartspace always as HALF for now. + size = CommunalContentSize.HALF, + ) + } + } + } + + /** A list of tutorial content to be displayed in the communal hub in tutorial mode. */ + private val tutorialContent: List<CommunalContentModel.Tutorial> = + listOf( + CommunalContentModel.Tutorial(id = 0, CommunalContentSize.FULL), + CommunalContentModel.Tutorial(id = 1, CommunalContentSize.THIRD), + CommunalContentModel.Tutorial(id = 2, CommunalContentSize.THIRD), + CommunalContentModel.Tutorial(id = 3, CommunalContentSize.THIRD), + CommunalContentModel.Tutorial(id = 4, CommunalContentSize.HALF), + CommunalContentModel.Tutorial(id = 5, CommunalContentSize.HALF), + CommunalContentModel.Tutorial(id = 6, CommunalContentSize.HALF), + CommunalContentModel.Tutorial(id = 7, CommunalContentSize.HALF), + ) + + private val umoContent: Flow<List<CommunalContentModel.Umo>> = + mediaRepository.mediaPlaying.flatMapLatest { mediaPlaying -> + if (mediaPlaying) { + flowOf(listOf(CommunalContentModel.Umo(CommunalContentSize.THIRD))) + } else { + flowOf(emptyList()) + } + } } diff --git a/packages/SystemUI/src/com/android/systemui/communal/domain/interactor/CommunalTutorialInteractor.kt b/packages/SystemUI/src/com/android/systemui/communal/domain/interactor/CommunalTutorialInteractor.kt index 7f43eb5682d6..5ca89f28f1fc 100644 --- a/packages/SystemUI/src/com/android/systemui/communal/domain/interactor/CommunalTutorialInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/communal/domain/interactor/CommunalTutorialInteractor.kt @@ -17,13 +17,11 @@ package com.android.systemui.communal.domain.interactor import android.provider.Settings +import com.android.systemui.communal.data.repository.CommunalRepository import com.android.systemui.communal.data.repository.CommunalTutorialRepository import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor -import com.android.systemui.scene.domain.interactor.SceneInteractor -import com.android.systemui.scene.shared.flag.SceneContainerFlags -import com.android.systemui.scene.shared.model.SceneKey import javax.inject.Inject import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.ExperimentalCoroutinesApi @@ -46,9 +44,7 @@ constructor( @Application private val scope: CoroutineScope, private val communalTutorialRepository: CommunalTutorialRepository, keyguardInteractor: KeyguardInteractor, - private val communalInteractor: CommunalInteractor, - private val sceneContainerFlags: SceneContainerFlags, - private val sceneInteractor: SceneInteractor, + private val communalRepository: CommunalRepository, ) { /** An observable for whether the tutorial is available. */ val isTutorialAvailable: Flow<Boolean> = @@ -74,17 +70,11 @@ constructor( if (tutorialSettingState == Settings.Secure.HUB_MODE_TUTORIAL_COMPLETED) { return@flatMapLatest flowOf(null) } - if (sceneContainerFlags.isEnabled()) { - sceneInteractor.desiredScene.map { sceneModel -> - nextStateAfterTransition( - tutorialSettingState, - sceneModel.key == SceneKey.Communal - ) - } - } else { - communalInteractor.isCommunalShowing.map { - nextStateAfterTransition(tutorialSettingState, it) - } + communalRepository.isCommunalHubShowing.map { isCommunalShowing -> + nextStateAfterTransition( + tutorialSettingState, + isCommunalShowing, + ) } } .filterNotNull() @@ -102,7 +92,7 @@ constructor( private var job: Job? = null private fun listenForTransitionToUpdateTutorialState() { - if (!communalInteractor.isCommunalEnabled) { + if (!communalRepository.isCommunalEnabled) { return } job = diff --git a/packages/SystemUI/src/com/android/systemui/communal/domain/model/CommunalContentModel.kt b/packages/SystemUI/src/com/android/systemui/communal/domain/model/CommunalContentModel.kt new file mode 100644 index 000000000000..bb9b4b5f522f --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/communal/domain/model/CommunalContentModel.kt @@ -0,0 +1,67 @@ +/* + * 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.communal.domain.model + +import android.appwidget.AppWidgetHost +import android.appwidget.AppWidgetProviderInfo +import android.widget.RemoteViews +import com.android.systemui.communal.shared.model.CommunalContentSize + +/** Encapsulates data for a communal content. */ +sealed interface CommunalContentModel { + /** Unique key across all types of content models. */ + val key: String + + /** Size to be rendered in the grid. */ + val size: CommunalContentSize + + class Widget( + val appWidgetId: Int, + val providerInfo: AppWidgetProviderInfo, + val appWidgetHost: AppWidgetHost, + ) : CommunalContentModel { + override val key = "widget_$appWidgetId" + // Widget size is always half. + override val size = CommunalContentSize.HALF + } + + class Tutorial( + id: Int, + override val size: CommunalContentSize, + ) : CommunalContentModel { + override val key = "tutorial_$id" + } + + class Smartspace( + smartspaceTargetId: String, + val remoteViews: RemoteViews, + override val size: CommunalContentSize, + ) : CommunalContentModel { + override val key = "smartspace_$smartspaceTargetId" + } + + class Umo( + override val size: CommunalContentSize, + ) : CommunalContentModel { + override val key = UMO_KEY + } + + companion object { + /** Key for the [Umo] in CommunalContentModel. There should only ever be one UMO. */ + const val UMO_KEY = "umo" + } +} diff --git a/packages/SystemUI/src/com/android/systemui/communal/ui/model/CommunalContentUiModel.kt b/packages/SystemUI/src/com/android/systemui/communal/ui/model/CommunalContentUiModel.kt deleted file mode 100644 index b60dc2a21699..000000000000 --- a/packages/SystemUI/src/com/android/systemui/communal/ui/model/CommunalContentUiModel.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.android.systemui.communal.ui.model - -import android.view.View -import com.android.systemui.communal.shared.model.CommunalContentSize - -/** - * Encapsulates data for a communal content that holds a view. - * - * This model stays in the UI layer. - */ -data class CommunalContentUiModel( - val id: String, - val view: View, - val size: CommunalContentSize = CommunalContentSize.HALF, -) diff --git a/packages/SystemUI/src/com/android/systemui/communal/ui/view/layout/blueprints/DefaultCommunalBlueprint.kt b/packages/SystemUI/src/com/android/systemui/communal/ui/view/layout/blueprints/DefaultCommunalBlueprint.kt index d8d1dc0c11ef..702554ab4943 100644 --- a/packages/SystemUI/src/com/android/systemui/communal/ui/view/layout/blueprints/DefaultCommunalBlueprint.kt +++ b/packages/SystemUI/src/com/android/systemui/communal/ui/view/layout/blueprints/DefaultCommunalBlueprint.kt @@ -33,8 +33,8 @@ constructor( defaultCommunalWidgetSection: DefaultCommunalWidgetSection, ) : KeyguardBlueprint { override val id: String = COMMUNAL - override val sections: Set<KeyguardSection> = - setOf( + override val sections: List<KeyguardSection> = + listOf( defaultCommunalHubSection, defaultCommunalWidgetSection, ) diff --git a/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalViewModel.kt b/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalViewModel.kt index 197dece47cc5..5efe6ceeb65a 100644 --- a/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/communal/ui/viewmodel/CommunalViewModel.kt @@ -16,53 +16,33 @@ package com.android.systemui.communal.ui.viewmodel -import android.appwidget.AppWidgetHost import android.content.ComponentName -import android.content.Context import com.android.systemui.communal.domain.interactor.CommunalInteractor -import com.android.systemui.communal.domain.interactor.CommunalTutorialInteractor +import com.android.systemui.communal.domain.model.CommunalContentModel import com.android.systemui.communal.shared.model.CommunalSceneKey -import com.android.systemui.communal.ui.model.CommunalContentUiModel import com.android.systemui.dagger.SysUISingleton -import com.android.systemui.dagger.qualifiers.Application +import com.android.systemui.media.controls.ui.MediaHost +import com.android.systemui.media.dagger.MediaModule import javax.inject.Inject +import javax.inject.Named import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.StateFlow -import kotlinx.coroutines.flow.map @SysUISingleton class CommunalViewModel @Inject constructor( - @Application private val context: Context, - private val appWidgetHost: AppWidgetHost, private val communalInteractor: CommunalInteractor, - tutorialInteractor: CommunalTutorialInteractor, + @Named(MediaModule.COMMUNAL_HUB) val mediaHost: MediaHost, ) { - /** Whether communal hub should show tutorial content. */ - val showTutorialContent: Flow<Boolean> = tutorialInteractor.isTutorialAvailable - - /** List of widgets to be displayed in the communal hub. */ - val widgetContent: Flow<List<CommunalContentUiModel>> = - communalInteractor.widgetContent.map { widgets -> - widgets.map Widget@{ widget -> - // TODO(b/306406256): As adding and removing widgets functionalities are - // supported, cache the host views so they're not recreated each time. - val hostView = - appWidgetHost.createView(context, widget.appWidgetId, widget.providerInfo) - return@Widget CommunalContentUiModel( - // TODO(b/308148193): a more scalable solution for unique ids. - id = "widget_${widget.appWidgetId}", - view = hostView, - ) - } - } - val currentScene: StateFlow<CommunalSceneKey> = communalInteractor.desiredScene fun onSceneChanged(scene: CommunalSceneKey) { communalInteractor.onSceneChanged(scene) } + /** A list of all the communal content to be displayed in the communal hub. */ + val communalContent: Flow<List<CommunalContentModel>> = communalInteractor.communalContent + /** Delete a widget by id. */ fun onDeleteWidget(id: Int) = communalInteractor.deleteWidget(id) diff --git a/packages/SystemUI/src/com/android/systemui/complication/SmartSpaceComplication.java b/packages/SystemUI/src/com/android/systemui/complication/SmartSpaceComplication.java index b98794ef8026..9bb23d8564e4 100644 --- a/packages/SystemUI/src/com/android/systemui/complication/SmartSpaceComplication.java +++ b/packages/SystemUI/src/com/android/systemui/complication/SmartSpaceComplication.java @@ -71,6 +71,18 @@ public class SmartSpaceComplication implements Complication { private final DreamOverlayStateController mDreamOverlayStateController; private final SmartSpaceComplication mComplication; private final FeatureFlags mFeatureFlags; + private final DreamOverlayStateController.Callback mStateControllerCallback = + new DreamOverlayStateController.Callback() { + @Override + public void onStateChanged() { + if (mDreamOverlayStateController.isOverlayActive()) { + mSmartSpaceController.addListener(mSmartspaceListener); + } else { + mSmartSpaceController.removeListener(mSmartspaceListener); + mDreamOverlayStateController.removeComplication(mComplication); + } + } + }; private final BcSmartspaceDataPlugin.SmartspaceTargetListener mSmartspaceListener = new BcSmartspaceDataPlugin.SmartspaceTargetListener() { @@ -103,17 +115,7 @@ public class SmartSpaceComplication implements Complication { return; } - mDreamOverlayStateController.addCallback(new DreamOverlayStateController.Callback() { - @Override - public void onStateChanged() { - if (mDreamOverlayStateController.isOverlayActive()) { - mSmartSpaceController.addListener(mSmartspaceListener); - } else { - mSmartSpaceController.removeListener(mSmartspaceListener); - mDreamOverlayStateController.removeComplication(mComplication); - } - } - }); + mDreamOverlayStateController.addCallback(mStateControllerCallback); } } diff --git a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java index 58dcf0691687..9fc86adce091 100644 --- a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java +++ b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java @@ -37,12 +37,13 @@ import com.android.systemui.biometrics.FingerprintReEnrollNotification; import com.android.systemui.biometrics.UdfpsDisplayModeProvider; import com.android.systemui.biometrics.dagger.BiometricsModule; import com.android.systemui.biometrics.domain.BiometricsDomainLayerModule; +import com.android.systemui.bouncer.domain.interactor.BouncerInteractorModule; import com.android.systemui.bouncer.ui.BouncerViewModule; import com.android.systemui.classifier.FalsingModule; import com.android.systemui.clipboardoverlay.dagger.ClipboardOverlayModule; -import com.android.systemui.common.ui.data.CommonUiDataLayerModule; import com.android.systemui.communal.dagger.CommunalModule; import com.android.systemui.complication.dagger.ComplicationComponent; +import com.android.systemui.common.CommonModule; import com.android.systemui.controls.dagger.ControlsModule; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dagger.qualifiers.SystemUser; @@ -129,6 +130,7 @@ import com.android.systemui.user.domain.UserDomainLayerModule; import com.android.systemui.util.concurrency.SysUIConcurrencyModule; import com.android.systemui.util.dagger.UtilModule; import com.android.systemui.util.kotlin.CoroutinesModule; +import com.android.systemui.util.reference.ReferenceModule; import com.android.systemui.util.sensors.SensorModule; import com.android.systemui.util.settings.SettingsUtilModule; import com.android.systemui.util.time.SystemClock; @@ -166,11 +168,12 @@ import javax.inject.Named; AuthenticationModule.class, BiometricsModule.class, BiometricsDomainLayerModule.class, + BouncerInteractorModule.class, BouncerViewModule.class, ClipboardOverlayModule.class, ClockRegistryModule.class, - CommonUiDataLayerModule.class, CommunalModule.class, + CommonModule.class, ConnectivityModule.class, ControlsModule.class, CoroutinesModule.class, @@ -199,6 +202,7 @@ import javax.inject.Named; PrivacyModule.class, QRCodeScannerModule.class, QSFragmentStartableModule.class, + ReferenceModule.class, RetailModeModule.class, ScreenshotModule.class, SensorModule.class, diff --git a/packages/SystemUI/src/com/android/systemui/display/domain/interactor/ConnectedDisplayInteractor.kt b/packages/SystemUI/src/com/android/systemui/display/domain/interactor/ConnectedDisplayInteractor.kt index cf868856c419..20a9e5d572c9 100644 --- a/packages/SystemUI/src/com/android/systemui/display/domain/interactor/ConnectedDisplayInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/display/domain/interactor/ConnectedDisplayInteractor.kt @@ -20,15 +20,18 @@ import android.companion.virtual.VirtualDeviceManager import android.companion.virtual.flags.Flags import android.view.Display import com.android.systemui.dagger.SysUISingleton +import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.display.data.repository.DisplayRepository import com.android.systemui.display.domain.interactor.ConnectedDisplayInteractor.PendingDisplay import com.android.systemui.display.domain.interactor.ConnectedDisplayInteractor.State import com.android.systemui.keyguard.data.repository.KeyguardRepository import javax.inject.Inject +import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.filter +import kotlinx.coroutines.flow.flowOn import kotlinx.coroutines.flow.map /** Provides information about an external connected display. */ @@ -81,6 +84,7 @@ constructor( private val virtualDeviceManager: VirtualDeviceManager, keyguardRepository: KeyguardRepository, displayRepository: DisplayRepository, + @Background backgroundCoroutineDispatcher: CoroutineDispatcher, ) : ConnectedDisplayInteractor { override val connectedDisplayState: Flow<State> = @@ -101,6 +105,7 @@ constructor( State.CONNECTED } } + .flowOn(backgroundCoroutineDispatcher) .distinctUntilChanged() override val connectedDisplayAddition: Flow<Unit> = @@ -108,6 +113,7 @@ constructor( .filter { it != null && (isExternalDisplay(it) || isVirtualDeviceOwnedMirrorDisplay(it)) } + .flowOn(backgroundCoroutineDispatcher) .map {} // map to Unit // Provides the pending display only if the lockscreen is unlocked diff --git a/packages/SystemUI/src/com/android/systemui/dreams/DreamOverlayStateController.java b/packages/SystemUI/src/com/android/systemui/dreams/DreamOverlayStateController.java index c9748f954670..0e333f21dd14 100644 --- a/packages/SystemUI/src/com/android/systemui/dreams/DreamOverlayStateController.java +++ b/packages/SystemUI/src/com/android/systemui/dreams/DreamOverlayStateController.java @@ -31,11 +31,15 @@ import com.android.systemui.flags.Flags; import com.android.systemui.log.LogBuffer; import com.android.systemui.log.dagger.DreamLog; import com.android.systemui.statusbar.policy.CallbackController; +import com.android.systemui.util.annotations.WeaklyReferencedCallback; +import com.android.systemui.util.reference.WeakReferenceFactory; +import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashSet; +import java.util.Iterator; import java.util.Objects; import java.util.concurrent.Executor; import java.util.function.Consumer; @@ -68,7 +72,10 @@ public class DreamOverlayStateController implements /** * Callback for dream overlay events. + * NOTE: Caller should maintain a strong reference to this themselves so the callback does + * not get garbage collected. */ + @WeaklyReferencedCallback public interface Callback { /** * Called when the composition of complications changes. @@ -97,7 +104,7 @@ public class DreamOverlayStateController implements private final Executor mExecutor; private final boolean mOverlayEnabled; - private final ArrayList<Callback> mCallbacks = new ArrayList<>(); + private final ArrayList<WeakReference<Callback>> mCallbacks = new ArrayList<>(); @Complication.ComplicationType private int mAvailableComplicationTypes = Complication.COMPLICATION_TYPE_NONE; @@ -107,6 +114,7 @@ public class DreamOverlayStateController implements private final Collection<Complication> mComplications = new HashSet(); private final FeatureFlags mFeatureFlags; + private final WeakReferenceFactory mWeakReferenceFactory; private final int mSupportedTypes; @@ -117,11 +125,13 @@ public class DreamOverlayStateController implements public DreamOverlayStateController(@Main Executor executor, @Named(DREAM_OVERLAY_ENABLED) boolean overlayEnabled, FeatureFlags featureFlags, - @DreamLog LogBuffer logBuffer) { + @DreamLog LogBuffer logBuffer, + WeakReferenceFactory weakReferenceFactory) { mExecutor = executor; mOverlayEnabled = overlayEnabled; mLogger = new DreamLogger(logBuffer, TAG); mFeatureFlags = featureFlags; + mWeakReferenceFactory = weakReferenceFactory; if (mFeatureFlags.isEnabled(Flags.ALWAYS_SHOW_HOME_CONTROLS_ON_DREAMS)) { mSupportedTypes = Complication.COMPLICATION_TYPE_NONE | Complication.COMPLICATION_TYPE_HOME_CONTROLS; @@ -143,7 +153,7 @@ public class DreamOverlayStateController implements mExecutor.execute(() -> { if (mComplications.add(complication)) { mLogger.logAddComplication(complication.toString()); - mCallbacks.stream().forEach(callback -> callback.onComplicationsChanged()); + notifyCallbacksLocked(Callback::onComplicationsChanged); } }); } @@ -160,7 +170,7 @@ public class DreamOverlayStateController implements mExecutor.execute(() -> { if (mComplications.remove(complication)) { mLogger.logRemoveComplication(complication.toString()); - mCallbacks.stream().forEach(callback -> callback.onComplicationsChanged()); + notifyCallbacksLocked(Callback::onComplicationsChanged); } }); } @@ -199,22 +209,33 @@ public class DreamOverlayStateController implements } private void notifyCallbacks(Consumer<Callback> callbackConsumer) { - mExecutor.execute(() -> { - for (Callback callback : mCallbacks) { + mExecutor.execute(() -> notifyCallbacksLocked(callbackConsumer)); + } + + private void notifyCallbacksLocked(Consumer<Callback> callbackConsumer) { + final Iterator<WeakReference<Callback>> iterator = mCallbacks.iterator(); + while (iterator.hasNext()) { + final Callback callback = iterator.next().get(); + // Remove any callbacks which have been GC'd + if (callback == null) { + iterator.remove(); + } else { callbackConsumer.accept(callback); } - }); + } } @Override public void addCallback(@NonNull Callback callback) { mExecutor.execute(() -> { Objects.requireNonNull(callback, "Callback must not be null. b/128895449"); - if (mCallbacks.contains(callback)) { + final boolean containsCallback = mCallbacks.stream() + .anyMatch(reference -> reference.get() == callback); + if (containsCallback) { return; } - mCallbacks.add(callback); + mCallbacks.add(mWeakReferenceFactory.create(callback)); if (mComplications.isEmpty()) { return; @@ -228,7 +249,13 @@ public class DreamOverlayStateController implements public void removeCallback(@NonNull Callback callback) { mExecutor.execute(() -> { Objects.requireNonNull(callback, "Callback must not be null. b/128895449"); - mCallbacks.remove(callback); + final Iterator<WeakReference<Callback>> iterator = mCallbacks.iterator(); + while (iterator.hasNext()) { + final Callback cb = iterator.next().get(); + if (cb == null || cb == callback) { + iterator.remove(); + } + } }); } @@ -318,7 +345,7 @@ public class DreamOverlayStateController implements if (isLowLightActive() && !active) { // Notify that we're exiting low light only on the transition from active to not active. - mCallbacks.forEach(Callback::onExitLowLight); + notifyCallbacks(Callback::onExitLowLight); } modifyState(active ? OP_SET_STATE : OP_CLEAR_STATE, STATE_LOW_LIGHT_ACTIVE); } @@ -375,7 +402,7 @@ public class DreamOverlayStateController implements mExecutor.execute(() -> { mLogger.logAvailableComplicationTypes(types); mAvailableComplicationTypes = types; - mCallbacks.forEach(Callback::onAvailableComplicationTypesChanged); + notifyCallbacksLocked(Callback::onAvailableComplicationTypesChanged); }); } @@ -393,7 +420,7 @@ public class DreamOverlayStateController implements mExecutor.execute(() -> { mLogger.logShouldShowComplications(shouldShowComplications); mShouldShowComplications = shouldShowComplications; - mCallbacks.forEach(Callback::onAvailableComplicationTypesChanged); + notifyCallbacksLocked(Callback::onAvailableComplicationTypesChanged); }); } } diff --git a/packages/SystemUI/src/com/android/systemui/dump/DumpManager.kt b/packages/SystemUI/src/com/android/systemui/dump/DumpManager.kt index c924df6da263..349236551ecf 100644 --- a/packages/SystemUI/src/com/android/systemui/dump/DumpManager.kt +++ b/packages/SystemUI/src/com/android/systemui/dump/DumpManager.kt @@ -45,7 +45,7 @@ open class DumpManager @Inject constructor() { /** See [registerCriticalDumpable]. */ fun registerCriticalDumpable(module: Dumpable) { - registerCriticalDumpable(module::class.java.simpleName, module) + registerCriticalDumpable(module::class.java.canonicalName, module) } /** @@ -62,7 +62,7 @@ open class DumpManager @Inject constructor() { /** See [registerNormalDumpable]. */ fun registerNormalDumpable(module: Dumpable) { - registerNormalDumpable(module::class.java.simpleName, module) + registerNormalDumpable(module::class.java.canonicalName, module) } /** @@ -105,12 +105,12 @@ open class DumpManager @Inject constructor() { } /** - * Same as the above override, but automatically uses the simple class name as the dumpable + * Same as the above override, but automatically uses the canonical class name as the dumpable * name. */ @Synchronized fun registerDumpable(module: Dumpable) { - registerDumpable(module::class.java.simpleName, module) + registerDumpable(module::class.java.canonicalName, module) } /** Unregisters a previously-registered dumpable. */ diff --git a/packages/SystemUI/src/com/android/systemui/flags/Flags.kt b/packages/SystemUI/src/com/android/systemui/flags/Flags.kt index 8fed57186733..b237b87987a4 100644 --- a/packages/SystemUI/src/com/android/systemui/flags/Flags.kt +++ b/packages/SystemUI/src/com/android/systemui/flags/Flags.kt @@ -345,13 +345,6 @@ object Flags { "qs_user_detail_shortcut" ) - @JvmField - val QS_PIPELINE_NEW_HOST = unreleasedFlag("qs_pipeline_new_host", teamfood = true) - - // TODO(b/278068252): Tracking Bug - @JvmField - val QS_PIPELINE_AUTO_ADD = unreleasedFlag("qs_pipeline_auto_add", teamfood = true) - // TODO(b/296357483): Tracking Bug @JvmField val QS_PIPELINE_NEW_TILES = unreleasedFlag("qs_pipeline_new_tiles") @@ -481,12 +474,6 @@ object Flags { namespace = DeviceConfig.NAMESPACE_WINDOW_MANAGER, ) - // TODO(b/254512674): Tracking Bug - @Keep - @JvmField - val HIDE_NAVBAR_WINDOW = - sysPropBooleanFlag("persist.wm.debug.hide_navbar_window", default = false) - @Keep @JvmField val WM_CAPTION_ON_SHELL = diff --git a/packages/SystemUI/src/com/android/systemui/keyboard/backlight/ui/view/KeyboardBacklightDialog.kt b/packages/SystemUI/src/com/android/systemui/keyboard/backlight/ui/view/KeyboardBacklightDialog.kt index 1e9be09bc3f3..e16bb0bb8482 100644 --- a/packages/SystemUI/src/com/android/systemui/keyboard/backlight/ui/view/KeyboardBacklightDialog.kt +++ b/packages/SystemUI/src/com/android/systemui/keyboard/backlight/ui/view/KeyboardBacklightDialog.kt @@ -30,7 +30,6 @@ import android.view.View import android.view.ViewGroup.MarginLayoutParams import android.view.Window import android.view.WindowManager -import android.view.accessibility.AccessibilityEvent import android.widget.FrameLayout import android.widget.ImageView import android.widget.LinearLayout @@ -79,29 +78,23 @@ class KeyboardBacklightDialog( private lateinit var stepProperties: StepViewProperties @ColorInt - private val filledRectangleColor = - getColorFromStyle(com.android.internal.R.attr.materialColorPrimary) + var filledRectangleColor = getColorFromStyle(com.android.internal.R.attr.materialColorPrimary) @ColorInt - private val emptyRectangleColor = + var emptyRectangleColor = getColorFromStyle(com.android.internal.R.attr.materialColorOutlineVariant) @ColorInt - private val backgroundColor = - getColorFromStyle(com.android.internal.R.attr.materialColorSurfaceBright) + var backgroundColor = getColorFromStyle(com.android.internal.R.attr.materialColorSurfaceBright) @ColorInt - private val defaultIconColor = - getColorFromStyle(com.android.internal.R.attr.materialColorOnPrimary) + var defaultIconColor = getColorFromStyle(com.android.internal.R.attr.materialColorOnPrimary) @ColorInt - private val defaultIconBackgroundColor = + var defaultIconBackgroundColor = getColorFromStyle(com.android.internal.R.attr.materialColorPrimary) @ColorInt - private val dimmedIconColor = - getColorFromStyle(com.android.internal.R.attr.materialColorOnSurface) + var dimmedIconColor = getColorFromStyle(com.android.internal.R.attr.materialColorOnSurface) @ColorInt - private val dimmedIconBackgroundColor = + var dimmedIconBackgroundColor = getColorFromStyle(com.android.internal.R.attr.materialColorSurfaceDim) - private val levelContentDescription = context.getString(R.string.keyboard_backlight_value) - init { currentLevel = initialCurrentLevel maxLevel = initialMaxLevel @@ -110,8 +103,6 @@ class KeyboardBacklightDialog( override fun onCreate(savedInstanceState: Bundle?) { setUpWindowProperties(this) setWindowPosition() - // title is used for a11y announcement - window?.setTitle(context.getString(R.string.keyboard_backlight_dialog_title)) updateResources() rootView = buildRootView() setContentView(rootView) @@ -168,12 +159,6 @@ class KeyboardBacklightDialog( currentLevel = current updateIconTile() updateStepColors() - updateAccessibilityInfo() - } - - private fun updateAccessibilityInfo() { - rootView.contentDescription = String.format(levelContentDescription, currentLevel, maxLevel) - rootView.sendAccessibilityEvent(AccessibilityEvent.CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION) } private fun updateIconTile() { diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/BiometricSettingsRepository.kt b/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/BiometricSettingsRepository.kt index 654f2d106206..f5f5571dbb1b 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/BiometricSettingsRepository.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/BiometricSettingsRepository.kt @@ -66,7 +66,7 @@ import kotlinx.coroutines.flow.transformLatest /** * Acts as source of truth for biometric authentication related settings like enrollments, device - * policy, etc. + * policy specifically for device entry usage. * * Abstracts-away data sources and their schemas so the rest of the app doesn't need to worry about * upstream changes. @@ -74,7 +74,8 @@ import kotlinx.coroutines.flow.transformLatest interface BiometricSettingsRepository { /** * If the current user can enter the device using fingerprint. This is true if user has enrolled - * fingerprints and fingerprint auth is not disabled through settings/device policy + * fingerprints and fingerprint auth is not disabled for device entry through settings and + * device policy */ val isFingerprintEnrolledAndEnabled: StateFlow<Boolean> @@ -247,9 +248,11 @@ constructor( } } - private val isFaceEnabledByBiometricsManagerForCurrentUser: Flow<Boolean> = + private val areBiometricsEnabledForCurrentUser: Flow<Boolean> = userRepository.selectedUserInfo.flatMapLatest { userInfo -> - isFaceEnabledByBiometricsManager.map { biometricsEnabledForUser[userInfo.id] ?: false } + areBiometricsEnabledForDeviceEntryFromUserSetting.map { + biometricsEnabledForUser[userInfo.id] ?: false + } } private val isFaceEnabledByDevicePolicy: Flow<Boolean> = @@ -263,13 +266,13 @@ constructor( .distinctUntilChanged() private val isFaceAuthenticationEnabled: Flow<Boolean> = - combine(isFaceEnabledByBiometricsManagerForCurrentUser, isFaceEnabledByDevicePolicy) { + combine(areBiometricsEnabledForCurrentUser, isFaceEnabledByDevicePolicy) { biometricsManagerSetting, devicePolicySetting -> biometricsManagerSetting && devicePolicySetting } - private val isFaceEnabledByBiometricsManager: Flow<Pair<Int, Boolean>> = + private val areBiometricsEnabledForDeviceEntryFromUserSetting: Flow<Pair<Int, Boolean>> = conflatedCallbackFlow { val callback = object : IBiometricEnabledOnKeyguardCallback.Stub() { @@ -340,6 +343,7 @@ constructor( override val isFingerprintEnrolledAndEnabled: StateFlow<Boolean> = isFingerprintEnrolled + .and(areBiometricsEnabledForCurrentUser) .and(isFingerprintEnabledByDevicePolicy) .stateIn(scope, SharingStarted.Eagerly, false) diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardBlueprintRepository.kt b/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardBlueprintRepository.kt index f5ef27daecdd..fbd62cef7dfb 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardBlueprintRepository.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardBlueprintRepository.kt @@ -17,33 +17,29 @@ package com.android.systemui.keyguard.data.repository +import android.util.Log import com.android.systemui.common.ui.data.repository.ConfigurationRepository import com.android.systemui.dagger.SysUISingleton -import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.keyguard.shared.model.KeyguardBlueprint import com.android.systemui.keyguard.ui.view.layout.blueprints.DefaultKeyguardBlueprint.Companion.DEFAULT import com.android.systemui.keyguard.ui.view.layout.blueprints.KeyguardBlueprintModule import java.io.PrintWriter import java.util.TreeMap import javax.inject.Inject -import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.asSharedFlow -import kotlinx.coroutines.launch /** * Manages blueprint changes for the lockscreen. * * To add a blueprint, create a class that implements LockscreenBlueprint and bind it to the map in - * the dagger module: + * the dagger module: [KeyguardBlueprintModule] * * A Blueprint determines how the layout should be constrained on a high level. * * A Section is a modular piece of code that implements the constraints. The blueprint uses the * sections to define the constraints. - * - * @see KeyguardBlueprintModule */ @SysUISingleton class KeyguardBlueprintRepository @@ -51,18 +47,16 @@ class KeyguardBlueprintRepository constructor( configurationRepository: ConfigurationRepository, blueprints: Set<@JvmSuppressWildcards KeyguardBlueprint>, - @Application private val applicationScope: CoroutineScope, ) { private val blueprintIdMap: TreeMap<String, KeyguardBlueprint> = TreeMap() private val _blueprint: MutableSharedFlow<KeyguardBlueprint> = MutableSharedFlow(replay = 1) val blueprint: Flow<KeyguardBlueprint> = _blueprint.asSharedFlow() + val configurationChange: Flow<Unit> = configurationRepository.onAnyConfigurationChange + init { blueprintIdMap.putAll(blueprints.associateBy { it.id }) applyBlueprint(blueprintIdMap[DEFAULT]!!) - applicationScope.launch { - configurationRepository.onAnyConfigurationChange.collect { refreshBlueprint() } - } } /** @@ -86,9 +80,18 @@ constructor( * @return whether the transition has succeeded. */ fun applyBlueprint(blueprintId: String?): Boolean { - val blueprint = blueprintIdMap[blueprintId] ?: return false - applyBlueprint(blueprint) - return true + val blueprint = blueprintIdMap[blueprintId] + return if (blueprint != null) { + applyBlueprint(blueprint) + true + } else { + Log.e( + TAG, + "Could not find blueprint with id: $blueprintId. " + + "Perhaps it was not added to KeyguardBlueprintModule?" + ) + false + } } /** Emits the blueprint value to the collectors. */ @@ -107,4 +110,8 @@ constructor( fun printBlueprints(pw: PrintWriter) { blueprintIdMap.onEachIndexed { index, entry -> pw.println("$index: ${entry.key}") } } + + companion object { + private const val TAG = "KeyguardBlueprintRepository" + } } diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardBlueprintInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardBlueprintInteractor.kt index 6ce91854ea56..7dab84dc7da3 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardBlueprintInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardBlueprintInteractor.kt @@ -17,16 +17,56 @@ package com.android.systemui.keyguard.domain.interactor +import android.content.Context import com.android.systemui.dagger.SysUISingleton +import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.keyguard.data.repository.KeyguardBlueprintRepository +import com.android.systemui.keyguard.ui.view.layout.blueprints.DefaultKeyguardBlueprint +import com.android.systemui.keyguard.ui.view.layout.blueprints.SplitShadeKeyguardBlueprint +import com.android.systemui.statusbar.policy.SplitShadeStateController import javax.inject.Inject +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.flow.onStart +import kotlinx.coroutines.launch @SysUISingleton class KeyguardBlueprintInteractor @Inject -constructor(private val keyguardBlueprintRepository: KeyguardBlueprintRepository) { +constructor( + private val keyguardBlueprintRepository: KeyguardBlueprintRepository, + @Application private val applicationScope: CoroutineScope, + private val context: Context, + private val splitShadeStateController: SplitShadeStateController, +) { + val blueprint = keyguardBlueprintRepository.blueprint + init { + applicationScope.launch { + keyguardBlueprintRepository.configurationChange + .onStart { emit(Unit) } + .collect { updateBlueprint() } + } + } + + /** + * Detects when a new blueprint should be applied and calls [transitionToBlueprint]. This may + * end up reapplying the same blueprint, which is fine as configuration may have changed. + */ + private fun updateBlueprint() { + val useSplitShade = + splitShadeStateController.shouldUseSplitNotificationShade(context.resources) + + val blueprintId = + if (useSplitShade) { + SplitShadeKeyguardBlueprint.ID + } else { + DefaultKeyguardBlueprint.DEFAULT + } + + transitionToBlueprint(blueprintId) + } + /** * Transitions to a blueprint. * diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/KeyguardBlueprint.kt b/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/KeyguardBlueprint.kt index 7fc1911a3477..344044019c0d 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/KeyguardBlueprint.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/KeyguardBlueprint.kt @@ -22,7 +22,7 @@ import androidx.constraintlayout.widget.ConstraintSet /** Determines the constraints for the ConstraintSet in the lockscreen root view. */ interface KeyguardBlueprint { val id: String - val sections: Set<KeyguardSection> + val sections: List<KeyguardSection> /** * Removes views of old blueprint and add views of new blueprint. diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/blueprints/DefaultKeyguardBlueprint.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/blueprints/DefaultKeyguardBlueprint.kt index f1ea4469a2ae..2e64c41bace8 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/blueprints/DefaultKeyguardBlueprint.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/blueprints/DefaultKeyguardBlueprint.kt @@ -32,7 +32,6 @@ import com.android.systemui.keyguard.ui.view.layout.sections.DefaultShortcutsSec import com.android.systemui.keyguard.ui.view.layout.sections.DefaultStatusBarSection import com.android.systemui.keyguard.ui.view.layout.sections.DefaultStatusViewSection import com.android.systemui.keyguard.ui.view.layout.sections.SmartspaceSection -import com.android.systemui.keyguard.ui.view.layout.sections.SplitShadeGuidelines import javax.inject.Inject /** @@ -53,7 +52,6 @@ constructor( defaultStatusViewSection: DefaultStatusViewSection, defaultStatusBarSection: DefaultStatusBarSection, defaultNotificationStackScrollLayoutSection: DefaultNotificationStackScrollLayoutSection, - splitShadeGuidelines: SplitShadeGuidelines, aodNotificationIconsSection: AodNotificationIconsSection, aodBurnInSection: AodBurnInSection, communalTutorialIndicatorSection: CommunalTutorialIndicatorSection, @@ -63,7 +61,7 @@ constructor( override val id: String = DEFAULT override val sections = - setOf( + listOf( defaultIndicationAreaSection, defaultDeviceEntryIconSection, defaultShortcutsSection, @@ -72,7 +70,6 @@ constructor( defaultStatusViewSection, defaultStatusBarSection, defaultNotificationStackScrollLayoutSection, - splitShadeGuidelines, aodNotificationIconsSection, aodBurnInSection, communalTutorialIndicatorSection, diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/blueprints/KeyguardBlueprintModule.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/blueprints/KeyguardBlueprintModule.kt index fda4c3d5376a..4f1a754adbd5 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/blueprints/KeyguardBlueprintModule.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/blueprints/KeyguardBlueprintModule.kt @@ -33,6 +33,12 @@ abstract class KeyguardBlueprintModule { @Binds @IntoSet + abstract fun bindSplitShadeBlueprint( + splitShadeBlueprint: SplitShadeKeyguardBlueprint + ): KeyguardBlueprint + + @Binds + @IntoSet abstract fun bindShortcutsBesideUdfpsLockscreenBlueprint( shortcutsBesideUdfpsLockscreenBlueprint: ShortcutsBesideUdfpsKeyguardBlueprint ): KeyguardBlueprint diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/blueprints/ShortcutsBesideUdfpsKeyguardBlueprint.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/blueprints/ShortcutsBesideUdfpsKeyguardBlueprint.kt index f8dd7c1a58c7..d8b368b4a0d3 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/blueprints/ShortcutsBesideUdfpsKeyguardBlueprint.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/blueprints/ShortcutsBesideUdfpsKeyguardBlueprint.kt @@ -52,7 +52,7 @@ constructor( override val id: String = SHORTCUTS_BESIDE_UDFPS override val sections = - setOf( + listOf( defaultIndicationAreaSection, defaultDeviceEntryIconSection, defaultAmbientIndicationAreaSection, diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/blueprints/SplitShadeKeyguardBlueprint.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/blueprints/SplitShadeKeyguardBlueprint.kt new file mode 100644 index 000000000000..35679b84771b --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/blueprints/SplitShadeKeyguardBlueprint.kt @@ -0,0 +1,79 @@ +/* + * 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.keyguard.ui.view.layout.blueprints + +import com.android.systemui.communal.ui.view.layout.sections.CommunalTutorialIndicatorSection +import com.android.systemui.dagger.SysUISingleton +import com.android.systemui.keyguard.shared.model.KeyguardBlueprint +import com.android.systemui.keyguard.ui.view.layout.sections.AodBurnInSection +import com.android.systemui.keyguard.ui.view.layout.sections.AodNotificationIconsSection +import com.android.systemui.keyguard.ui.view.layout.sections.DefaultAmbientIndicationAreaSection +import com.android.systemui.keyguard.ui.view.layout.sections.DefaultDeviceEntryIconSection +import com.android.systemui.keyguard.ui.view.layout.sections.DefaultIndicationAreaSection +import com.android.systemui.keyguard.ui.view.layout.sections.DefaultSettingsPopupMenuSection +import com.android.systemui.keyguard.ui.view.layout.sections.DefaultShortcutsSection +import com.android.systemui.keyguard.ui.view.layout.sections.DefaultStatusBarSection +import com.android.systemui.keyguard.ui.view.layout.sections.DefaultStatusViewSection +import com.android.systemui.keyguard.ui.view.layout.sections.SplitShadeGuidelines +import com.android.systemui.keyguard.ui.view.layout.sections.SplitShadeNotificationStackScrollLayoutSection +import javax.inject.Inject + +/** + * Split-shade layout, mostly used for larger devices like foldables and tablets when in landscape + * orientation. + */ +@SysUISingleton +@JvmSuppressWildcards +class SplitShadeKeyguardBlueprint +@Inject +constructor( + defaultIndicationAreaSection: DefaultIndicationAreaSection, + defaultDeviceEntryIconSection: DefaultDeviceEntryIconSection, + defaultShortcutsSection: DefaultShortcutsSection, + defaultAmbientIndicationAreaSection: DefaultAmbientIndicationAreaSection, + defaultSettingsPopupMenuSection: DefaultSettingsPopupMenuSection, + defaultStatusViewSection: DefaultStatusViewSection, + defaultStatusBarSection: DefaultStatusBarSection, + splitShadeNotificationStackScrollLayoutSection: SplitShadeNotificationStackScrollLayoutSection, + splitShadeGuidelines: SplitShadeGuidelines, + aodNotificationIconsSection: AodNotificationIconsSection, + aodBurnInSection: AodBurnInSection, + communalTutorialIndicatorSection: CommunalTutorialIndicatorSection, +) : KeyguardBlueprint { + override val id: String = ID + + override val sections = + listOf( + defaultIndicationAreaSection, + defaultDeviceEntryIconSection, + defaultShortcutsSection, + defaultAmbientIndicationAreaSection, + defaultSettingsPopupMenuSection, + defaultStatusViewSection, + defaultStatusBarSection, + splitShadeNotificationStackScrollLayoutSection, + splitShadeGuidelines, + aodNotificationIconsSection, + aodBurnInSection, + communalTutorialIndicatorSection, + ) + + companion object { + const val ID = "split-shade" + } +} diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/AodNotificationIconsSection.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/AodNotificationIconsSection.kt index 06bb0a66ef54..975d62a0b9e3 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/AodNotificationIconsSection.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/AodNotificationIconsSection.kt @@ -94,7 +94,6 @@ constructor( nicAodViewModel, configurationState, configurationController, - dozeParameters, nicAodIconViewStore, ) } else { diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/DefaultNotificationStackScrollLayoutSection.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/DefaultNotificationStackScrollLayoutSection.kt index 199566129eb3..078fefff394a 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/DefaultNotificationStackScrollLayoutSection.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/DefaultNotificationStackScrollLayoutSection.kt @@ -18,9 +18,6 @@ package com.android.systemui.keyguard.ui.view.layout.sections import android.content.Context -import android.view.View -import android.view.ViewGroup -import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintSet import androidx.constraintlayout.widget.ConstraintSet.BOTTOM import androidx.constraintlayout.widget.ConstraintSet.END @@ -29,55 +26,34 @@ import androidx.constraintlayout.widget.ConstraintSet.START import androidx.constraintlayout.widget.ConstraintSet.TOP import com.android.systemui.flags.FeatureFlags import com.android.systemui.flags.Flags -import com.android.systemui.keyguard.shared.model.KeyguardSection import com.android.systemui.keyguard.ui.viewmodel.KeyguardSmartspaceViewModel import com.android.systemui.res.R import com.android.systemui.shade.NotificationPanelView import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController import com.android.systemui.statusbar.notification.stack.ui.view.SharedNotificationContainer -import com.android.systemui.statusbar.notification.stack.ui.viewbinder.SharedNotificationContainerBinder import com.android.systemui.statusbar.notification.stack.ui.viewmodel.SharedNotificationContainerViewModel import javax.inject.Inject +/** Single column format for notifications (default for phones) */ class DefaultNotificationStackScrollLayoutSection @Inject constructor( - private val context: Context, - private val featureFlags: FeatureFlags, - private val notificationPanelView: NotificationPanelView, - private val sharedNotificationContainer: SharedNotificationContainer, - private val sharedNotificationContainerViewModel: SharedNotificationContainerViewModel, - private val controller: NotificationStackScrollLayoutController, - private val smartspaceViewModel: KeyguardSmartspaceViewModel -) : KeyguardSection() { - private val placeHolderId = R.id.nssl_placeholder - - override fun addViews(constraintLayout: ConstraintLayout) { - if (!featureFlags.isEnabled(Flags.MIGRATE_NSSL)) { - return - } - // This moves the existing NSSL view to a different parent, as the controller is a - // singleton and recreating it has other bad side effects - notificationPanelView.findViewById<View?>(R.id.notification_stack_scroller)?.let { - (it.parent as ViewGroup).removeView(it) - sharedNotificationContainer.addNotificationStackScrollLayout(it) - } - - val view = View(context, null).apply { id = placeHolderId } - constraintLayout.addView(view) - } - - override fun bindData(constraintLayout: ConstraintLayout) { - if (!featureFlags.isEnabled(Flags.MIGRATE_NSSL)) { - return - } - SharedNotificationContainerBinder.bind( - sharedNotificationContainer, - sharedNotificationContainerViewModel, - controller, - ) - } - + context: Context, + featureFlags: FeatureFlags, + notificationPanelView: NotificationPanelView, + sharedNotificationContainer: SharedNotificationContainer, + sharedNotificationContainerViewModel: SharedNotificationContainerViewModel, + controller: NotificationStackScrollLayoutController, + private val smartspaceViewModel: KeyguardSmartspaceViewModel, +) : + NotificationStackScrollLayoutSection( + context, + featureFlags, + notificationPanelView, + sharedNotificationContainer, + sharedNotificationContainerViewModel, + controller, + ) { override fun applyConstraints(constraintSet: ConstraintSet) { if (!featureFlags.isEnabled(Flags.MIGRATE_NSSL)) { return @@ -85,41 +61,29 @@ constructor( constraintSet.apply { val bottomMargin = context.resources.getDimensionPixelSize(R.dimen.keyguard_status_view_bottom_margin) - val useSplitShade = - context.resources.getBoolean(R.bool.config_use_split_notification_shade) - val topAlignment = - if (useSplitShade) { - TOP - } else { - BOTTOM - } if (featureFlags.isEnabled(Flags.MIGRATE_CLOCKS_TO_BLUEPRINT)) { connect( R.id.nssl_placeholder, TOP, smartspaceViewModel.smartspaceViewId, - topAlignment, + BOTTOM, bottomMargin ) setGoneMargin(R.id.nssl_placeholder, TOP, bottomMargin) } else { - connect( - R.id.nssl_placeholder, - TOP, - R.id.keyguard_status_view, - topAlignment, - bottomMargin - ) + connect(R.id.nssl_placeholder, TOP, R.id.keyguard_status_view, BOTTOM, bottomMargin) } - connect(R.id.nssl_placeholder, START, PARENT_ID, START) connect(R.id.nssl_placeholder, END, PARENT_ID, END) - connect(R.id.nssl_placeholder, BOTTOM, R.id.lock_icon_view, TOP) - } - } - override fun removeViews(constraintLayout: ConstraintLayout) { - constraintLayout.removeView(placeHolderId) + val lockId = + if (featureFlags.isEnabled(Flags.REFACTOR_UDFPS_KEYGUARD_VIEWS)) { + R.id.device_entry_icon_view + } else { + R.id.lock_icon_view + } + connect(R.id.nssl_placeholder, BOTTOM, lockId, TOP) + } } } diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/NotificationStackScrollLayoutSection.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/NotificationStackScrollLayoutSection.kt new file mode 100644 index 000000000000..00966f235a57 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/NotificationStackScrollLayoutSection.kt @@ -0,0 +1,79 @@ +/* + * 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.keyguard.ui.view.layout.sections + +import android.content.Context +import android.view.View +import android.view.ViewGroup +import androidx.constraintlayout.widget.ConstraintLayout +import com.android.systemui.flags.FeatureFlags +import com.android.systemui.flags.Flags +import com.android.systemui.keyguard.shared.model.KeyguardSection +import com.android.systemui.res.R +import com.android.systemui.shade.NotificationPanelView +import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController +import com.android.systemui.statusbar.notification.stack.ui.view.SharedNotificationContainer +import com.android.systemui.statusbar.notification.stack.ui.viewbinder.SharedNotificationContainerBinder +import com.android.systemui.statusbar.notification.stack.ui.viewmodel.SharedNotificationContainerViewModel +import kotlinx.coroutines.DisposableHandle + +abstract class NotificationStackScrollLayoutSection +constructor( + protected val context: Context, + protected val featureFlags: FeatureFlags, + private val notificationPanelView: NotificationPanelView, + private val sharedNotificationContainer: SharedNotificationContainer, + private val sharedNotificationContainerViewModel: SharedNotificationContainerViewModel, + private val controller: NotificationStackScrollLayoutController, +) : KeyguardSection() { + private val placeHolderId = R.id.nssl_placeholder + private var disposableHandle: DisposableHandle? = null + + override fun addViews(constraintLayout: ConstraintLayout) { + if (!featureFlags.isEnabled(Flags.MIGRATE_NSSL)) { + return + } + // This moves the existing NSSL view to a different parent, as the controller is a + // singleton and recreating it has other bad side effects + notificationPanelView.findViewById<View?>(R.id.notification_stack_scroller)?.let { + (it.parent as ViewGroup).removeView(it) + sharedNotificationContainer.addNotificationStackScrollLayout(it) + } + + val view = View(context, null).apply { id = placeHolderId } + constraintLayout.addView(view) + } + + override fun bindData(constraintLayout: ConstraintLayout) { + if (!featureFlags.isEnabled(Flags.MIGRATE_NSSL)) { + return + } + disposableHandle?.dispose() + disposableHandle = + SharedNotificationContainerBinder.bind( + sharedNotificationContainer, + sharedNotificationContainerViewModel, + controller, + ) + } + + override fun removeViews(constraintLayout: ConstraintLayout) { + disposableHandle?.dispose() + constraintLayout.removeView(placeHolderId) + } +} diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/SplitShadeNotificationStackScrollLayoutSection.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/SplitShadeNotificationStackScrollLayoutSection.kt new file mode 100644 index 000000000000..bf95c77229e9 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/SplitShadeNotificationStackScrollLayoutSection.kt @@ -0,0 +1,89 @@ +/* + * 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.keyguard.ui.view.layout.sections + +import android.content.Context +import androidx.constraintlayout.widget.ConstraintSet +import androidx.constraintlayout.widget.ConstraintSet.BOTTOM +import androidx.constraintlayout.widget.ConstraintSet.END +import androidx.constraintlayout.widget.ConstraintSet.PARENT_ID +import androidx.constraintlayout.widget.ConstraintSet.START +import androidx.constraintlayout.widget.ConstraintSet.TOP +import com.android.systemui.flags.FeatureFlags +import com.android.systemui.flags.Flags +import com.android.systemui.keyguard.ui.viewmodel.KeyguardSmartspaceViewModel +import com.android.systemui.res.R +import com.android.systemui.shade.NotificationPanelView +import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController +import com.android.systemui.statusbar.notification.stack.ui.view.SharedNotificationContainer +import com.android.systemui.statusbar.notification.stack.ui.viewmodel.SharedNotificationContainerViewModel +import javax.inject.Inject + +/** Large-screen format for notifications, shown as two columns on the device */ +class SplitShadeNotificationStackScrollLayoutSection +@Inject +constructor( + context: Context, + featureFlags: FeatureFlags, + notificationPanelView: NotificationPanelView, + sharedNotificationContainer: SharedNotificationContainer, + sharedNotificationContainerViewModel: SharedNotificationContainerViewModel, + controller: NotificationStackScrollLayoutController, + private val smartspaceViewModel: KeyguardSmartspaceViewModel, +) : + NotificationStackScrollLayoutSection( + context, + featureFlags, + notificationPanelView, + sharedNotificationContainer, + sharedNotificationContainerViewModel, + controller, + ) { + override fun applyConstraints(constraintSet: ConstraintSet) { + if (!featureFlags.isEnabled(Flags.MIGRATE_NSSL)) { + return + } + constraintSet.apply { + val bottomMargin = + context.resources.getDimensionPixelSize(R.dimen.keyguard_status_view_bottom_margin) + + if (featureFlags.isEnabled(Flags.MIGRATE_CLOCKS_TO_BLUEPRINT)) { + connect( + R.id.nssl_placeholder, + TOP, + smartspaceViewModel.smartspaceViewId, + TOP, + bottomMargin + ) + setGoneMargin(R.id.nssl_placeholder, TOP, bottomMargin) + } else { + connect(R.id.nssl_placeholder, TOP, R.id.keyguard_status_view, TOP, bottomMargin) + } + connect(R.id.nssl_placeholder, START, PARENT_ID, START) + connect(R.id.nssl_placeholder, END, PARENT_ID, END) + + val lockId = + if (featureFlags.isEnabled(Flags.REFACTOR_UDFPS_KEYGUARD_VIEWS)) { + R.id.device_entry_icon_view + } else { + R.id.lock_icon_view + } + connect(R.id.nssl_placeholder, BOTTOM, lockId, TOP) + } + } +} 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 e768f162c270..17ff1b1ae888 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java @@ -16,17 +16,14 @@ package com.android.systemui.log.dagger; -import android.content.ContentResolver; import android.os.Build; -import android.os.Looper; import com.android.systemui.dagger.SysUISingleton; -import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.log.LogBuffer; import com.android.systemui.log.LogBufferFactory; import com.android.systemui.log.LogcatEchoTracker; -import com.android.systemui.log.LogcatEchoTrackerDebug; -import com.android.systemui.log.LogcatEchoTrackerProd; +import com.android.systemui.log.echo.LogcatEchoTrackerDebug; +import com.android.systemui.log.echo.LogcatEchoTrackerProd; import com.android.systemui.log.table.TableLogBuffer; import com.android.systemui.log.table.TableLogBufferFactory; import com.android.systemui.qs.QSFragmentLegacy; @@ -36,6 +33,7 @@ import com.android.systemui.statusbar.notification.NotifPipelineFlags; import com.android.systemui.util.Compile; import com.android.systemui.util.wakelock.WakeLockLog; +import dagger.Lazy; import dagger.Module; import dagger.Provides; @@ -349,10 +347,11 @@ public class LogModule { @Provides @SysUISingleton public static LogcatEchoTracker provideLogcatEchoTracker( - ContentResolver contentResolver, - @Main Looper looper) { + Lazy<LogcatEchoTrackerDebug> lazyTrackerDebug) { if (Build.isDebuggable()) { - return LogcatEchoTrackerDebug.create(contentResolver, looper); + LogcatEchoTrackerDebug trackerDebug = lazyTrackerDebug.get(); + trackerDebug.start(); + return trackerDebug; } else { return new LogcatEchoTrackerProd(); } diff --git a/packages/SystemUI/src/com/android/systemui/log/echo/LogcatEchoSettingFormat.kt b/packages/SystemUI/src/com/android/systemui/log/echo/LogcatEchoSettingFormat.kt new file mode 100644 index 000000000000..26412124ce73 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/log/echo/LogcatEchoSettingFormat.kt @@ -0,0 +1,139 @@ +/* + * 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.log.echo + +import android.util.Log +import com.android.systemui.log.core.LogLevel +import java.util.StringJoiner + +/** + * Encodes/decodes the list of tags/buffers that [LogcatEchoTrackerDebug] echoes to logcat to/from a + * string format (that can be stored in a permanent place like a setting). + */ +class LogcatEchoSettingFormat { + fun parseOverrides(str: String): List<LogcatEchoOverride> { + // The format begins with a schema version specifier formatted as "<number>;", followed by + // the encoded data. + + // First, read the schema version: + val split = str.split(";", limit = 2) + if (split.size != 2) { + Log.e(TAG, "Unrecognized echo override format: \"$str\"") + return emptyList() + } + val formatVersion = + try { + split[0].toInt() + } catch (e: NumberFormatException) { + Log.e(TAG, "Unrecognized echo override formation version: ${split[0]}") + return emptyList() + } + + // Then, dispatch to the appropriate parser based on format + return when (formatVersion) { + 0 -> parseOverridesV0(split[1]) + else -> { + Log.e(TAG, "Unrecognized echo override formation version: $formatVersion") + emptyList() + } + } + } + + fun stringifyOverrides( + overrides: List<LogcatEchoOverride>, + ): String { + return stringifyOverridesV0(overrides) + } + + private fun parseOverridesV0( + str: String, + ): List<LogcatEchoOverride> { + // Format: <type>;<name>;<level>(;...) + // Where + // <type> = "b" | "t" + // <name> = string + // <level> = "v" | "d" | "i" | "w" | "e" | "!" + + val list = mutableListOf<LogcatEchoOverride>() + + // Split on any ";" that is not preceded by a "\" + val pieces = str.split(Regex("""(?<!\\);""")) + + var i = 0 + while (i < pieces.size) { + if (pieces.size - i < 3) { + break + } + val type = + when (pieces[i]) { + "b" -> EchoOverrideType.BUFFER + "t" -> EchoOverrideType.TAG + else -> break + } + val name = pieces[i + 1].replace("\\;", ";") + val level = + when (pieces[i + 2]) { + "v" -> LogLevel.VERBOSE + "d" -> LogLevel.DEBUG + "i" -> LogLevel.INFO + "w" -> LogLevel.WARNING + "e" -> LogLevel.ERROR + "!" -> LogLevel.WTF + else -> break + } + i += 3 + + list.add(LogcatEchoOverride(type, name, level)) + } + + return list + } + + private fun stringifyOverridesV0( + overrides: List<LogcatEchoOverride>, + ): String { + val sj = StringJoiner(";") + + sj.add("0") + + for (override in overrides) { + sj.add( + when (override.type) { + EchoOverrideType.BUFFER -> "b" + EchoOverrideType.TAG -> "t" + } + ) + sj.add(override.name.replace(";", "\\;")) + sj.add( + when (override.level) { + LogLevel.VERBOSE -> "v" + LogLevel.DEBUG -> "d" + LogLevel.INFO -> "i" + LogLevel.WARNING -> "w" + LogLevel.ERROR -> "e" + LogLevel.WTF -> "!" + } + ) + } + + return sj.toString() + } +} + +data class LogcatEchoOverride(val type: EchoOverrideType, val name: String, val level: LogLevel) + +private const val TAG = "EchoFormat" diff --git a/packages/SystemUI/src/com/android/systemui/log/echo/LogcatEchoTrackerCommand.kt b/packages/SystemUI/src/com/android/systemui/log/echo/LogcatEchoTrackerCommand.kt new file mode 100644 index 000000000000..3654e583fcb2 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/log/echo/LogcatEchoTrackerCommand.kt @@ -0,0 +1,200 @@ +/* + * 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.log.echo + +import android.util.IndentingPrintWriter +import com.android.systemui.log.core.LogLevel +import com.android.systemui.log.echo.Outcome.Failure +import com.android.systemui.log.echo.Outcome.Success +import com.android.systemui.statusbar.commandline.ParseableCommand +import com.android.systemui.statusbar.commandline.Type +import java.io.PrintWriter + +/** + * Implementation of command-line interface for modifying echo tracking. + * + * Invoked via $adb shell cmd statusbar echo <usage>. See [usage] below for usage summary. + */ +internal class LogcatEchoTrackerCommand(private val echoTracker: LogcatEchoTrackerDebug) : + ParseableCommand(ECHO_TRACKER_COMMAND_NAME) { + + val buffer by + param( + longName = "buffer", + shortName = "b", + description = + "Modifies the echo level of a buffer. Use the form <name>:<level>, e.g." + + " 'Foo:V'. Valid levels are V,D,I,W,E, and -. The - level clears any" + + " pre-existing override.", + valueParser = Type.String, + ) + + val tag by + param( + longName = "tag", + shortName = "t", + description = + "Modifies the echo level of a tag. Use the form <name>:<level>, e.g." + + " 'Foo:V'. Valid levels are V,D,I,W,E, and -. The - level clears any" + + " pre-existing override.", + valueParser = Type.String + ) + + val clearAll by + flag( + longName = "clear-all", + description = "Removes all local echo level overrides", + ) + + val list by + flag( + longName = "list", + description = "Lists all local echo level overrides", + ) + + override fun usage(pw: IndentingPrintWriter) { + pw.println("Usage:") + pw.println() + pw.println("echo -b MyBufferName:V // Set echo level of a buffer to verbose") + pw.println("echo -t MyTagName:V // Set echo level of a tag to verbose") + pw.println() + pw.println("echo -b MyBufferName:- // Clear any echo overrides for a buffer") + pw.println("echo -t MyTagName:- // Clear any echo overrides for a tag") + pw.println() + pw.println("echo --list // List all current echo overrides") + pw.println("echo --clear-all // Clear all echo overrides") + pw.println() + } + + override fun execute(pw: PrintWriter) { + val buffer = buffer + val tag = tag + + when { + buffer != null -> { + parseTagStructure(buffer, EchoOverrideType.BUFFER).ifFailureThenPrintElse(pw) { + echoTracker.setEchoLevel(it.type, it.name, it.level) + } + } + tag != null -> { + parseTagStructure(tag, EchoOverrideType.TAG).ifFailureThenPrintElse(pw) { + echoTracker.setEchoLevel(it.type, it.name, it.level) + } + } + clearAll -> { + echoTracker.clearAllOverrides() + } + list -> { + for (override in echoTracker.listEchoOverrides()) { + pw.print(override.type.toString().padEnd(8)) + pw.print(override.level.toString().padEnd(10)) + pw.print(override.name) + pw.println() + } + } + else -> { + pw.println("You must specify one of --buffer, --tag, --list, or --clear-all") + } + } + } + + private fun parseTagStructure( + str: String, + type: EchoOverrideType, + ): Outcome<ParsedOverride> { + val result = + OVERRIDE_PATTERN.matchEntire(str) + ?: return Failure("Cannot parse override format, must be `<name>:<level>`") + + val name = result.groupValues[1] + val levelStr = result.groupValues[2] + + if (levelStr == "-") { + return Success(ParsedOverride(type, name, null)) + } else { + val parsedLevel = + parseLevel(levelStr) + ?: return Failure("Unrecognized level $levelStr. Must be one of 'v,d,i,w,e,-'") + return Success(ParsedOverride(type, name, parsedLevel)) + } + } + + private fun parseLevel(str: String): LogLevel? { + return when (str.lowercase()) { + "verbose" -> LogLevel.VERBOSE + "v" -> LogLevel.VERBOSE + "debug" -> LogLevel.DEBUG + "d" -> LogLevel.DEBUG + "info" -> LogLevel.INFO + "i" -> LogLevel.INFO + "warning" -> LogLevel.WARNING + "warn" -> LogLevel.WARNING + "w" -> LogLevel.WARNING + "error" -> LogLevel.ERROR + "e" -> LogLevel.ERROR + "assert" -> LogLevel.WTF + "wtf" -> LogLevel.WTF + else -> null + } + } + + companion object { + const val ECHO_TRACKER_COMMAND_NAME = "echo" + } +} + +private val OVERRIDE_PATTERN = Regex("([^:]+):(.*)") + +private class ParsedOverride(val type: EchoOverrideType, val name: String, val level: LogLevel?) + +private sealed interface Outcome<out T> { + class Success<out T>(val value: T) : Outcome<T> + class Failure(val message: String) : Outcome<Nothing> +} + +private inline fun <T> Outcome<T>.ifFailureThenPrintElse( + pw: PrintWriter, + handler: (value: T) -> Unit, +) { + when (this) { + is Success<T> -> handler(value) + is Failure -> pw.println(message) + } +} + +/* +TODO (b/310006154): Investigate using varargs instead of parameterized flags + +Current structure uses param flags, e.g. + +adb shell cmd statusbar echo -b MyBufferName:V +adb shell cmd statusbar echo -b MyBufferName:- +adb shell cmd statusbar echo -t MyTagName:V +adb shell cmd statusbar echo -t MyTagName:- +adb shell cmd statusbar echo --clear-all +adb shell cmd statusbar echo --list + +A better structure might use non-flag varargs like (but will require updates to the CLI lib): + +adb shell cmd statusbar echo buffer MyBufferName:V +adb shell cmd statusbar echo buffer MyBufferName:- +adb shell cmd statusbar echo tag MyTagName:V +adb shell cmd statusbar echo tag MyTagName:- +adb shell cmd statusbar echo clear-all +adb shell cmd statusbar echo list + +*/ diff --git a/packages/SystemUI/src/com/android/systemui/log/echo/LogcatEchoTrackerDebug.kt b/packages/SystemUI/src/com/android/systemui/log/echo/LogcatEchoTrackerDebug.kt new file mode 100644 index 000000000000..ee58b1465316 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/log/echo/LogcatEchoTrackerDebug.kt @@ -0,0 +1,176 @@ +/* + * 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.log.echo + +import com.android.systemui.dagger.qualifiers.Application +import com.android.systemui.dagger.qualifiers.Background +import com.android.systemui.log.LogcatEchoTracker +import com.android.systemui.log.core.LogLevel +import com.android.systemui.log.echo.LogcatEchoTrackerCommand.Companion.ECHO_TRACKER_COMMAND_NAME +import com.android.systemui.statusbar.commandline.CommandRegistry +import com.android.systemui.util.settings.GlobalSettings +import javax.inject.Inject +import kotlinx.coroutines.CoroutineDispatcher +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.launch + +/** + * A version of [LogcatEchoTracker] that supports fine-grained echoing of log messages to logcat, + * filtered by buffer, tag, and log level. + * + * Filters can be added and removed via a shell command (`adb shell cmd statusbar echo`). See + * [LogcatEchoTrackerCommand] for details. + * + * Note that some log messages may fail to be echoed while the systemui process is first starting + * up, before we load the echo settings. + */ +@OptIn(ExperimentalCoroutinesApi::class) +class LogcatEchoTrackerDebug +@Inject +constructor( + @Application private val applicationScope: CoroutineScope, + @Background backgroundDispatcher: CoroutineDispatcher, + private val globalSettings: GlobalSettings, + private val commandRegistry: CommandRegistry, +) : LogcatEchoTracker { + + // This class uses a single-writer, many-readers pattern that allows us to avoid the need for + // locking. In this case, this means that our shared state (the override maps) can be _read_ by + // any number of threads, but they're always written to by a single thread (dispatched by + // sequentialBgDispatcher). Such a pattern allows us to use the more performant @Volatile below + // instead of synchronization locks. + // + // Okay: some of what I just told you is a lie. sequentialBgDispatcher does not dispatch to a + // single thread. Instead, it guarantees that all work it schedules is _sequential_, meaning + // that Job B cannot start until Job A ends (this is actually a stronger guarantee than single- + // threaded execution due to the possibility of suspend functions). Because + // sequentialBgDispatcher is dispatching from the Dispatchers.IO thread pool, each individual + // "write" job might run on a different thread from that pool. However, because we are + // enforcing sequential execution, exactly which thread an individual write job runs on doesn't + // matter. + private val sequentialBgDispatcher = backgroundDispatcher.limitedParallelism(1) + + // Okay. So. Why are these @Volatile. We've eliminated the need for synchronization primitives, + // but now we must contend with thread memory caching. Without an explicit synchronization + // signal, other threads may see "stale" versions of our state when they try to read from these + // maps, even after they've been updated by the writer thread. @Volatile solves this problem: + // it eliminates the possibility of stale reads while still being much more performant than + // locking. + @Volatile private var bufferOverrides = mapOf<String, LogLevel>() + @Volatile private var tagOverrides = mapOf<String, LogLevel>() + + private val settingFormat = LogcatEchoSettingFormat() + + fun start() { + loadEchoOverrides() + + commandRegistry.registerCommand(ECHO_TRACKER_COMMAND_NAME) { + LogcatEchoTrackerCommand(this) + } + } + + override fun isBufferLoggable(bufferName: String, level: LogLevel): Boolean { + return level >= (bufferOverrides[bufferName] ?: DEFAULT_LOG_LEVEL) + } + + override fun isTagLoggable(tagName: String, level: LogLevel): Boolean { + return level >= (tagOverrides[tagName] ?: DEFAULT_LOG_LEVEL) + } + + fun listEchoOverrides(): List<LogcatEchoOverride> { + val list = mutableListOf<LogcatEchoOverride>() + + val frozenBufferOverrides = bufferOverrides + val frozenTagOverrides = tagOverrides + + for ((name, level) in frozenBufferOverrides) { + list.add(LogcatEchoOverride(EchoOverrideType.BUFFER, name, level)) + } + for ((name, level) in frozenTagOverrides) { + list.add(LogcatEchoOverride(EchoOverrideType.TAG, name, level)) + } + return list + } + + fun setEchoLevel(type: EchoOverrideType, name: String, level: LogLevel?) { + applicationScope.launch(sequentialBgDispatcher) { + val newBufferOverrides = bufferOverrides.toMutableMap() + val newTagOverrides = tagOverrides.toMutableMap() + + val mutatedMap = + when (type) { + EchoOverrideType.BUFFER -> newBufferOverrides + EchoOverrideType.TAG -> newTagOverrides + } + if (level != null) { + mutatedMap[name] = level + } else { + mutatedMap.remove(name) + } + + bufferOverrides = newBufferOverrides + tagOverrides = newTagOverrides + + val list = listEchoOverrides() + globalSettings.putString(OVERRIDE_SETTING_PATH, settingFormat.stringifyOverrides(list)) + } + } + + fun clearAllOverrides() { + applicationScope.launch(sequentialBgDispatcher) { + bufferOverrides = emptyMap() + tagOverrides = emptyMap() + + val list = listEchoOverrides() + globalSettings.putString(OVERRIDE_SETTING_PATH, settingFormat.stringifyOverrides(list)) + } + } + + private fun loadEchoOverrides() { + applicationScope.launch(sequentialBgDispatcher) { + val overrideSetting = globalSettings.getString(OVERRIDE_SETTING_PATH) ?: return@launch + val overrideList = settingFormat.parseOverrides(overrideSetting) + + val newBufferOverrides = mutableMapOf<String, LogLevel>() + val newTagOverrides = mutableMapOf<String, LogLevel>() + + for (override in overrideList) { + val map = + when (override.type) { + EchoOverrideType.BUFFER -> newBufferOverrides + EchoOverrideType.TAG -> newTagOverrides + } + map[override.name] = override.level + } + + bufferOverrides = newBufferOverrides + tagOverrides = newTagOverrides + } + } +} + +enum class EchoOverrideType { + BUFFER, + TAG, +} + +private const val TAG = "LogcatEchoTrackerDebug" + +private const val OVERRIDE_SETTING_PATH = "systemui/logbuffer_echo_overrides" + +private val DEFAULT_LOG_LEVEL = LogLevel.WARNING diff --git a/packages/SystemUI/log/src/com/android/systemui/log/LogcatEchoTrackerProd.kt b/packages/SystemUI/src/com/android/systemui/log/echo/LogcatEchoTrackerProd.kt index 044d97f92b50..8238d2759b4c 100644 --- a/packages/SystemUI/log/src/com/android/systemui/log/LogcatEchoTrackerProd.kt +++ b/packages/SystemUI/src/com/android/systemui/log/echo/LogcatEchoTrackerProd.kt @@ -14,14 +14,13 @@ * limitations under the License. */ -package com.android.systemui.log +package com.android.systemui.log.echo +import com.android.systemui.log.LogcatEchoTracker import com.android.systemui.log.core.LogLevel /** Production version of [LogcatEchoTracker] that isn't configurable. */ class LogcatEchoTrackerProd : LogcatEchoTracker { - override val logInBackgroundThread = false - override fun isBufferLoggable(bufferName: String, level: LogLevel): Boolean { return level >= LogLevel.WARNING } diff --git a/packages/SystemUI/src/com/android/systemui/log/table/TableLogBuffer.kt b/packages/SystemUI/src/com/android/systemui/log/table/TableLogBuffer.kt index a7ffc5fa8054..2089cce51b85 100644 --- a/packages/SystemUI/src/com/android/systemui/log/table/TableLogBuffer.kt +++ b/packages/SystemUI/src/com/android/systemui/log/table/TableLogBuffer.kt @@ -29,8 +29,6 @@ import java.io.PrintWriter import java.util.Locale import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.channels.Channel -import kotlinx.coroutines.launch /** * A logger that logs changes in table format. @@ -91,8 +89,6 @@ class TableLogBuffer( throw IllegalArgumentException("maxSize must be > 0") } } - // For local logcat, send messages across this channel so the background job can process them - private val logMessageChannel = Channel<TableChange>(capacity = 10) private val buffer = RingBuffer(maxSize) { TableChange() } @@ -119,16 +115,6 @@ class TableLogBuffer( tableLogBuffer = this, ) - /** Start this log buffer logging in the background */ - internal fun init() { - coroutineScope.launch(bgDispatcher) { - while (!logMessageChannel.isClosedForReceive) { - val log = logMessageChannel.receive() - echoToDesiredEndpoints(log) - } - } - } - /** * Log the differences between [prevVal] and [newVal]. * @@ -213,7 +199,7 @@ class TableLogBuffer( Trace.beginSection("TableLogBuffer#logChange(string)") val change = obtain(timestamp, prefix, columnName, isInitial) change.set(value) - tryAddMessage(change) + echoToDesiredEndpoints(change) Trace.endSection() } @@ -227,7 +213,7 @@ class TableLogBuffer( Trace.beginSection("TableLogBuffer#logChange(boolean)") val change = obtain(timestamp, prefix, columnName, isInitial) change.set(value) - tryAddMessage(change) + echoToDesiredEndpoints(change) Trace.endSection() } @@ -241,14 +227,10 @@ class TableLogBuffer( Trace.beginSection("TableLogBuffer#logChange(int)") val change = obtain(timestamp, prefix, columnName, isInitial) change.set(value) - tryAddMessage(change) + echoToDesiredEndpoints(change) Trace.endSection() } - private fun tryAddMessage(change: TableChange) { - logMessageChannel.trySend(change) - } - // TODO(b/259454430): Add additional change types here. @Synchronized diff --git a/packages/SystemUI/src/com/android/systemui/log/table/TableLogBufferFactory.kt b/packages/SystemUI/src/com/android/systemui/log/table/TableLogBufferFactory.kt index 1e2f71f01c35..ff523ae1ce4a 100644 --- a/packages/SystemUI/src/com/android/systemui/log/table/TableLogBufferFactory.kt +++ b/packages/SystemUI/src/com/android/systemui/log/table/TableLogBufferFactory.kt @@ -62,7 +62,6 @@ constructor( coroutineScope, ) dumpManager.registerTableLogBuffer(name, tableBuffer) - tableBuffer.init() return tableBuffer } diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/ui/KeyguardMediaController.kt b/packages/SystemUI/src/com/android/systemui/media/controls/ui/KeyguardMediaController.kt index 83a6e58cc444..773c292befcf 100644 --- a/packages/SystemUI/src/com/android/systemui/media/controls/ui/KeyguardMediaController.kt +++ b/packages/SystemUI/src/com/android/systemui/media/controls/ui/KeyguardMediaController.kt @@ -23,11 +23,14 @@ import android.net.Uri import android.os.Handler import android.os.UserHandle import android.provider.Settings +import android.util.Log import android.view.View import android.view.ViewGroup import androidx.annotation.VisibleForTesting +import com.android.systemui.Dumpable import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Main +import com.android.systemui.dump.DumpManager import com.android.systemui.media.dagger.MediaModule.KEYGUARD import com.android.systemui.plugins.statusbar.StatusBarStateController import com.android.systemui.statusbar.StatusBarState @@ -36,7 +39,11 @@ import com.android.systemui.statusbar.notification.stack.MediaContainerView import com.android.systemui.statusbar.phone.KeyguardBypassController import com.android.systemui.statusbar.policy.ConfigurationController import com.android.systemui.statusbar.policy.SplitShadeStateController +import com.android.systemui.util.asIndenting +import com.android.systemui.util.println import com.android.systemui.util.settings.SecureSettings +import com.android.systemui.util.withIncreasedIndent +import java.io.PrintWriter import javax.inject.Inject import javax.inject.Named @@ -55,13 +62,18 @@ constructor( private val secureSettings: SecureSettings, @Main private val handler: Handler, configurationController: ConfigurationController, - private val splitShadeStateController: SplitShadeStateController -) { + private val splitShadeStateController: SplitShadeStateController, + dumpManager: DumpManager, +) : Dumpable { + /** It's added for debugging purpose to directly see last received StatusBarState. */ + private var lastReceivedStatusBarState = -1 init { + dumpManager.registerDumpable(this) statusBarStateController.addCallback( object : StatusBarStateController.StateListener { override fun onStateChanged(newState: Int) { + lastReceivedStatusBarState = newState refreshMediaPosition() } @@ -206,7 +218,17 @@ constructor( } fun refreshMediaPosition() { - val keyguardOrUserSwitcher = (statusBarStateController.state == StatusBarState.KEYGUARD) + val currentState = statusBarStateController.state + if (lastReceivedStatusBarState != -1 && currentState != lastReceivedStatusBarState) { + Log.wtfStack( + TAG, + "currentState[${StatusBarState.toString(currentState)}] is " + + "different from the last " + + "received one[${StatusBarState.toString(lastReceivedStatusBarState)}]." + ) + } + + val keyguardOrUserSwitcher = (currentState == StatusBarState.KEYGUARD) // mediaHost.visible required for proper animations handling visible = mediaHost.visible && @@ -263,4 +285,34 @@ constructor( visibilityChangedListener?.invoke(newVisibility == View.VISIBLE) } } + + override fun dump(pw: PrintWriter, args: Array<out String>) { + pw.asIndenting().run { + println("KeyguardMediaController") + withIncreasedIndent { + println("Self", this@KeyguardMediaController) + println("visible", visible) + println("useSplitShade", useSplitShade) + println("allowMediaPlayerOnLockScreen", allowMediaPlayerOnLockScreen) + println("bypassController.bypassEnabled", bypassController.bypassEnabled) + println("isDozeWakeUpAnimationWaiting", isDozeWakeUpAnimationWaiting) + println("singlePaneContainer", singlePaneContainer) + println("splitShadeContainer", splitShadeContainer) + if (lastReceivedStatusBarState != -1) { + println( + "lastReceivedStatusBarState", + StatusBarState.toString(lastReceivedStatusBarState) + ) + } + println( + "statusBarStateController.state", + StatusBarState.toString(statusBarStateController.state) + ) + } + } + } + + private companion object { + private const val TAG = "KeyguardMediaController" + } } diff --git a/packages/SystemUI/src/com/android/systemui/mediaprojection/permission/BaseScreenSharePermissionDialog.kt b/packages/SystemUI/src/com/android/systemui/mediaprojection/permission/BaseMediaProjectionPermissionDialogDelegate.kt index eea369f15a16..654fffe89471 100644 --- a/packages/SystemUI/src/com/android/systemui/mediaprojection/permission/BaseScreenSharePermissionDialog.kt +++ b/packages/SystemUI/src/com/android/systemui/mediaprojection/permission/BaseMediaProjectionPermissionDialogDelegate.kt @@ -15,6 +15,7 @@ */ package com.android.systemui.mediaprojection.permission +import android.app.AlertDialog import android.content.Context import android.os.Bundle import android.view.Gravity @@ -28,36 +29,36 @@ import android.widget.ArrayAdapter import android.widget.ImageView import android.widget.Spinner import android.widget.TextView +import androidx.annotation.CallSuper import androidx.annotation.ColorRes import androidx.annotation.DrawableRes import androidx.annotation.LayoutRes import androidx.annotation.StringRes import com.android.systemui.mediaprojection.MediaProjectionMetricsLogger import com.android.systemui.res.R -import com.android.systemui.statusbar.phone.SystemUIDialog +import com.android.systemui.statusbar.phone.DialogDelegate /** Base permission dialog for screen share and recording */ -open class BaseScreenSharePermissionDialog( - context: Context, +abstract class BaseMediaProjectionPermissionDialogDelegate<T : AlertDialog>( private val screenShareOptions: List<ScreenShareOption>, private val appName: String?, private val hostUid: Int, private val mediaProjectionMetricsLogger: MediaProjectionMetricsLogger, @DrawableRes private val dialogIconDrawable: Int? = null, @ColorRes private val dialogIconTint: Int? = null, -) : SystemUIDialog(context), AdapterView.OnItemSelectedListener { +) : DialogDelegate<T>, AdapterView.OnItemSelectedListener { private lateinit var dialogTitle: TextView private lateinit var startButton: TextView private lateinit var cancelButton: TextView private lateinit var warning: TextView private lateinit var screenShareModeSpinner: Spinner private var hasCancelBeenLogged: Boolean = false + protected lateinit var dialog: AlertDialog var selectedScreenShareOption: ScreenShareOption = screenShareOptions.first() - override fun dismiss() { - super.dismiss() - - // Dismiss can be called multiple times and we only want to log once. + @CallSuper + override fun onStop(dialog: T) { + // onStop can be called multiple times and we only want to log once. if (hasCancelBeenLogged) { return } @@ -66,42 +67,43 @@ open class BaseScreenSharePermissionDialog( hasCancelBeenLogged = true } - public override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - window?.addPrivateFlags(WindowManager.LayoutParams.SYSTEM_FLAG_SHOW_FOR_ALL_USERS) - window?.setGravity(Gravity.CENTER) - setContentView(R.layout.screen_share_dialog) - dialogTitle = requireViewById(R.id.screen_share_dialog_title) - warning = requireViewById(R.id.text_warning) - startButton = requireViewById(android.R.id.button1) - cancelButton = requireViewById(android.R.id.button2) + @CallSuper + override fun onCreate(dialog: T, savedInstanceState: Bundle?) { + this.dialog = dialog + dialog.window?.addPrivateFlags(WindowManager.LayoutParams.SYSTEM_FLAG_SHOW_FOR_ALL_USERS) + dialog.window?.setGravity(Gravity.CENTER) + dialog.setContentView(R.layout.screen_share_dialog) + dialogTitle = dialog.requireViewById(R.id.screen_share_dialog_title) + warning = dialog.requireViewById(R.id.text_warning) + startButton = dialog.requireViewById(android.R.id.button1) + cancelButton = dialog.requireViewById(android.R.id.button2) updateIcon() initScreenShareOptions() createOptionsView(getOptionsViewLayoutId()) } private fun updateIcon() { - val icon = requireViewById<ImageView>(R.id.screen_share_dialog_icon) + val icon = dialog.requireViewById<ImageView>(R.id.screen_share_dialog_icon) if (dialogIconTint != null) { - icon.setColorFilter(context.getColor(dialogIconTint)) + icon.setColorFilter(dialog.context.getColor(dialogIconTint)) } if (dialogIconDrawable != null) { - icon.setImageDrawable(context.getDrawable(dialogIconDrawable)) + icon.setImageDrawable(dialog.context.getDrawable(dialogIconDrawable)) } } - protected fun initScreenShareOptions() { + private fun initScreenShareOptions() { selectedScreenShareOption = screenShareOptions.first() warning.text = warningText initScreenShareSpinner() } private val warningText: String - get() = context.getString(selectedScreenShareOption.warningText, appName) + get() = dialog.context.getString(selectedScreenShareOption.warningText, appName) private fun initScreenShareSpinner() { - val adapter = OptionsAdapter(context.applicationContext, screenShareOptions) - screenShareModeSpinner = requireViewById(R.id.screen_share_mode_spinner) + val adapter = OptionsAdapter(dialog.context.applicationContext, screenShareOptions) + screenShareModeSpinner = dialog.requireViewById(R.id.screen_share_mode_spinner) screenShareModeSpinner.adapter = adapter screenShareModeSpinner.onItemSelectedListener = this } @@ -115,7 +117,7 @@ open class BaseScreenSharePermissionDialog( /** Protected methods for the text updates & functionality */ protected fun setDialogTitle(@StringRes stringId: Int) { - val title = context.getString(stringId, appName) + val title = dialog.context.getString(stringId, appName) dialogTitle.text = title } @@ -137,7 +139,7 @@ open class BaseScreenSharePermissionDialog( private fun createOptionsView(@LayoutRes layoutId: Int?) { if (layoutId == null) return - val stub = requireViewById<View>(R.id.options_stub) as ViewStub + val stub = dialog.requireViewById<View>(R.id.options_stub) as ViewStub stub.layoutResource = layoutId stub.inflate() } diff --git a/packages/SystemUI/src/com/android/systemui/mediaprojection/permission/MediaProjectionPermissionActivity.java b/packages/SystemUI/src/com/android/systemui/mediaprojection/permission/MediaProjectionPermissionActivity.java index eacfa578ac44..039372d87835 100644 --- a/packages/SystemUI/src/com/android/systemui/mediaprojection/permission/MediaProjectionPermissionActivity.java +++ b/packages/SystemUI/src/com/android/systemui/mediaprojection/permission/MediaProjectionPermissionActivity.java @@ -60,6 +60,7 @@ import com.android.systemui.mediaprojection.appselector.MediaProjectionAppSelect import com.android.systemui.mediaprojection.devicepolicy.ScreenCaptureDevicePolicyResolver; import com.android.systemui.mediaprojection.devicepolicy.ScreenCaptureDisabledDialog; import com.android.systemui.res.R; +import com.android.systemui.statusbar.phone.AlertDialogWithDelegate; import com.android.systemui.statusbar.phone.SystemUIDialog; import com.android.systemui.util.Utils; @@ -222,27 +223,30 @@ public class MediaProjectionPermissionActivity extends Activity // the correct screen width when in split screen. Context dialogContext = getApplicationContext(); if (isPartialScreenSharingEnabled()) { - mDialog = new MediaProjectionPermissionDialog( - dialogContext, - getMediaProjectionConfig(), - () -> { - MediaProjectionPermissionDialog dialog = - (MediaProjectionPermissionDialog) mDialog; - ScreenShareOption selectedOption = dialog.getSelectedScreenShareOption(); - grantMediaProjectionPermission(selectedOption.getMode()); - }, - () -> finish(RECORD_CANCEL, /* projection= */ null), - appName, - mUid, - mMediaProjectionMetricsLogger); + MediaProjectionPermissionDialogDelegate delegate = + new MediaProjectionPermissionDialogDelegate( + dialogContext, + getMediaProjectionConfig(), + dialog -> { + ScreenShareOption selectedOption = + dialog.getSelectedScreenShareOption(); + grantMediaProjectionPermission(selectedOption.getMode()); + }, + () -> finish(RECORD_CANCEL, /* projection= */ null), + appName, + mUid, + mMediaProjectionMetricsLogger); + mDialog = + new AlertDialogWithDelegate( + dialogContext, R.style.Theme_SystemUI_Dialog, delegate); } else { - AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(dialogContext, - R.style.Theme_SystemUI_Dialog) - .setTitle(dialogTitle) - .setIcon(R.drawable.ic_media_projection_permission) - .setMessage(dialogText) - .setPositiveButton(R.string.media_projection_action_text, this) - .setNeutralButton(android.R.string.cancel, this); + AlertDialog.Builder dialogBuilder = + new AlertDialog.Builder(dialogContext, R.style.Theme_SystemUI_Dialog) + .setTitle(dialogTitle) + .setIcon(R.drawable.ic_media_projection_permission) + .setMessage(dialogText) + .setPositiveButton(R.string.media_projection_action_text, this) + .setNeutralButton(android.R.string.cancel, this); mDialog = dialogBuilder.create(); } diff --git a/packages/SystemUI/src/com/android/systemui/mediaprojection/permission/MediaProjectionPermissionDialog.kt b/packages/SystemUI/src/com/android/systemui/mediaprojection/permission/MediaProjectionPermissionDialogDelegate.kt index cff22b0dc019..8453af19d26f 100644 --- a/packages/SystemUI/src/com/android/systemui/mediaprojection/permission/MediaProjectionPermissionDialog.kt +++ b/packages/SystemUI/src/com/android/systemui/mediaprojection/permission/MediaProjectionPermissionDialogDelegate.kt @@ -15,31 +15,32 @@ */ package com.android.systemui.mediaprojection.permission +import android.app.AlertDialog import android.content.Context import android.media.projection.MediaProjectionConfig import android.os.Bundle import com.android.systemui.mediaprojection.MediaProjectionMetricsLogger import com.android.systemui.res.R +import java.util.function.Consumer /** Dialog to select screen recording options */ -class MediaProjectionPermissionDialog( +class MediaProjectionPermissionDialogDelegate( context: Context, mediaProjectionConfig: MediaProjectionConfig?, - private val onStartRecordingClicked: Runnable, + private val onStartRecordingClicked: Consumer<MediaProjectionPermissionDialogDelegate>, private val onCancelClicked: Runnable, private val appName: String?, hostUid: Int, mediaProjectionMetricsLogger: MediaProjectionMetricsLogger, ) : - BaseScreenSharePermissionDialog( - context, + BaseMediaProjectionPermissionDialogDelegate<AlertDialog>( createOptionList(context, appName, mediaProjectionConfig), appName, hostUid, mediaProjectionMetricsLogger ) { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) + override fun onCreate(dialog: AlertDialog, savedInstanceState: Bundle?) { + super.onCreate(dialog, savedInstanceState) // TODO(b/270018943): Handle the case of System sharing (not recording nor casting) if (appName == null) { setDialogTitle(R.string.media_projection_entry_cast_permission_dialog_title) @@ -51,12 +52,12 @@ class MediaProjectionPermissionDialog( setStartButtonOnClickListener { // Note that it is important to run this callback before dismissing, so that the // callback can disable the dialog exit animation if it wants to. - onStartRecordingClicked.run() - dismiss() + onStartRecordingClicked.accept(this) + dialog.dismiss() } setCancelButtonOnClickListener { onCancelClicked.run() - dismiss() + dialog.dismiss() } } diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java index a985236cb38e..5e3a166f5f35 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java @@ -1383,7 +1383,17 @@ public class NavigationBar extends ViewController<NavigationBarView> implements args.putInt( AssistManager.INVOCATION_TYPE_KEY, AssistManager.INVOCATION_TYPE_HOME_BUTTON_LONG_PRESS); - mAssistManagerLazy.get().startAssist(args); + // If Launcher has requested to override long press home, add a delay for the ripple. + // TODO(b/304146255): Remove this delay once we can exclude 3-button nav from screenshot. + boolean delayAssistInvocation = mAssistManagerLazy.get().shouldOverrideAssist( + AssistManager.INVOCATION_TYPE_HOME_BUTTON_LONG_PRESS); + // In practice, I think v should always be a KeyButtonView, but just being safe. + if (delayAssistInvocation && v instanceof KeyButtonView) { + ((KeyButtonView) v).setOnRippleInvisibleRunnable( + () -> mAssistManagerLazy.get().startAssist(args)); + } else { + mAssistManagerLazy.get().startAssist(args); + } mCentralSurfacesOptionalLazy.get().ifPresent(CentralSurfaces::awakenDreams); mView.abortCurrentGesture(); return true; diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarControllerImpl.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarControllerImpl.java index 2928cceb35aa..79aedffc4498 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarControllerImpl.java @@ -21,6 +21,7 @@ import static android.provider.Settings.Secure.ACCESSIBILITY_BUTTON_MODE_GESTURE import static android.provider.Settings.Secure.ACCESSIBILITY_BUTTON_MODE_NAVIGATION_BAR; import static com.android.systemui.navigationbar.gestural.EdgeBackGestureHandler.DEBUG_MISSING_GESTURE_TAG; import static com.android.systemui.shared.recents.utilities.Utilities.isLargeScreen; +import static com.android.wm.shell.Flags.enableTaskbarNavbarUnification; import android.content.Context; import android.content.pm.ActivityInfo; @@ -49,8 +50,6 @@ import com.android.systemui.Dumpable; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dump.DumpManager; -import com.android.systemui.flags.FeatureFlags; -import com.android.systemui.flags.Flags; import com.android.systemui.model.SysUiState; import com.android.systemui.recents.OverviewProxyService; import com.android.systemui.settings.DisplayTracker; @@ -83,7 +82,6 @@ public class NavigationBarControllerImpl implements private final Context mContext; private final Handler mHandler; private final NavigationBarComponent.Factory mNavigationBarComponentFactory; - private FeatureFlags mFeatureFlags; private final SecureSettings mSecureSettings; private final DisplayTracker mDisplayTracker; private final DisplayManager mDisplayManager; @@ -118,13 +116,11 @@ public class NavigationBarControllerImpl implements TaskStackChangeListeners taskStackChangeListeners, Optional<Pip> pipOptional, Optional<BackAnimation> backAnimation, - FeatureFlags featureFlags, SecureSettings secureSettings, DisplayTracker displayTracker) { mContext = context; mHandler = mainHandler; mNavigationBarComponentFactory = navigationBarComponentFactory; - mFeatureFlags = featureFlags; mSecureSettings = secureSettings; mDisplayTracker = displayTracker; mDisplayManager = mContext.getSystemService(DisplayManager.class); @@ -248,8 +244,8 @@ public class NavigationBarControllerImpl implements /** @return {@code true} if taskbar is enabled, false otherwise */ private boolean initializeTaskbarIfNecessary() { // Enable for large screens or (phone AND flag is set); assuming phone = !mIsLargeScreen - boolean taskbarEnabled = (mIsLargeScreen || mFeatureFlags.isEnabled( - Flags.HIDE_NAVBAR_WINDOW)) && shouldCreateNavBarAndTaskBar(mContext.getDisplayId()); + boolean taskbarEnabled = (mIsLargeScreen || enableTaskbarNavbarUnification()) + && shouldCreateNavBarAndTaskBar(mContext.getDisplayId()); if (taskbarEnabled) { Trace.beginSection("NavigationBarController#initializeTaskbarIfNecessary"); diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarView.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarView.java index bc4f7f2513ce..c5190a21f079 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarView.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarView.java @@ -62,7 +62,6 @@ import com.android.app.animation.Interpolators; import com.android.internal.annotations.VisibleForTesting; import com.android.settingslib.Utils; import com.android.systemui.Gefingerpoken; -import com.android.systemui.res.R; import com.android.systemui.model.SysUiState; import com.android.systemui.navigationbar.buttons.ButtonDispatcher; import com.android.systemui.navigationbar.buttons.ContextualButton; @@ -73,6 +72,7 @@ import com.android.systemui.navigationbar.buttons.NearestTouchFrame; import com.android.systemui.navigationbar.buttons.RotationContextButton; import com.android.systemui.navigationbar.gestural.EdgeBackGestureHandler; import com.android.systemui.recents.Recents; +import com.android.systemui.res.R; import com.android.systemui.settings.DisplayTracker; import com.android.systemui.shade.ShadeViewController; import com.android.systemui.shared.rotation.FloatingRotationButton; @@ -494,16 +494,11 @@ public class NavigationBarView extends FrameLayout { } public KeyButtonDrawable getBackDrawable() { - KeyButtonDrawable drawable = getDrawable(getBackDrawableRes()); + KeyButtonDrawable drawable = getDrawable(R.drawable.ic_sysbar_back); orientBackButton(drawable); return drawable; } - public @DrawableRes int getBackDrawableRes() { - return chooseNavigationIconDrawableRes(R.drawable.ic_sysbar_back, - R.drawable.ic_sysbar_back_quick_step); - } - public KeyButtonDrawable getHomeDrawable() { KeyButtonDrawable drawable = mShowSwipeUpUi ? getDrawable(R.drawable.ic_sysbar_home_quick_step) @@ -543,11 +538,6 @@ public class NavigationBarView extends FrameLayout { drawable.setRotation(mIsVertical ? 90 : 0); } - private @DrawableRes int chooseNavigationIconDrawableRes(@DrawableRes int icon, - @DrawableRes int quickStepIcon) { - return mShowSwipeUpUi ? quickStepIcon : icon; - } - private KeyButtonDrawable getDrawable(@DrawableRes int icon) { return KeyButtonDrawable.create(mLightContext, mLightIconColor, mDarkIconColor, icon, true /* hasShadow */, null /* ovalBackgroundColor */); diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/buttons/KeyButtonView.java b/packages/SystemUI/src/com/android/systemui/navigationbar/buttons/KeyButtonView.java index dcf1a8e98f1c..6ec46f627264 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/buttons/KeyButtonView.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/buttons/KeyButtonView.java @@ -58,8 +58,9 @@ import com.android.internal.logging.UiEventLogger; import com.android.internal.logging.UiEventLoggerImpl; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.systemui.Dependency; -import com.android.systemui.res.R; +import com.android.systemui.assist.AssistManager; import com.android.systemui.recents.OverviewProxyService; +import com.android.systemui.res.R; import com.android.systemui.shared.system.QuickStepContract; public class KeyButtonView extends ImageView implements ButtonInterface { @@ -439,11 +440,22 @@ public class KeyButtonView extends ImageView implements ButtonInterface { if (mCode != KeyEvent.KEYCODE_UNKNOWN) { sendEvent(KeyEvent.ACTION_UP, KeyEvent.FLAG_CANCELED); } + // When aborting long-press home and Launcher has requested to override it, fade out the + // ripple more quickly. + if (mCode == KeyEvent.KEYCODE_HOME && Dependency.get(AssistManager.class) + .shouldOverrideAssist(AssistManager.INVOCATION_TYPE_HOME_BUTTON_LONG_PRESS)) { + mRipple.speedUpNextFade(); + } setPressed(false); mRipple.abortDelayedRipple(); mGestureAborted = true; } + /** Run when the ripple for this button is next invisible. Only used once. */ + public void setOnRippleInvisibleRunnable(Runnable onRippleInvisibleRunnable) { + mRipple.setOnInvisibleRunnable(onRippleInvisibleRunnable); + } + @Override public void setDarkIntensity(float darkIntensity) { mDarkIntensity = darkIntensity; diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/BackPanelController.kt b/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/BackPanelController.kt index c77f3f49a77c..fa03dc245745 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/BackPanelController.kt +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/BackPanelController.kt @@ -22,7 +22,6 @@ import android.graphics.Paint import android.graphics.Point import android.os.Handler import android.os.SystemClock -import android.os.VibrationEffect import android.util.Log import android.util.MathUtils import android.view.Gravity @@ -37,8 +36,6 @@ import androidx.core.view.isVisible import androidx.dynamicanimation.animation.DynamicAnimation import com.android.internal.util.LatencyTracker import com.android.systemui.dagger.qualifiers.Main -import com.android.systemui.flags.FeatureFlags -import com.android.systemui.flags.Flags.ONE_WAY_HAPTICS_API_MIGRATION import com.android.systemui.plugins.NavigationEdgeBackPlugin import com.android.systemui.statusbar.VibratorHelper import com.android.systemui.statusbar.policy.ConfigurationController @@ -78,12 +75,6 @@ private const val POP_ON_ENTRY_TO_ACTIVE_VELOCITY = 4.5f private const val POP_ON_INACTIVE_TO_ACTIVE_VELOCITY = 4.7f private const val POP_ON_INACTIVE_VELOCITY = -1.5f -internal val VIBRATE_ACTIVATED_EFFECT = - VibrationEffect.createPredefined(VibrationEffect.EFFECT_CLICK) - -internal val VIBRATE_DEACTIVATED_EFFECT = - VibrationEffect.createPredefined(VibrationEffect.EFFECT_TICK) - private const val DEBUG = false class BackPanelController @@ -95,7 +86,6 @@ internal constructor( private val vibratorHelper: VibratorHelper, private val configurationController: ConfigurationController, private val latencyTracker: LatencyTracker, - private val featureFlags: FeatureFlags ) : ViewController<BackPanel>(BackPanel(context, latencyTracker)), NavigationEdgeBackPlugin { /** @@ -113,7 +103,6 @@ internal constructor( private val vibratorHelper: VibratorHelper, private val configurationController: ConfigurationController, private val latencyTracker: LatencyTracker, - private val featureFlags: FeatureFlags ) { /** Construct a [BackPanelController]. */ fun create(context: Context): BackPanelController { @@ -126,7 +115,6 @@ internal constructor( vibratorHelper, configurationController, latencyTracker, - featureFlags ) backPanelController.init() return backPanelController @@ -992,35 +980,22 @@ internal constructor( val springForceOnCancelled = params.cancelledIndicator.arrowDimens.alphaSpring?.get(0f)?.value mView.popArrowAlpha(0f, springForceOnCancelled) - if (!featureFlags.isEnabled(ONE_WAY_HAPTICS_API_MIGRATION)) - mainHandler.postDelayed(10L) { vibratorHelper.cancel() } } } } private fun performDeactivatedHapticFeedback() { - if (featureFlags.isEnabled(ONE_WAY_HAPTICS_API_MIGRATION)) { - vibratorHelper.performHapticFeedback( - mView, - HapticFeedbackConstants.GESTURE_THRESHOLD_DEACTIVATE - ) - } else { - vibratorHelper.vibrate(VIBRATE_DEACTIVATED_EFFECT) - } + vibratorHelper.performHapticFeedback( + mView, + HapticFeedbackConstants.GESTURE_THRESHOLD_DEACTIVATE + ) } private fun performActivatedHapticFeedback() { - if (featureFlags.isEnabled(ONE_WAY_HAPTICS_API_MIGRATION)) { - vibratorHelper.performHapticFeedback( - mView, - HapticFeedbackConstants.GESTURE_THRESHOLD_ACTIVATE - ) - } else { - vibratorHelper.cancel() - mainHandler.postDelayed(10L) { - vibratorHelper.vibrate(VIBRATE_ACTIVATED_EFFECT) - } - } + vibratorHelper.performHapticFeedback( + mView, + HapticFeedbackConstants.GESTURE_THRESHOLD_ACTIVATE + ) } private fun convertVelocityToAnimationFactor( diff --git a/packages/SystemUI/src/com/android/systemui/power/data/repository/PowerRepository.kt b/packages/SystemUI/src/com/android/systemui/power/data/repository/PowerRepository.kt index 934f31040ce1..82420875e0de 100644 --- a/packages/SystemUI/src/com/android/systemui/power/data/repository/PowerRepository.kt +++ b/packages/SystemUI/src/com/android/systemui/power/data/repository/PowerRepository.kt @@ -32,12 +32,12 @@ import com.android.systemui.power.shared.model.WakeSleepReason import com.android.systemui.power.shared.model.WakefulnessModel import com.android.systemui.power.shared.model.WakefulnessState import com.android.systemui.util.time.SystemClock +import javax.inject.Inject import kotlinx.coroutines.channels.awaitClose import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow -import javax.inject.Inject /** Defines interface for classes that act as source of truth for power-related data. */ interface PowerRepository { @@ -67,15 +67,22 @@ interface PowerRepository { /** Wakes up the device. */ fun wakeUp(why: String, @PowerManager.WakeReason wakeReason: Int) - /** Notifies the power repository that a user touch happened. */ - fun userTouch() + /** + * Notifies the power repository that a user touch happened. + * + * @param noChangeLights If true, does not cause the keyboard backlight to turn on because of + * this event. This is set when the power key is pressed. We want the device to stay on while + * the button is down, but we're about to turn off the screen so we don't want the keyboard + * backlight to turn on again. Otherwise the lights flash on and then off and it looks weird. + */ + fun userTouch(noChangeLights: Boolean = false) /** Updates the wakefulness state, keeping previous values by default. */ fun updateWakefulness( - rawState: WakefulnessState = wakefulness.value.internalWakefulnessState, - lastWakeReason: WakeSleepReason = wakefulness.value.lastWakeReason, - lastSleepReason: WakeSleepReason = wakefulness.value.lastSleepReason, - powerButtonLaunchGestureTriggered: Boolean = + rawState: WakefulnessState = wakefulness.value.internalWakefulnessState, + lastWakeReason: WakeSleepReason = wakefulness.value.lastWakeReason, + lastSleepReason: WakeSleepReason = wakefulness.value.lastSleepReason, + powerButtonLaunchGestureTriggered: Boolean = wakefulness.value.powerButtonLaunchGestureTriggered, ) @@ -121,10 +128,10 @@ constructor( override val wakefulness = _wakefulness.asStateFlow() override fun updateWakefulness( - rawState: WakefulnessState, - lastWakeReason: WakeSleepReason, - lastSleepReason: WakeSleepReason, - powerButtonLaunchGestureTriggered: Boolean, + rawState: WakefulnessState, + lastWakeReason: WakeSleepReason, + lastSleepReason: WakeSleepReason, + powerButtonLaunchGestureTriggered: Boolean, ) { _wakefulness.value = WakefulnessModel( @@ -150,11 +157,11 @@ constructor( ) } - override fun userTouch() { + override fun userTouch(noChangeLights: Boolean) { manager.userActivity( systemClock.uptimeMillis(), PowerManager.USER_ACTIVITY_EVENT_TOUCH, - /* flags= */ 0, + if (noChangeLights) PowerManager.USER_ACTIVITY_FLAG_NO_CHANGE_LIGHTS else 0, ) } diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSHostAdapter.kt b/packages/SystemUI/src/com/android/systemui/qs/QSHostAdapter.kt index 65a2c8ca692b..c77233eb1737 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSHostAdapter.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/QSHostAdapter.kt @@ -35,10 +35,10 @@ import kotlinx.coroutines.launch /** * Adapter to determine what real class to use for classes that depend on [QSHost]. - * * When [QSPipelineFlagsRepository.pipelineHostEnabled] is false, all calls will be routed to + * * When [QSPipelineFlagsRepository.pipelineEnabled] is false, all calls will be routed to * [QSTileHost]. - * * When [QSPipelineFlagsRepository.pipelineHostEnabled] is true, calls regarding the current set - * of tiles will be routed to [CurrentTilesInteractor]. Other calls (like [createTileView]) will + * * When [QSPipelineFlagsRepository.pipelineEnabled] is true, calls regarding the current set of + * tiles will be routed to [CurrentTilesInteractor]. Other calls (like [createTileView]) will * still be routed to [QSTileHost]. * * This routing also includes dumps. @@ -60,7 +60,7 @@ constructor( private const val TAG = "QSTileHost" } - private val useNewHost = flags.pipelineHostEnabled + private val useNewHost = flags.pipelineEnabled @GuardedBy("callbacksMap") private val callbacksMap = mutableMapOf<QSHost.Callback, Job>() diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java b/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java index 10f95e0b7201..1fab58e18ad2 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java @@ -31,7 +31,6 @@ import androidx.annotation.Nullable; import com.android.internal.annotations.VisibleForTesting; import com.android.systemui.Dumpable; import com.android.systemui.ProtoDumpable; -import com.android.systemui.res.R; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dump.nano.SystemUIProtoDump; @@ -49,6 +48,7 @@ import com.android.systemui.qs.pipeline.data.repository.CustomTileAddedRepositor import com.android.systemui.qs.pipeline.domain.interactor.PanelInteractor; import com.android.systemui.qs.pipeline.shared.QSPipelineFlagsRepository; import com.android.systemui.qs.tiles.di.NewQSTileFactory; +import com.android.systemui.res.R; import com.android.systemui.settings.UserFileManager; import com.android.systemui.settings.UserTracker; import com.android.systemui.shade.ShadeController; @@ -57,8 +57,6 @@ import com.android.systemui.tuner.TunerService; import com.android.systemui.tuner.TunerService.Tunable; import com.android.systemui.util.settings.SecureSettings; -import dagger.Lazy; - import org.jetbrains.annotations.NotNull; import java.io.PrintWriter; @@ -75,6 +73,8 @@ import java.util.stream.Collectors; import javax.inject.Inject; import javax.inject.Provider; +import dagger.Lazy; + /** Platform implementation of the quick settings tile host * * This class keeps track of the set of current tiles and is the in memory source of truth @@ -167,7 +167,7 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, P // finishes before creating any tiles. tunerService.addTunable(this, TILES_SETTING); // AutoTileManager can modify mTiles so make sure mTiles has already been initialized. - if (!mFeatureFlags.getPipelineAutoAddEnabled()) { + if (!mFeatureFlags.getPipelineEnabled()) { mAutoTiles = autoTiles.get(); } }); @@ -288,9 +288,10 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, P } } // Do not process tiles if the flag is enabled. - if (mFeatureFlags.getPipelineHostEnabled()) { + if (mFeatureFlags.getPipelineEnabled()) { return; } + QSPipelineFlagsRepository.Utils.assertInLegacyMode(); if (newValue == null && UserManager.isDeviceInDemoMode(mContext)) { newValue = mContext.getResources().getString(R.string.quick_settings_tiles_retail_mode); } diff --git a/packages/SystemUI/src/com/android/systemui/qs/dagger/QSHostModule.kt b/packages/SystemUI/src/com/android/systemui/qs/dagger/QSHostModule.kt index b2111d765a9d..496a6f830e8c 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/dagger/QSHostModule.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/dagger/QSHostModule.kt @@ -48,7 +48,7 @@ interface QSHostModule { qsHost: QSTileHost, panelInteractorImpl: PanelInteractorImpl ): PanelInteractor { - return if (featureFlags.pipelineHostEnabled) { + return if (featureFlags.pipelineEnabled) { panelInteractorImpl } else { qsHost @@ -62,7 +62,7 @@ interface QSHostModule { qsHost: QSTileHost, customTileAddedRepository: CustomTileAddedSharedPrefsRepository ): CustomTileAddedRepository { - return if (featureFlags.pipelineHostEnabled) { + return if (featureFlags.pipelineEnabled) { customTileAddedRepository } else { qsHost diff --git a/packages/SystemUI/src/com/android/systemui/qs/pipeline/domain/interactor/CurrentTilesInteractor.kt b/packages/SystemUI/src/com/android/systemui/qs/pipeline/domain/interactor/CurrentTilesInteractor.kt index 4bb8c6e4bb2d..4bda7307c667 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/pipeline/domain/interactor/CurrentTilesInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/pipeline/domain/interactor/CurrentTilesInteractor.kt @@ -20,7 +20,6 @@ import android.content.ComponentName import android.content.Context import android.content.Intent import android.os.UserHandle -import android.util.Log import com.android.systemui.Dumpable import com.android.systemui.ProtoDumpable import com.android.systemui.dagger.SysUISingleton @@ -174,7 +173,7 @@ constructor( } init { - if (featureFlags.pipelineHostEnabled) { + if (featureFlags.pipelineEnabled) { startTileCollection() } } diff --git a/packages/SystemUI/src/com/android/systemui/qs/pipeline/domain/startable/QSPipelineCoreStartable.kt b/packages/SystemUI/src/com/android/systemui/qs/pipeline/domain/startable/QSPipelineCoreStartable.kt index 1539f05508d0..2930acdeaaa3 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/pipeline/domain/startable/QSPipelineCoreStartable.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/pipeline/domain/startable/QSPipelineCoreStartable.kt @@ -35,7 +35,7 @@ constructor( ) : CoreStartable { override fun start() { - if (featureFlags.pipelineAutoAddEnabled) { + if (featureFlags.pipelineEnabled) { autoAddInteractor.init(currentTilesInteractor) restoreReconciliationInteractor.start() } diff --git a/packages/SystemUI/src/com/android/systemui/qs/pipeline/shared/QSPipelineFlagsRepository.kt b/packages/SystemUI/src/com/android/systemui/qs/pipeline/shared/QSPipelineFlagsRepository.kt index 1a71b715fe3a..5c7420cb3c1b 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/pipeline/shared/QSPipelineFlagsRepository.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/pipeline/shared/QSPipelineFlagsRepository.kt @@ -1,8 +1,10 @@ package com.android.systemui.qs.pipeline.shared +import com.android.systemui.Flags as AconfigFlags import com.android.systemui.dagger.SysUISingleton import com.android.systemui.flags.FeatureFlagsClassic import com.android.systemui.flags.Flags +import com.android.systemui.flags.RefactorFlagUtils import javax.inject.Inject /** Encapsulate the different QS pipeline flags and their dependencies */ @@ -12,16 +14,18 @@ class QSPipelineFlagsRepository constructor( private val featureFlags: FeatureFlagsClassic, ) { - - /** @see Flags.QS_PIPELINE_NEW_HOST */ - val pipelineHostEnabled: Boolean - get() = featureFlags.isEnabled(Flags.QS_PIPELINE_NEW_HOST) - - /** @see Flags.QS_PIPELINE_AUTO_ADD */ - val pipelineAutoAddEnabled: Boolean - get() = pipelineHostEnabled && featureFlags.isEnabled(Flags.QS_PIPELINE_AUTO_ADD) + val pipelineEnabled: Boolean + get() = AconfigFlags.qsNewPipeline() /** @see Flags.QS_PIPELINE_NEW_TILES */ val pipelineTilesEnabled: Boolean get() = featureFlags.isEnabled(Flags.QS_PIPELINE_NEW_TILES) + + companion object Utils { + fun assertInLegacyMode() = + RefactorFlagUtils.assertInLegacyMode( + AconfigFlags.qsNewPipeline(), + AconfigFlags.FLAG_QS_NEW_PIPELINE + ) + } } diff --git a/packages/SystemUI/src/com/android/systemui/screenrecord/RecordingController.java b/packages/SystemUI/src/com/android/systemui/screenrecord/RecordingController.java index 05f125f6f531..bff0b93dccb0 100644 --- a/packages/SystemUI/src/com/android/systemui/screenrecord/RecordingController.java +++ b/packages/SystemUI/src/com/android/systemui/screenrecord/RecordingController.java @@ -46,6 +46,7 @@ import com.android.systemui.mediaprojection.devicepolicy.ScreenCaptureDisabledDi import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.settings.UserContextProvider; import com.android.systemui.settings.UserTracker; +import com.android.systemui.statusbar.phone.SystemUIDialog; import com.android.systemui.statusbar.policy.CallbackController; import dagger.Lazy; @@ -75,6 +76,7 @@ public class RecordingController private final UserContextProvider mUserContextProvider; private final UserTracker mUserTracker; private final MediaProjectionMetricsLogger mMediaProjectionMetricsLogger; + private final SystemUIDialog.Factory mDialogFactory; protected static final String INTENT_UPDATE_STATE = "com.android.systemui.screenrecord.UPDATE_STATE"; @@ -120,7 +122,8 @@ public class RecordingController UserContextProvider userContextProvider, Lazy<ScreenCaptureDevicePolicyResolver> devicePolicyResolver, UserTracker userTracker, - MediaProjectionMetricsLogger mediaProjectionMetricsLogger) { + MediaProjectionMetricsLogger mediaProjectionMetricsLogger, + SystemUIDialog.Factory dialogFactory) { mMainExecutor = mainExecutor; mContext = context; mFlags = flags; @@ -129,6 +132,7 @@ public class RecordingController mUserContextProvider = userContextProvider; mUserTracker = userTracker; mMediaProjectionMetricsLogger = mediaProjectionMetricsLogger; + mDialogFactory = dialogFactory; BroadcastOptions options = BroadcastOptions.makeBasic(); options.setInteractive(true); @@ -166,15 +170,14 @@ public class RecordingController getHostUid(), SessionCreationSource.SYSTEM_UI_SCREEN_RECORDER); return flags.isEnabled(Flags.WM_ENABLE_PARTIAL_SCREEN_SHARING) - ? new ScreenRecordPermissionDialog( - context, - getHostUserHandle(), - getHostUid(), - /* controller= */ this, - activityStarter, - mUserContextProvider, - onStartRecordingClicked, - mMediaProjectionMetricsLogger) + ? mDialogFactory.create(new ScreenRecordPermissionDialogDelegate( + getHostUserHandle(), + getHostUid(), + /* controller= */ this, + activityStarter, + mUserContextProvider, + onStartRecordingClicked, + mMediaProjectionMetricsLogger)) : new ScreenRecordDialog( context, /* controller= */ this, diff --git a/packages/SystemUI/src/com/android/systemui/screenrecord/ScreenRecordPermissionDialog.kt b/packages/SystemUI/src/com/android/systemui/screenrecord/ScreenRecordPermissionDialogDelegate.kt index f74234bc2e21..e57a0fddc936 100644 --- a/packages/SystemUI/src/com/android/systemui/screenrecord/ScreenRecordPermissionDialog.kt +++ b/packages/SystemUI/src/com/android/systemui/screenrecord/ScreenRecordPermissionDialogDelegate.kt @@ -17,7 +17,6 @@ package com.android.systemui.screenrecord import android.app.Activity import android.app.PendingIntent -import android.content.Context import android.content.Intent import android.os.Bundle import android.os.Handler @@ -35,17 +34,17 @@ import androidx.annotation.LayoutRes import com.android.systemui.mediaprojection.MediaProjectionCaptureTarget import com.android.systemui.mediaprojection.MediaProjectionMetricsLogger import com.android.systemui.mediaprojection.appselector.MediaProjectionAppSelectorActivity -import com.android.systemui.mediaprojection.permission.BaseScreenSharePermissionDialog +import com.android.systemui.mediaprojection.permission.BaseMediaProjectionPermissionDialogDelegate import com.android.systemui.mediaprojection.permission.ENTIRE_SCREEN import com.android.systemui.mediaprojection.permission.SINGLE_APP import com.android.systemui.mediaprojection.permission.ScreenShareOption import com.android.systemui.plugins.ActivityStarter import com.android.systemui.res.R import com.android.systemui.settings.UserContextProvider +import com.android.systemui.statusbar.phone.SystemUIDialog /** Dialog to select screen recording options */ -class ScreenRecordPermissionDialog( - context: Context, +class ScreenRecordPermissionDialogDelegate( private val hostUserHandle: UserHandle, private val hostUid: Int, private val controller: RecordingController, @@ -54,8 +53,7 @@ class ScreenRecordPermissionDialog( private val onStartRecordingClicked: Runnable?, mediaProjectionMetricsLogger: MediaProjectionMetricsLogger, ) : - BaseScreenSharePermissionDialog( - context, + BaseMediaProjectionPermissionDialogDelegate<SystemUIDialog>( createOptionList(), appName = null, hostUid = hostUid, @@ -68,10 +66,10 @@ class ScreenRecordPermissionDialog( private lateinit var audioSwitch: Switch private lateinit var options: Spinner - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) + override fun onCreate(dialog: SystemUIDialog, savedInstanceState: Bundle?) { + super.onCreate(dialog, savedInstanceState) setDialogTitle(R.string.screenrecord_permission_dialog_title) - setTitle(R.string.screenrecord_title) + dialog.setTitle(R.string.screenrecord_title) setStartButtonText(R.string.screenrecord_permission_dialog_continue) setStartButtonOnClickListener { v: View? -> onStartRecordingClicked?.run() @@ -79,7 +77,7 @@ class ScreenRecordPermissionDialog( requestScreenCapture(/* captureTarget= */ null) } if (selectedScreenShareOption.mode == SINGLE_APP) { - val intent = Intent(context, MediaProjectionAppSelectorActivity::class.java) + val intent = Intent(dialog.context, MediaProjectionAppSelectorActivity::class.java) intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) // We can't start activity for result here so we use result receiver to get @@ -96,22 +94,26 @@ class ScreenRecordPermissionDialog( intent.putExtra(MediaProjectionAppSelectorActivity.EXTRA_HOST_APP_UID, hostUid) activityStarter.startActivity(intent, /* dismissShade= */ true) } - dismiss() + dialog.dismiss() } - setCancelButtonOnClickListener { dismiss() } + setCancelButtonOnClickListener { dialog.dismiss() } initRecordOptionsView() } @LayoutRes override fun getOptionsViewLayoutId(): Int = R.layout.screen_record_options private fun initRecordOptionsView() { - audioSwitch = requireViewById(R.id.screenrecord_audio_switch) - tapsSwitch = requireViewById(R.id.screenrecord_taps_switch) - tapsView = requireViewById(R.id.show_taps) + audioSwitch = dialog.requireViewById(R.id.screenrecord_audio_switch) + tapsSwitch = dialog.requireViewById(R.id.screenrecord_taps_switch) + tapsView = dialog.requireViewById(R.id.show_taps) updateTapsViewVisibility() - options = requireViewById(R.id.screen_recording_options) + options = dialog.requireViewById(R.id.screen_recording_options) val a: ArrayAdapter<*> = - ScreenRecordingAdapter(context, android.R.layout.simple_spinner_dropdown_item, MODES) + ScreenRecordingAdapter( + dialog.context, + android.R.layout.simple_spinner_dropdown_item, + MODES + ) a.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) options.adapter = a options.setOnItemClickListenerInt { _: AdapterView<*>?, _: View?, _: Int, _: Long -> diff --git a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java index 823caa0805bd..285cb5a93b33 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java @@ -2673,7 +2673,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump && !mQsController.getFullyExpanded()) { alpha *= mClockPositionResult.clockAlpha; } - mNotificationStackScrollLayoutController.setAlpha(alpha); + mNotificationStackScrollLayoutController.setMaxAlphaForExpansion(alpha); } private float getFadeoutAlpha() { @@ -4697,7 +4697,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump NotificationStackScrollLayoutController stackScroller) { return (Float alpha) -> { mKeyguardStatusViewController.setAlpha(alpha); - stackScroller.setAlpha(alpha); + stackScroller.setMaxAlphaForExpansion(alpha); if (keyguardBottomAreaRefactor()) { mKeyguardInteractor.setAlpha(alpha); diff --git a/packages/SystemUI/src/com/android/systemui/smartspace/dagger/SmartspaceModule.kt b/packages/SystemUI/src/com/android/systemui/smartspace/dagger/SmartspaceModule.kt index 03be88fc31d9..c59ef2632f15 100644 --- a/packages/SystemUI/src/com/android/systemui/smartspace/dagger/SmartspaceModule.kt +++ b/packages/SystemUI/src/com/android/systemui/smartspace/dagger/SmartspaceModule.kt @@ -18,13 +18,15 @@ package com.android.systemui.smartspace.dagger import com.android.systemui.plugins.BcSmartspaceDataPlugin import com.android.systemui.smartspace.SmartspacePrecondition import com.android.systemui.smartspace.SmartspaceTargetFilter +import com.android.systemui.smartspace.data.repository.SmartspaceRepositoryModule import com.android.systemui.smartspace.preconditions.LockscreenPrecondition import dagger.Binds import dagger.BindsOptionalOf import dagger.Module import javax.inject.Named -@Module(subcomponents = [SmartspaceViewComponent::class]) +@Module(subcomponents = [SmartspaceViewComponent::class], + includes = [SmartspaceRepositoryModule::class]) abstract class SmartspaceModule { @Module companion object { diff --git a/packages/SystemUI/src/com/android/systemui/smartspace/data/repository/SmartspaceRepository.kt b/packages/SystemUI/src/com/android/systemui/smartspace/data/repository/SmartspaceRepository.kt new file mode 100644 index 000000000000..2fc0ec290a90 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/smartspace/data/repository/SmartspaceRepository.kt @@ -0,0 +1,68 @@ +/* + * 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.smartspace.data.repository + +import android.app.smartspace.SmartspaceTarget +import android.os.Parcelable +import android.widget.RemoteViews +import com.android.systemui.dagger.SysUISingleton +import com.android.systemui.plugins.BcSmartspaceDataPlugin +import com.android.systemui.statusbar.lockscreen.LockscreenSmartspaceController +import javax.inject.Inject +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.onCompletion +import kotlinx.coroutines.flow.onStart + +interface SmartspaceRepository { + /** Whether [RemoteViews] are passed through smartspace targets. */ + val isSmartspaceRemoteViewsEnabled: Boolean + + /** Smartspace targets for the lockscreen surface. */ + val lockscreenSmartspaceTargets: Flow<List<SmartspaceTarget>> +} + +@SysUISingleton +class SmartspaceRepositoryImpl +@Inject +constructor( + private val lockscreenSmartspaceController: LockscreenSmartspaceController, +) : SmartspaceRepository, BcSmartspaceDataPlugin.SmartspaceTargetListener { + + override val isSmartspaceRemoteViewsEnabled: Boolean + get() = android.app.smartspace.flags.Flags.remoteViews() + + private val _lockscreenSmartspaceTargets: MutableStateFlow<List<SmartspaceTarget>> = + MutableStateFlow(emptyList()) + override val lockscreenSmartspaceTargets: Flow<List<SmartspaceTarget>> = + _lockscreenSmartspaceTargets + .onStart { + lockscreenSmartspaceController.addListener(listener = this@SmartspaceRepositoryImpl) + } + .onCompletion { + lockscreenSmartspaceController.removeListener( + listener = this@SmartspaceRepositoryImpl + ) + } + + override fun onSmartspaceTargetsUpdated(targetsNullable: MutableList<out Parcelable>?) { + targetsNullable?.let { targets -> + _lockscreenSmartspaceTargets.value = targets.filterIsInstance<SmartspaceTarget>() + } + ?: run { _lockscreenSmartspaceTargets.value = emptyList() } + } +} diff --git a/packages/SystemUI/src/com/android/systemui/smartspace/data/repository/SmartspaceRepositoryModule.kt b/packages/SystemUI/src/com/android/systemui/smartspace/data/repository/SmartspaceRepositoryModule.kt new file mode 100644 index 000000000000..c77bcc50b69a --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/smartspace/data/repository/SmartspaceRepositoryModule.kt @@ -0,0 +1,25 @@ +/* + * 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.smartspace.data.repository + +import dagger.Binds +import dagger.Module + +@Module +interface SmartspaceRepositoryModule { + @Binds fun smartspaceRepository(impl: SmartspaceRepositoryImpl): SmartspaceRepository +} diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BatteryStatusChip.kt b/packages/SystemUI/src/com/android/systemui/statusbar/BatteryStatusChip.kt index 2281ea02aaf8..835225009110 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/BatteryStatusChip.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/BatteryStatusChip.kt @@ -22,9 +22,8 @@ import android.util.AttributeSet import android.view.View import android.widget.FrameLayout import android.widget.LinearLayout -import com.android.settingslib.Utils -import com.android.systemui.res.R import com.android.systemui.battery.BatteryMeterView +import com.android.systemui.res.R import com.android.systemui.statusbar.events.BackgroundAnimatableView class BatteryStatusChip @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) : @@ -39,6 +38,9 @@ class BatteryStatusChip @JvmOverloads constructor(context: Context, attrs: Attri inflate(context, R.layout.battery_status_chip, this) roundedContainer = requireViewById(R.id.rounded_container) batteryMeterView = requireViewById(R.id.battery_meter_view) + batteryMeterView.setStaticColor(true) + val primaryColor = context.resources.getColor(android.R.color.black, context.theme) + batteryMeterView.updateColors(primaryColor, primaryColor, primaryColor) updateResources() } @@ -63,11 +65,6 @@ class BatteryStatusChip @JvmOverloads constructor(context: Context, attrs: Attri @SuppressLint("UseCompatLoadingForDrawables") private fun updateResources() { - val primaryColor = - Utils.getColorAttrDefaultColor(context, com.android.internal.R.attr.colorPrimary) - val textColorSecondary = - Utils.getColorAttrDefaultColor(mContext, android.R.attr.textColorSecondary) - batteryMeterView.updateColors(primaryColor, textColorSecondary, primaryColor) roundedContainer.background = mContext.getDrawable(R.drawable.statusbar_chip_bg) } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerImpl.java index 710e59d91c6b..3f080c247924 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerImpl.java @@ -250,6 +250,7 @@ public class NotificationLockscreenUserManagerImpl implements private final Handler mMainHandler; private final Handler mBackgroundHandler; private final Executor mBackgroundExecutor; + /** The current user and its profiles (possibly including a communal profile). */ protected final SparseArray<UserInfo> mCurrentProfiles = new SparseArray<>(); protected final SparseArray<UserInfo> mCurrentManagedProfiles = new SparseArray<>(); @@ -689,12 +690,16 @@ public class NotificationLockscreenUserManagerImpl implements } } + @SuppressLint("MissingPermission") private void updateCurrentProfilesCache() { synchronized (mLock) { mCurrentProfiles.clear(); mCurrentManagedProfiles.clear(); if (mUserManager != null) { - for (UserInfo user : mUserManager.getProfiles(mCurrentUserId)) { + List<UserInfo> profiles = android.multiuser.Flags.supportCommunalProfile() + ? mUserManager.getProfilesIncludingCommunal(mCurrentUserId) + : mUserManager.getProfiles(mCurrentUserId); + for (UserInfo user : profiles) { mCurrentProfiles.put(user.id, user); if (UserManager.USER_TYPE_PROFILE_MANAGED.equals(user.userType)) { mCurrentManagedProfiles.put(user.id, user); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java index 3bf8057aece2..843a454d73a0 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java @@ -61,6 +61,7 @@ import com.android.internal.util.ContrastColorUtil; import com.android.systemui.res.R; import com.android.systemui.statusbar.notification.NotificationDozeHelper; import com.android.systemui.statusbar.notification.NotificationUtils; +import com.android.systemui.statusbar.notification.shared.NotificationIconContainerRefactor; import com.android.systemui.util.drawable.DrawableSize; import java.lang.annotation.Retention; @@ -164,7 +165,6 @@ public class StatusBarIconView extends AnimatedImageView implements StatusIconDi private int mDrawableColor; private int mIconColor; private int mDecorColor; - private float mDozeAmount; private ValueAnimator mColorAnimator; private int mCurrentSetColor = NO_COLOR; private int mAnimationStartColor = NO_COLOR; @@ -174,7 +174,6 @@ public class StatusBarIconView extends AnimatedImageView implements StatusIconDi animation.getAnimatedFraction()); setColorInternal(newColor); }; - private final NotificationDozeHelper mDozer; private int mContrastedDrawableColor; private int mCachedContrastBackgroundColor = NO_COLOR; private float[] mMatrix; @@ -184,6 +183,8 @@ public class StatusBarIconView extends AnimatedImageView implements StatusIconDi private Runnable mOnDismissListener; private boolean mIncreasedSize; private boolean mShowsConversation; + private float mDozeAmount; + private final NotificationDozeHelper mDozer; public StatusBarIconView(Context context, String slot, StatusBarNotification sbn) { this(context, slot, sbn, false); @@ -958,18 +959,28 @@ public class StatusBarIconView extends AnimatedImageView implements StatusIconDi return mDotAppearAmount; } - public void setDozing(boolean dozing, boolean fade, long delay) { - setDozing(dozing, fade, delay, /* onChildCompleted= */ null); + public void setDozing(boolean dozing, boolean animate, long delay) { + setDozing(dozing, animate, delay, /* onChildCompleted= */ null); + } + + public void setTintAlpha(float tintAlpha) { + if (NotificationIconContainerRefactor.isUnexpectedlyInLegacyMode()) return; + setDozeAmount(tintAlpha); } - public void setDozing(boolean dozing, boolean fade, long delay, + private void setDozeAmount(float dozeAmount) { + mDozeAmount = dozeAmount; + updateDecorColor(); + updateIconColor(); + } + + public void setDozing(boolean dozing, boolean animate, long delay, @Nullable Runnable endRunnable) { + NotificationIconContainerRefactor.assertInLegacyMode(); mDozer.setDozing(f -> { - mDozeAmount = f; - updateDecorColor(); - updateIconColor(); + setDozeAmount(f); updateAllowAnimation(); - }, dozing, fade, delay, this, endRunnable); + }, dozing, animate, delay, this, endRunnable); } private void updateAllowAnimation() { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/ui/viewbinder/NotificationIconContainerViewBinder.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/ui/viewbinder/NotificationIconContainerViewBinder.kt index 65b798a14e0b..2ea7f61aee4c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/ui/viewbinder/NotificationIconContainerViewBinder.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/ui/viewbinder/NotificationIconContainerViewBinder.kt @@ -18,7 +18,6 @@ package com.android.systemui.statusbar.notification.icon.ui.viewbinder import android.graphics.Color import android.graphics.Rect import android.view.View -import android.view.ViewGroup import android.widget.FrameLayout import androidx.annotation.ColorInt import androidx.collection.ArrayMap @@ -29,16 +28,12 @@ import com.android.systemui.common.ui.ConfigurationState import com.android.systemui.lifecycle.repeatWhenAttached import com.android.systemui.res.R import com.android.systemui.statusbar.StatusBarIconView -import com.android.systemui.statusbar.notification.NotificationUtils import com.android.systemui.statusbar.notification.collection.NotifCollection import com.android.systemui.statusbar.notification.icon.ui.viewbinder.NotificationIconContainerViewBinder.IconViewStore -import com.android.systemui.statusbar.notification.icon.ui.viewmodel.NotificationIconColorLookup -import com.android.systemui.statusbar.notification.icon.ui.viewmodel.NotificationIconColors import com.android.systemui.statusbar.notification.icon.ui.viewmodel.NotificationIconContainerAlwaysOnDisplayViewModel import com.android.systemui.statusbar.notification.icon.ui.viewmodel.NotificationIconContainerShelfViewModel import com.android.systemui.statusbar.notification.icon.ui.viewmodel.NotificationIconContainerStatusBarViewModel import com.android.systemui.statusbar.notification.icon.ui.viewmodel.NotificationIconsViewData -import com.android.systemui.statusbar.phone.DozeParameters import com.android.systemui.statusbar.phone.NotificationIconContainer import com.android.systemui.statusbar.policy.ConfigurationController import com.android.systemui.statusbar.policy.onConfigChanged @@ -46,12 +41,12 @@ import com.android.systemui.util.children import com.android.systemui.util.kotlin.mapValuesNotNullTo import com.android.systemui.util.kotlin.sample import com.android.systemui.util.kotlin.stateFlow -import com.android.systemui.util.ui.AnimatedValue import com.android.systemui.util.ui.isAnimating import com.android.systemui.util.ui.stopAnimating import com.android.systemui.util.ui.value import javax.inject.Inject import kotlinx.coroutines.DisposableHandle +import kotlinx.coroutines.Job import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.StateFlow @@ -88,14 +83,21 @@ object NotificationIconContainerViewBinder { return view.repeatWhenAttached { lifecycleScope.run { launch { + val iconColors = + viewModel.iconColors.mapNotNull { it.iconColors(view.viewBounds) } viewModel.icons.bindIcons( view, configuration, configurationController, - viewStore - ) + viewStore, + ) { _, sbiv -> + StatusBarIconViewBinder.bindIconColors( + sbiv, + iconColors, + contrastColorUtil, + ) + } } - launch { viewModel.iconColors.bindIconColors(view, contrastColorUtil) } launch { viewModel.bindIsolatedIcon(view, viewStore) } launch { viewModel.animationsEnabled.bindAnimationsEnabled(view) } } @@ -108,7 +110,6 @@ object NotificationIconContainerViewBinder { viewModel: NotificationIconContainerAlwaysOnDisplayViewModel, configuration: ConfigurationState, configurationController: ConfigurationController, - dozeParameters: DozeParameters, viewStore: IconViewStore, ): DisposableHandle { return view.repeatWhenAttached { @@ -119,70 +120,36 @@ object NotificationIconContainerViewBinder { configuration, configurationController, viewStore, - ) - } - launch { viewModel.animationsEnabled.bindAnimationsEnabled(view) } - launch { viewModel.isDozing.bindIsDozing(view, dozeParameters) } - launch { - configuration - .getColorAttr(R.attr.wallpaperTextColor, DEFAULT_AOD_ICON_COLOR) - .bindIconColors(view) + ) { _, sbiv -> + viewModel.bindAodStatusBarIconView(sbiv, configuration) + } } + launch { viewModel.areContainerChangesAnimated.bindAnimationsEnabled(view) } } } } - /** Binds to [NotificationIconContainer.setAnimationsEnabled] */ - private suspend fun Flow<Boolean>.bindAnimationsEnabled(view: NotificationIconContainer) { - collect(view::setAnimationsEnabled) - } - - /** - * Binds to the [StatusBarIconView.setStaticDrawableColor] and [StatusBarIconView.setDecorColor] - * of the [children] of an [NotificationIconContainer]. - */ - private suspend fun Flow<NotificationIconColorLookup>.bindIconColors( - view: NotificationIconContainer, - contrastColorUtil: ContrastColorUtil, + private suspend fun NotificationIconContainerAlwaysOnDisplayViewModel.bindAodStatusBarIconView( + sbiv: StatusBarIconView, + configuration: ConfigurationState, ) { - mapNotNull { lookup -> lookup.iconColors(view.viewBounds) } - .collect { iconLookup -> view.applyTint(iconLookup, contrastColorUtil) } - } - - /** - * Binds to the [StatusBarIconView.setStaticDrawableColor] and [StatusBarIconView.setDecorColor] - * of the [children] of an [NotificationIconContainer]. - */ - private suspend fun Flow<Int>.bindIconColors(view: NotificationIconContainer) { - collect { tint -> - view.children.filterIsInstance<StatusBarIconView>().forEach { icon -> - icon.staticDrawableColor = tint - icon.setDecorColor(tint) + coroutineScope { + launch { + val color: Flow<Int> = + configuration.getColorAttr( + R.attr.wallpaperTextColor, + DEFAULT_AOD_ICON_COLOR, + ) + StatusBarIconViewBinder.bindColor(sbiv, color) } + launch { StatusBarIconViewBinder.bindTintAlpha(sbiv, tintAlpha) } + launch { StatusBarIconViewBinder.bindAnimationsEnabled(sbiv, areIconAnimationsEnabled) } } } - private suspend fun Flow<AnimatedValue<Boolean>>.bindIsDozing( - view: NotificationIconContainer, - dozeParameters: DozeParameters, - ) { - collect { isDozing -> - if (isDozing.isAnimating) { - val animate = !dozeParameters.displayNeedsBlanking - view.setDozing( - /* dozing = */ isDozing.value, - /* fade = */ animate, - /* delay = */ 0, - /* endRunnable = */ isDozing::stopAnimating, - ) - } else { - view.setDozing( - /* dozing = */ isDozing.value, - /* fade= */ false, - /* delay= */ 0, - ) - } - } + /** Binds to [NotificationIconContainer.setAnimationsEnabled] */ + private suspend fun Flow<Boolean>.bindAnimationsEnabled(view: NotificationIconContainer) { + collect(view::setAnimationsEnabled) } private suspend fun NotificationIconContainerStatusBarViewModel.bindIsolatedIcon( @@ -208,12 +175,19 @@ object NotificationIconContainerViewBinder { } } - /** Binds [NotificationIconsViewData] to a [NotificationIconContainer]'s [children]. */ + /** + * Binds [NotificationIconsViewData] to a [NotificationIconContainer]'s [children]. + * + * [bindIcon] will be invoked to bind a child [StatusBarIconView] to an icon associated with the + * given `iconKey`. The parent [Job] of this coroutine will be cancelled automatically when the + * view is to be unbound. + */ private suspend fun Flow<NotificationIconsViewData>.bindIcons( view: NotificationIconContainer, configuration: ConfigurationState, configurationController: ConfigurationController, viewStore: IconViewStore, + bindIcon: suspend (iconKey: String, view: StatusBarIconView) -> Unit = { _, _ -> }, ): Unit = coroutineScope { val iconSizeFlow: Flow<Int> = configuration.getDimensionPixelSize( @@ -242,6 +216,7 @@ object NotificationIconContainerViewBinder { } } + val iconBindings = mutableMapOf<String, Job>() var prevIcons = NotificationIconsViewData() sample(layoutParams, ::Pair).collect { (iconsData: NotificationIconsViewData, layoutParams: FrameLayout.LayoutParams), @@ -261,15 +236,21 @@ object NotificationIconContainerViewBinder { } iconsDiff.removed - .mapNotNull { key -> childrenByNotifKey[key] } - .forEach { child -> view.removeView(child) } + .mapNotNull { key -> childrenByNotifKey[key]?.let { key to it } } + .forEach { (key, child) -> + view.removeView(child) + iconBindings.remove(key)?.cancel() + } - val toAdd = iconsDiff.added.map { viewStore.iconView(it.notifKey) } - for ((i, sbiv) in toAdd.withIndex()) { + val toAdd = iconsDiff.added.map { it.notifKey to viewStore.iconView(it.notifKey) } + for ((i, keyAndView) in toAdd.withIndex()) { + val (key, sbiv) = keyAndView // The view might still be transiently added if it was just removed // and added again view.removeTransientView(sbiv) view.addView(sbiv, i, layoutParams) + iconBindings.remove(key)?.cancel() + iconBindings[key] = launch { bindIcon(key, sbiv) } } view.setChangingViewPositions(true) @@ -290,28 +271,6 @@ object NotificationIconContainerViewBinder { } } - // TODO(b/305739416): Once StatusBarIconView has its own Recommended Architecture stack, this - // can be moved there and cleaned up. - private fun ViewGroup.applyTint( - iconColors: NotificationIconColors, - contrastColorUtil: ContrastColorUtil, - ) { - children - .filterIsInstance<StatusBarIconView>() - .filter { it.width != 0 } - .forEach { iv -> iv.updateTintForIcon(iconColors, contrastColorUtil) } - } - - private fun StatusBarIconView.updateTintForIcon( - iconColors: NotificationIconColors, - contrastColorUtil: ContrastColorUtil, - ) { - val isPreL = java.lang.Boolean.TRUE == getTag(R.id.icon_is_pre_L) - val isColorized = !isPreL || NotificationUtils.isGrayscale(this, contrastColorUtil) - staticDrawableColor = iconColors.staticDrawableColor(viewBounds, isColorized) - setDecorColor(iconColors.tint) - } - /** External storage for [StatusBarIconView] instances. */ fun interface IconViewStore { fun iconView(key: String): StatusBarIconView diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/ui/viewbinder/StatusBarIconViewBinder.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/ui/viewbinder/StatusBarIconViewBinder.kt new file mode 100644 index 000000000000..3a2e21a048a5 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/ui/viewbinder/StatusBarIconViewBinder.kt @@ -0,0 +1,73 @@ +/* + * 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.statusbar.notification.icon.ui.viewbinder + +import android.graphics.Rect +import android.view.View +import com.android.internal.util.ContrastColorUtil +import com.android.systemui.res.R +import com.android.systemui.statusbar.StatusBarIconView +import com.android.systemui.statusbar.notification.NotificationUtils +import com.android.systemui.statusbar.notification.icon.ui.viewmodel.NotificationIconColors +import kotlinx.coroutines.flow.Flow + +object StatusBarIconViewBinder { + + // TODO(b/305739416): Once StatusBarIconView has its own Recommended Architecture stack, these + // methods can become private and we can have a single bind() method for SBIV and its + // view-model (which, at the time of this writing, does not yet exist). + + suspend fun bindColor(view: StatusBarIconView, color: Flow<Int>) { + color.collect { color -> + view.staticDrawableColor = color + view.setDecorColor(color) + } + } + + suspend fun bindTintAlpha(view: StatusBarIconView, tintAlpha: Flow<Float>) { + tintAlpha.collect { amt -> view.setTintAlpha(amt) } + } + + suspend fun bindAnimationsEnabled(view: StatusBarIconView, allowAnimation: Flow<Boolean>) { + allowAnimation.collect(view::setAllowAnimation) + } + + suspend fun bindIconColors( + view: StatusBarIconView, + iconColors: Flow<NotificationIconColors>, + contrastColorUtil: ContrastColorUtil, + ) { + iconColors.collect { colors -> + val isPreL = java.lang.Boolean.TRUE == view.getTag(R.id.icon_is_pre_L) + val isColorized = !isPreL || NotificationUtils.isGrayscale(view, contrastColorUtil) + view.staticDrawableColor = colors.staticDrawableColor(view.viewBounds, isColorized) + view.setDecorColor(colors.tint) + } + } +} + +private val View.viewBounds: Rect + get() { + val tmpArray = intArrayOf(0, 0) + getLocationOnScreen(tmpArray) + return Rect( + /* left = */ tmpArray[0], + /* top = */ tmpArray[1], + /* right = */ left + width, + /* bottom = */ top + height, + ) + } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/ui/viewmodel/NotificationIconContainerAlwaysOnDisplayViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/ui/viewmodel/NotificationIconContainerAlwaysOnDisplayViewModel.kt index 835c0592c588..b11eca2c7d93 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/ui/viewmodel/NotificationIconContainerAlwaysOnDisplayViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/ui/viewmodel/NotificationIconContainerAlwaysOnDisplayViewModel.kt @@ -19,17 +19,13 @@ import com.android.systemui.dagger.SysUISingleton import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor import com.android.systemui.keyguard.shared.model.KeyguardState -import com.android.systemui.keyguard.shared.model.TransitionStep import com.android.systemui.shade.domain.interactor.ShadeInteractor import com.android.systemui.statusbar.notification.icon.domain.interactor.AlwaysOnDisplayNotificationIconsInteractor -import com.android.systemui.util.ui.AnimatableEvent -import com.android.systemui.util.ui.AnimatedValue -import com.android.systemui.util.ui.toAnimatedValueFlow import javax.inject.Inject import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.combine -import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.map +import kotlinx.coroutines.flow.onStart /** View-model for the row of notification icons displayed on the always-on display. */ @SysUISingleton @@ -43,7 +39,7 @@ constructor( ) { /** Are changes to the icon container animated? */ - val animationsEnabled: Flow<Boolean> = + val areContainerChangesAnimated: Flow<Boolean> = combine( shadeInteractor.isShadeTouchable, keyguardInteractor.isKeyguardVisible, @@ -51,23 +47,21 @@ constructor( panelTouchesEnabled && isKeyguardVisible } - /** Should icons be rendered in "dozing" mode? */ - val isDozing: Flow<AnimatedValue<Boolean>> = - keyguardTransitionInteractor.startedKeyguardTransitionStep - // Determine if we're dozing based on the most recent transition - .map { step: TransitionStep -> - val isDozing = step.to == KeyguardState.AOD || step.to == KeyguardState.DOZING - isDozing to step - } - // Only emit changes based on whether we've started or stopped dozing - .distinctUntilChanged { (wasDozing, _), (isDozing, _) -> wasDozing != isDozing } - // Determine whether we need to animate - .map { (isDozing, step) -> - val animate = step.to == KeyguardState.AOD || step.from == KeyguardState.AOD - AnimatableEvent(isDozing, animate) - } - .distinctUntilChanged() - .toAnimatedValueFlow() + /** Amount of a "white" tint to be applied to the icons. */ + val tintAlpha: Flow<Float> = + combine( + keyguardTransitionInteractor.transitionValue(KeyguardState.AOD).onStart { emit(0f) }, + keyguardTransitionInteractor.transitionValue(KeyguardState.DOZING).onStart { emit(0f) }, + ) { aodAmt, dozeAmt -> + aodAmt + dozeAmt // If transitioning between them, they should sum to 1f + } + + /** Are notification icons animated (ex: animated gif)? */ + val areIconAnimationsEnabled: Flow<Boolean> = + keyguardTransitionInteractor.isFinishedInStateWhere { + // Don't animate icons when we're on AOD / dozing + it != KeyguardState.AOD && it != KeyguardState.DOZING + } /** [NotificationIconsViewData] indicating which icons to display in the view. */ val icons: Flow<NotificationIconsViewData> = diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/AmbientState.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/AmbientState.java index cb671447bbb4..d9c51089d5f8 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/AmbientState.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/AmbientState.java @@ -121,6 +121,7 @@ public class AmbientState implements Dumpable { private float mAppearFraction; private float mOverExpansion; private int mStackTopMargin; + private boolean mUseSplitShade; /** Distance of top of notifications panel from top of screen. */ private float mStackY = 0; @@ -228,6 +229,20 @@ public class AmbientState implements Dumpable { } /** + * @param useSplitShade True if we are showing split shade. + */ + public void setUseSplitShade(boolean useSplitShade) { + mUseSplitShade = useSplitShade; + } + + /** + * @return True if we are showing split shade. + */ + public boolean getUseSplitShade() { + return mUseSplitShade; + } + + /** * @return Fraction of shade expansion. */ public float getExpansionFraction() { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java index a0ad560e817e..a0ffba304027 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java @@ -1157,6 +1157,20 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable return mSpeedBumpIndex; } + private boolean mSuppressChildrenMeasureAndLayout = false; + + /** + * Similar to {@link ViewGroup#suppressLayout} but still performs layout of + * the container itself and suppresses only measure and layout calls to children. + */ + public void suppressChildrenMeasureAndLayout(boolean suppress) { + mSuppressChildrenMeasureAndLayout = suppress; + + if (!suppress) { + requestLayout(); + } + } + @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { Trace.beginSection("NotificationStackScrollLayout#onMeasure"); @@ -1169,6 +1183,12 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable int width = MeasureSpec.getSize(widthMeasureSpec); updateSidePadding(width); + + if (mSuppressChildrenMeasureAndLayout) { + Trace.endSection(); + return; + } + int childWidthSpec = MeasureSpec.makeMeasureSpec(width - mSidePaddings * 2, MeasureSpec.getMode(widthMeasureSpec)); // Don't constrain the height of the children so we know how big they'd like to be @@ -1192,18 +1212,21 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable @Override protected void onLayout(boolean changed, int l, int t, int r, int b) { - // we layout all our children centered on the top - float centerX = getWidth() / 2.0f; - for (int i = 0; i < getChildCount(); i++) { - View child = getChildAt(i); - // We need to layout all children even the GONE ones, such that the heights are - // calculated correctly as they are used to calculate how many we can fit on the screen - float width = child.getMeasuredWidth(); - float height = child.getMeasuredHeight(); - child.layout((int) (centerX - width / 2.0f), - 0, - (int) (centerX + width / 2.0f), - (int) height); + if (!mSuppressChildrenMeasureAndLayout) { + // we layout all our children centered on the top + float centerX = getWidth() / 2.0f; + for (int i = 0; i < getChildCount(); i++) { + View child = getChildAt(i); + // We need to layout all children even the GONE ones, such that the heights are + // calculated correctly as they are used to calculate how many we can fit on + // the screen + float width = child.getMeasuredWidth(); + float height = child.getMeasuredHeight(); + child.layout((int) (centerX - width / 2.0f), + 0, + (int) (centerX + width / 2.0f), + (int) height); + } } setMaxLayoutHeight(getHeight()); updateContentHeight(); @@ -5097,6 +5120,7 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable println(pw, "qsClipDismiss", mDismissUsingRowTranslationX); println(pw, "visibility", visibilityString(getVisibility())); println(pw, "alpha", getAlpha()); + println(pw, "suppressChildrenMeasureLayout", mSuppressChildrenMeasureAndLayout); println(pw, "scrollY", mAmbientState.getScrollY()); println(pw, "maxTopPadding", mMaxTopPadding); println(pw, "showShelfOnly", mShouldShowShelfOnly); @@ -5666,6 +5690,7 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable boolean split = mSplitShadeStateController.shouldUseSplitNotificationShade(getResources()); if (split != mShouldUseSplitNotificationShade) { mShouldUseSplitNotificationShade = split; + mAmbientState.setUseSplitShade(split); updateDismissBehavior(); updateUseRoundedRectClipping(); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java index 44140b926011..99b3a005ab0c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java @@ -18,6 +18,8 @@ package com.android.systemui.statusbar.notification.stack; import static android.service.notification.NotificationStats.DISMISSAL_SHADE; import static android.service.notification.NotificationStats.DISMISS_SENTIMENT_NEUTRAL; + +import static com.android.app.animation.Interpolators.STANDARD; import static com.android.internal.jank.InteractionJankMonitor.CUJ_NOTIFICATION_SHADE_SCROLL_FLING; import static com.android.systemui.Dependency.ALLOW_NOTIFICATION_LONG_PRESS_NAME; import static com.android.systemui.statusbar.StatusBarState.KEYGUARD; @@ -27,8 +29,10 @@ import static com.android.systemui.statusbar.notification.stack.NotificationStac import static com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout.ROWS_GENTLE; import static com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout.ROWS_HIGH_PRIORITY; import static com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout.SelectedRows; +import static com.android.systemui.statusbar.notification.stack.StackStateAnimator.ANIMATION_DURATION_STANDARD; import static com.android.systemui.util.kotlin.JavaAdapterKt.collectFlow; +import android.animation.ObjectAnimator; import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Point; @@ -38,6 +42,7 @@ import android.provider.Settings; import android.service.notification.StatusBarNotification; import android.util.Log; import android.util.Pair; +import android.util.Property; import android.view.Display; import android.view.MotionEvent; import android.view.View; @@ -53,6 +58,8 @@ import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.UiEvent; import com.android.internal.logging.UiEventLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; +import com.android.internal.view.OneShotPreDrawListener; +import com.android.systemui.Dumpable; import com.android.systemui.ExpandHelper; import com.android.systemui.Gefingerpoken; import com.android.systemui.bouncer.domain.interactor.PrimaryBouncerInteractor; @@ -133,6 +140,7 @@ import com.android.systemui.tuner.TunerService; import com.android.systemui.util.Compile; import com.android.systemui.util.settings.SecureSettings; +import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; import java.util.function.BiConsumer; @@ -145,7 +153,7 @@ import javax.inject.Named; * Controller for {@link NotificationStackScrollLayout}. */ @SysUISingleton -public class NotificationStackScrollLayoutController { +public class NotificationStackScrollLayoutController implements Dumpable { private static final String TAG = "StackScrollerController"; private static final boolean DEBUG = Compile.IS_DEBUG && Log.isLoggable(TAG, Log.DEBUG); private static final String HIGH_PRIORITY = "high_priority"; @@ -190,7 +198,6 @@ public class NotificationStackScrollLayoutController { private final GroupExpansionManager mGroupExpansionManager; private final SeenNotificationsInteractor mSeenNotificationsInteractor; private final KeyguardTransitionRepository mKeyguardTransitionRepo; - private NotificationStackScrollLayout mView; private NotificationSwipeHelper mSwipeHelper; @Nullable @@ -240,6 +247,22 @@ public class NotificationStackScrollLayoutController { } }; + private static final Property<NotificationStackScrollLayoutController, Float> + HIDE_ALPHA_PROPERTY = new Property<>(Float.class, "HideNotificationsAlpha") { + @Override + public Float get(NotificationStackScrollLayoutController object) { + return object.mMaxAlphaForUnhide; + } + + @Override + public void set(NotificationStackScrollLayoutController object, Float value) { + object.setMaxAlphaForUnhide(value); + } + }; + + @Nullable + private ObjectAnimator mHideAlphaAnimator = null; + private final DeviceProvisionedListener mDeviceProvisionedListener = new DeviceProvisionedListener() { @Override @@ -302,6 +325,8 @@ public class NotificationStackScrollLayoutController { }; private NotifStats mNotifStats = NotifStats.getEmpty(); + private float mMaxAlphaForExpansion = 1.0f; + private float mMaxAlphaForUnhide = 1.0f; private final NotificationListViewBinder mViewBinder; @@ -713,6 +738,7 @@ public class NotificationStackScrollLayoutController { mDismissibilityProvider = dismissibilityProvider; mActivityStarter = activityStarter; mView.passSplitShadeStateController(splitShadeStateController); + mDumpManager.registerDumpable(this); updateResources(); setUpView(); } @@ -818,7 +844,7 @@ public class NotificationStackScrollLayoutController { mGroupExpansionManager.registerGroupExpansionChangeListener( (changedRow, expanded) -> mView.onGroupExpandChanged(changedRow, expanded)); - mViewBinder.bind(mView); + mViewBinder.bind(mView, this); collectFlow(mView, mKeyguardTransitionRepo.getTransitions(), this::onKeyguardTransitionChanged); @@ -875,6 +901,10 @@ public class NotificationStackScrollLayoutController { mView.requestLayout(); } + public void addOneShotPreDrawListener(Runnable runnable) { + OneShotPreDrawListener.add(mView, runnable); + } + public Display getDisplay() { return mView.getDisplay(); } @@ -1157,12 +1187,49 @@ public class NotificationStackScrollLayoutController { return mView.getEmptyShadeViewHeight(); } - public void setAlpha(float alpha) { + public void setMaxAlphaForExpansion(float alpha) { + mMaxAlphaForExpansion = alpha; + updateAlpha(); + } + + private void setMaxAlphaForUnhide(float alpha) { + mMaxAlphaForUnhide = alpha; + updateAlpha(); + } + + private void updateAlpha() { if (mView != null) { - mView.setAlpha(alpha); + mView.setAlpha(Math.min(mMaxAlphaForExpansion, mMaxAlphaForUnhide)); } } + public void setSuppressChildrenMeasureAndLayout(boolean suppressLayout) { + mView.suppressChildrenMeasureAndLayout(suppressLayout); + } + + public void updateNotificationsContainerVisibility(boolean visible, boolean animate) { + if (mHideAlphaAnimator != null) { + mHideAlphaAnimator.cancel(); + } + + final float targetAlpha = visible ? 1f : 0f; + + if (animate) { + mHideAlphaAnimator = createAlphaAnimator(targetAlpha); + mHideAlphaAnimator.start(); + } else { + HIDE_ALPHA_PROPERTY.set(this, targetAlpha); + } + } + + private ObjectAnimator createAlphaAnimator(float targetAlpha) { + final ObjectAnimator objectAnimator = ObjectAnimator + .ofFloat(this, HIDE_ALPHA_PROPERTY, targetAlpha); + objectAnimator.setInterpolator(STANDARD); + objectAnimator.setDuration(ANIMATION_DURATION_STANDARD); + return objectAnimator; + } + public float calculateAppearFraction(float height) { return mView.calculateAppearFraction(height); } @@ -1635,6 +1702,12 @@ public class NotificationStackScrollLayoutController { } } + @Override + public void dump(@NonNull PrintWriter pw, @NonNull String[] args) { + pw.println("mMaxAlphaForExpansion=" + mMaxAlphaForExpansion); + pw.println("mMaxAlphaForUnhide=" + mMaxAlphaForUnhide); + } + /** * Enum for UiEvent logged from this class */ diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithm.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithm.java index 80f98a68b4f4..06ca9a50bb6d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithm.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithm.java @@ -572,7 +572,8 @@ public class StackScrollAlgorithm { float viewEnd = viewState.getYTranslation() + viewState.height + ambientState.getStackY(); maybeUpdateHeadsUpIsVisible(viewState, ambientState.isShadeExpanded(), - view.mustStayOnScreen(), /* topVisible */ viewState.getYTranslation() >= 0, + view.mustStayOnScreen(), + /* topVisible= */ viewState.getYTranslation() >= mNotificationScrimPadding, viewEnd, /* hunMax */ ambientState.getMaxHeadsUpTranslation() ); if (view instanceof FooterView) { @@ -777,8 +778,12 @@ public class StackScrollAlgorithm { if (shouldHunBeVisibleWhenScrolled(row.mustStayOnScreen(), childState.headsUpIsVisible, row.showingPulsing(), ambientState.isOnKeyguard(), row.getEntry().isStickyAndNotDemoted())) { - // Ensure that the heads up is always visible even when scrolled off - clampHunToTop(mQuickQsOffsetHeight, ambientState.getStackTranslation(), + // Ensure that the heads up is always visible even when scrolled off. + // NSSL y starts at top of screen in non-split-shade, but below the qs offset + // in split shade, so we only need to inset by the scrim padding in split shade. + final float clampInset = ambientState.getUseSplitShade() + ? mNotificationScrimPadding : mQuickQsOffsetHeight; + clampHunToTop(clampInset, ambientState.getStackTranslation(), row.getCollapsedHeight(), childState); if (isTopEntry && row.isAboveShelf()) { // the first hun can't get off screen. @@ -838,10 +843,10 @@ public class StackScrollAlgorithm { * Transition pinned collapsed HUN to full height when scrolling back up. */ @VisibleForTesting - void clampHunToTop(float quickQsOffsetHeight, float stackTranslation, float collapsedHeight, + void clampHunToTop(float clampInset, float stackTranslation, float collapsedHeight, ExpandableViewState viewState) { - final float newTranslation = Math.max(quickQsOffsetHeight + stackTranslation, + final float newTranslation = Math.max(clampInset + stackTranslation, viewState.getYTranslation()); // Transition from collapsed pinned state to fully expanded state diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/domain/interactor/HideNotificationsInteractor.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/domain/interactor/HideNotificationsInteractor.kt new file mode 100644 index 000000000000..4de3a7fd9ff1 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/domain/interactor/HideNotificationsInteractor.kt @@ -0,0 +1,114 @@ +/* + * 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.statusbar.notification.stack.domain.interactor + +import android.graphics.Rect +import android.util.Log +import com.android.app.tracing.FlowTracing.traceEach +import com.android.systemui.common.domain.interactor.ConfigurationInteractor +import com.android.systemui.dagger.SysUISingleton +import com.android.systemui.power.domain.interactor.PowerInteractor +import com.android.systemui.power.shared.model.ScreenPowerState.SCREEN_ON +import com.android.systemui.unfold.domain.interactor.UnfoldTransitionInteractor +import com.android.systemui.util.animation.data.repository.AnimationStatusRepository +import com.android.systemui.util.kotlin.WithPrev +import com.android.systemui.util.kotlin.area +import com.android.systemui.util.kotlin.pairwise +import com.android.systemui.util.kotlin.race +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.TimeoutCancellationException +import kotlinx.coroutines.flow.Flow +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.flow +import kotlinx.coroutines.withTimeout +import javax.inject.Inject + +@OptIn(ExperimentalCoroutinesApi::class) +@SysUISingleton +class HideNotificationsInteractor +@Inject +constructor( + private val unfoldTransitionInteractor: UnfoldTransitionInteractor, + private val configurationInteractor: ConfigurationInteractor, + private val animationsStatus: AnimationStatusRepository, + private val powerInteractor: PowerInteractor +) { + + val shouldHideNotifications: Flow<Boolean> + get() = + if (!unfoldTransitionInteractor.isAvailable) { + // Do nothing on non-foldable devices + emptyFlow() + } else { + screenSizeChangesFlow + .flatMapLatest { + flow { + // Hide notifications on each display resize + emit(true) + try { + waitForDisplaySwitchFinish(it) + } catch (_: TimeoutCancellationException) { + Log.e(TAG, "Timed out waiting for display switch") + } finally { + emit(false) + } + } + } + .distinctUntilChanged() + .traceEach(HIDE_STATUS_TRACK_NAME, logcat = true) { shouldHide -> + if (shouldHide) "hidden" else "visible" + } + } + + private suspend fun waitForDisplaySwitchFinish(screenSizeChange: WithPrev<Rect, Rect>) { + withTimeout(timeMillis = DISPLAY_SWITCH_TIMEOUT_MILLIS) { + val waitForDisplaySwitchOrAnimation: suspend () -> Unit = { + if (shouldWaitForAnimationEnd(screenSizeChange)) { + unfoldTransitionInteractor.waitForTransitionFinish() + } else { + waitForScreenTurnedOn() + } + } + + race({ waitForDisplaySwitchOrAnimation() }, { waitForGoingToSleep() }) + } + } + + private suspend fun shouldWaitForAnimationEnd(screenSizeChange: WithPrev<Rect, Rect>): Boolean = + animationsStatus.areAnimationsEnabled().first() && screenSizeChange.isUnfold + + private suspend fun waitForScreenTurnedOn() = + powerInteractor.screenPowerState.filter { it == SCREEN_ON }.first() + + private suspend fun waitForGoingToSleep() = + powerInteractor.detailedWakefulness.filter { it.isAsleep() }.first() + + private val screenSizeChangesFlow: Flow<WithPrev<Rect, Rect>> + get() = configurationInteractor.naturalMaxBounds.pairwise() + + private val WithPrev<Rect, Rect>.isUnfold: Boolean + get() = newValue.area > previousValue.area + + private companion object { + private const val TAG = "DisplaySwitchNotificationsHideInteractor" + private const val HIDE_STATUS_TRACK_NAME = "NotificationsHiddenForDisplayChange" + private const val DISPLAY_SWITCH_TIMEOUT_MILLIS = 5_000L + } +} diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/shared/DisplaySwitchNotificationsHiderFlag.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/shared/DisplaySwitchNotificationsHiderFlag.kt new file mode 100644 index 000000000000..98c173402109 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/shared/DisplaySwitchNotificationsHiderFlag.kt @@ -0,0 +1,47 @@ +/* + * 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.statusbar.notification.stack.shared + +import com.android.systemui.Flags +import com.android.systemui.flags.RefactorFlagUtils + +/** Helper for reading or using the DisplaySwitchNotificationsHider flag state. */ +@Suppress("NOTHING_TO_INLINE") +object DisplaySwitchNotificationsHiderFlag { + const val FLAG_NAME = Flags.FLAG_NOTIFICATIONS_HIDE_ON_DISPLAY_SWITCH + + /** Is the hiding enabled? */ + @JvmStatic + inline val isEnabled + get() = Flags.notificationsHideOnDisplaySwitch() + + /** + * Called to ensure code is only run when the flag is enabled. This protects users from the + * unintended behaviors caused by accidentally running new logic, while also crashing on an eng + * build to ensure that the refactor author catches issues in testing. + */ + @JvmStatic + inline fun isUnexpectedlyInLegacyMode() = + RefactorFlagUtils.isUnexpectedlyInLegacyMode(isEnabled, FLAG_NAME) + + /** + * Called to ensure code is only run when the flag is disabled. This will throw an exception if + * the flag is enabled to ensure that the refactor author catches issues in testing. + */ + @JvmStatic + inline fun assertInLegacyMode() = RefactorFlagUtils.assertInLegacyMode(isEnabled, FLAG_NAME) +} diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewbinder/HideNotificationsBinder.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewbinder/HideNotificationsBinder.kt new file mode 100644 index 000000000000..274bf94566cc --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewbinder/HideNotificationsBinder.kt @@ -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.statusbar.notification.stack.ui.viewbinder + +import androidx.core.view.doOnDetach +import androidx.lifecycle.lifecycleScope +import com.android.systemui.lifecycle.repeatWhenAttached +import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController +import com.android.systemui.statusbar.notification.stack.ui.viewmodel.NotificationListViewModel +import kotlinx.coroutines.launch + +/** + * Binds a [NotificationStackScrollLayoutController] to its [view model][NotificationListViewModel]. + */ +object HideNotificationsBinder { + fun bindHideList( + viewController: NotificationStackScrollLayoutController, + viewModel: NotificationListViewModel + ) { + viewController.view.repeatWhenAttached { + lifecycleScope.launch { + viewModel.hideListViewModel.shouldHideListForPerformance.collect { shouldHide -> + viewController.bindHideState(shouldHide) + } + } + } + + viewController.view.doOnDetach { viewController.bindHideState(shouldHide = false) } + } + + private fun NotificationStackScrollLayoutController.bindHideState(shouldHide: Boolean) { + if (shouldHide) { + updateNotificationsContainerVisibility(/* visible= */ false, /* animate=*/ false) + setSuppressChildrenMeasureAndLayout(true) + } else { + setSuppressChildrenMeasureAndLayout(false) + + // Show notifications back only after layout has finished because we need + // to wait until they have resized to the new display size + addOneShotPreDrawListener { + updateNotificationsContainerVisibility(/* visible= */ true, /* animate=*/ true) + } + } + } +} diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewbinder/NotificationListViewBinder.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewbinder/NotificationListViewBinder.kt index d55c0ded502d..6cf56102d65f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewbinder/NotificationListViewBinder.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewbinder/NotificationListViewBinder.kt @@ -29,6 +29,8 @@ import com.android.systemui.statusbar.notification.footer.ui.viewbinder.FooterVi import com.android.systemui.statusbar.notification.icon.ui.viewbinder.ShelfNotificationIconViewStore import com.android.systemui.statusbar.notification.shelf.ui.viewbinder.NotificationShelfViewBinder import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout +import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController +import com.android.systemui.statusbar.notification.stack.ui.viewbinder.HideNotificationsBinder.bindHideList import com.android.systemui.statusbar.notification.stack.ui.viewmodel.NotificationListViewModel import com.android.systemui.statusbar.phone.NotificationIconAreaController import com.android.systemui.statusbar.policy.ConfigurationController @@ -46,9 +48,13 @@ constructor( private val shelfIconViewStore: ShelfNotificationIconViewStore, ) { - fun bind(view: NotificationStackScrollLayout) { + fun bind( + view: NotificationStackScrollLayout, + viewController: NotificationStackScrollLayoutController + ) { bindShelf(view) bindFooter(view) + bindHideList(viewController, viewModel) } private fun bindShelf(parentView: NotificationStackScrollLayout) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewbinder/SharedNotificationContainerBinder.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewbinder/SharedNotificationContainerBinder.kt index 6785da4bf4f1..a1a0ccac3500 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewbinder/SharedNotificationContainerBinder.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewbinder/SharedNotificationContainerBinder.kt @@ -22,6 +22,7 @@ import com.android.systemui.lifecycle.repeatWhenAttached import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController import com.android.systemui.statusbar.notification.stack.ui.view.SharedNotificationContainer import com.android.systemui.statusbar.notification.stack.ui.viewmodel.SharedNotificationContainerViewModel +import kotlinx.coroutines.DisposableHandle import kotlinx.coroutines.launch /** Binds the shared notification container to its view-model. */ @@ -32,39 +33,46 @@ object SharedNotificationContainerBinder { view: SharedNotificationContainer, viewModel: SharedNotificationContainerViewModel, controller: NotificationStackScrollLayoutController, - ) { - view.repeatWhenAttached { - repeatOnLifecycle(Lifecycle.State.CREATED) { - launch { - viewModel.configurationBasedDimensions.collect { - view.updateConstraints( - useSplitShade = it.useSplitShade, - marginStart = it.marginStart, - marginTop = it.marginTop, - marginEnd = it.marginEnd, - marginBottom = it.marginBottom, - ) + ): DisposableHandle { + val disposableHandle = + view.repeatWhenAttached { + repeatOnLifecycle(Lifecycle.State.CREATED) { + launch { + viewModel.configurationBasedDimensions.collect { + view.updateConstraints( + useSplitShade = it.useSplitShade, + marginStart = it.marginStart, + marginTop = it.marginTop, + marginEnd = it.marginEnd, + marginBottom = it.marginBottom, + ) - controller.setOverExpansion(0f) - controller.setOverScrollAmount(0) - controller.updateFooter() + controller.setOverExpansion(0f) + controller.setOverScrollAmount(0) + controller.updateFooter() + } } - } - launch { - viewModel.maxNotifications.collect { - controller.setMaxDisplayedNotifications(it) + launch { + viewModel.maxNotifications.collect { + controller.setMaxDisplayedNotifications(it) + } } - } - launch { - viewModel.position.collect { - val animate = it.animate || controller.isAddOrRemoveAnimationPending() - controller.updateTopPadding(it.top, animate) + launch { + viewModel.position.collect { + val animate = it.animate || controller.isAddOrRemoveAnimationPending() + controller.updateTopPadding(it.top, animate) + } } + + launch { viewModel.translationY.collect { controller.setTranslationY(it) } } } + } - launch { viewModel.translationY.collect { controller.setTranslationY(it) } } + return object : DisposableHandle { + override fun dispose() { + disposableHandle.dispose() } } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/HideListViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/HideListViewModel.kt new file mode 100644 index 000000000000..e1d14d1f5e0e --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/HideListViewModel.kt @@ -0,0 +1,43 @@ +/* + * 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.statusbar.notification.stack.ui.viewmodel + +import com.android.systemui.dagger.SysUISingleton +import com.android.systemui.statusbar.notification.stack.domain.interactor.HideNotificationsInteractor +import com.android.systemui.statusbar.notification.stack.shared.DisplaySwitchNotificationsHiderFlag +import javax.inject.Inject +import javax.inject.Provider +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.emptyFlow + +@SysUISingleton +class HideListViewModel +@Inject +constructor( + private val hideNotificationsInteractor: Provider<HideNotificationsInteractor>, +) { + /** + * Emits `true` whenever we want to hide the notifications list for performance reasons, then it + * emits 'false' to show notifications back. This is used on foldable devices and emits + * *nothing* on other devices. + */ + val shouldHideListForPerformance: Flow<Boolean> + get() = + if (DisplaySwitchNotificationsHiderFlag.isEnabled) { + hideNotificationsInteractor.get().shouldHideNotifications + } else emptyFlow() +} diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationListViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationListViewModel.kt index f01245f264e7..4f7668060c69 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationListViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationListViewModel.kt @@ -26,5 +26,6 @@ class NotificationListViewModel @Inject constructor( val shelf: NotificationShelfViewModel, - val footer: Optional<FooterViewModel>, + val hideListViewModel: HideListViewModel, + val footer: Optional<FooterViewModel> ) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/AutoTileManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/AutoTileManager.java index 3877bb6660ba..201133288de5 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/AutoTileManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/AutoTileManager.java @@ -36,6 +36,7 @@ import com.android.systemui.qs.QSHost; import com.android.systemui.qs.ReduceBrightColorsController; import com.android.systemui.qs.UserSettingObserver; import com.android.systemui.qs.external.CustomTile; +import com.android.systemui.qs.pipeline.shared.QSPipelineFlagsRepository; import com.android.systemui.res.R; import com.android.systemui.statusbar.policy.CastController; import com.android.systemui.statusbar.policy.CastController.CastDevice; @@ -142,6 +143,7 @@ public class AutoTileManager implements UserAwareController { * Init method must be called after construction to start listening */ public void init() { + QSPipelineFlagsRepository.Utils.assertInLegacyMode(); if (mInitialized) { Log.w(TAG, "Trying to re-initialize"); return; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconContainer.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconContainer.java index 01f3b63280a2..9e5fd959f2d0 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconContainer.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconContainer.java @@ -337,7 +337,9 @@ public class NotificationIconContainer extends ViewGroup { } if (child instanceof StatusBarIconView) { ((StatusBarIconView) child).updateIconDimens(); - ((StatusBarIconView) child).setDozing(mDozing, false, 0); + if (!NotificationIconContainerRefactor.isEnabled()) { + ((StatusBarIconView) child).setDozing(mDozing, false, 0); + } } } @@ -633,14 +635,16 @@ public class NotificationIconContainer extends ViewGroup { mChangingViewPositions = changingViewPositions; } - public void setDozing(boolean dozing, boolean fade, long delay) { - setDozing(dozing, fade, delay, /* endRunnable= */ null); + public void setDozing(boolean dozing, boolean animate, long delay) { + NotificationIconContainerRefactor.assertInLegacyMode(); + setDozing(dozing, animate, delay, /* endRunnable= */ null); } - public void setDozing(boolean dozing, boolean fade, long delay, + private void setDozing(boolean dozing, boolean animate, long delay, @Nullable Runnable endRunnable) { + NotificationIconContainerRefactor.assertInLegacyMode(); mDozing = dozing; - mDisallowNextAnimation |= !fade; + mDisallowNextAnimation |= !animate; final int childCount = getChildCount(); // Track all the child invocations of setDozing, invoking the top-level endRunnable once // they have all completed. @@ -657,7 +661,7 @@ public class NotificationIconContainer extends ViewGroup { for (int i = 0; i < childCount; i++) { View view = getChildAt(i); if (view instanceof StatusBarIconView) { - ((StatusBarIconView) view).setDozing(dozing, fade, delay, onChildCompleted); + ((StatusBarIconView) view).setDozing(dozing, animate, delay, onChildCompleted); } else if (onChildCompleted != null) { onChildCompleted.run(); } @@ -780,15 +784,7 @@ public class NotificationIconContainer extends ViewGroup { StatusBarIconView icon = (StatusBarIconView) view; boolean animate = false; AnimationProperties animationProperties = null; - final boolean isLowPriorityIconChange = - (visibleState == StatusBarIconView.STATE_HIDDEN - && icon.getVisibleState() == StatusBarIconView.STATE_DOT) - || (visibleState == StatusBarIconView.STATE_DOT - && icon.getVisibleState() == StatusBarIconView.STATE_HIDDEN); - final boolean animationsAllowed = areAnimationsEnabled(icon) - && !mDisallowNextAnimation - && !noAnimations - && !isLowPriorityIconChange; + final boolean animationsAllowed = animationsAllowed(icon); if (animationsAllowed) { if (justAdded || justReplaced) { super.applyToView(icon); @@ -879,6 +875,18 @@ public class NotificationIconContainer extends ViewGroup { needsCannedAnimation = false; } + private boolean animationsAllowed(StatusBarIconView icon) { + final boolean isLowPriorityIconChange = + (visibleState == StatusBarIconView.STATE_HIDDEN + && icon.getVisibleState() == StatusBarIconView.STATE_DOT) + || (visibleState == StatusBarIconView.STATE_DOT + && icon.getVisibleState() == StatusBarIconView.STATE_HIDDEN); + return areAnimationsEnabled(icon) + && !mDisallowNextAnimation + && !noAnimations + && !isLowPriorityIconChange; + } + @Nullable private Consumer<Property> getEndAction() { if (mIsolatedIconAnimationEndRunnable == null) return null; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/MobileConnectionsRepository.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/MobileConnectionsRepository.kt index 13c99647f00b..9471574fc755 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/MobileConnectionsRepository.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/MobileConnectionsRepository.kt @@ -100,6 +100,17 @@ interface MobileConnectionsRepository { val isAnySimSecure: Flow<Boolean> /** + * Returns whether any active SIM on the device is in + * [android.telephony.TelephonyManager.SIM_STATE_PIN_REQUIRED] or + * [android.telephony.TelephonyManager.SIM_STATE_PUK_REQUIRED] or + * [android.telephony.TelephonyManager.SIM_STATE_PERM_DISABLED]. + * + * Note: Unfortunately, we cannot name this [isAnySimSecure] due to a conflict with the flow + * name above (Java code-gen is having issues with it). + */ + fun getIsAnySimSecure(): Boolean + + /** * Checks if any subscription has [android.telephony.TelephonyManager.getEmergencyCallbackMode] * == true */ diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/MobileRepositorySwitcher.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/MobileRepositorySwitcher.kt index 87dd17ec4865..8a8e33efbcef 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/MobileRepositorySwitcher.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/MobileRepositorySwitcher.kt @@ -152,6 +152,7 @@ constructor( activeRepo.flatMapLatest { it.defaultMobileIconGroup } override val isAnySimSecure: Flow<Boolean> = activeRepo.flatMapLatest { it.isAnySimSecure } + override fun getIsAnySimSecure(): Boolean = activeRepo.value.getIsAnySimSecure() override val defaultDataSubId: StateFlow<Int> = activeRepo diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/demo/DemoMobileConnectionsRepository.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/demo/DemoMobileConnectionsRepository.kt index 2ecd435177ee..2b3c6326032c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/demo/DemoMobileConnectionsRepository.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/demo/DemoMobileConnectionsRepository.kt @@ -136,7 +136,8 @@ constructor( override val defaultMobileIconGroup = flowOf(TelephonyIcons.THREE_G) - override val isAnySimSecure: Flow<Boolean> = flowOf(false) + override val isAnySimSecure: Flow<Boolean> = flowOf(getIsAnySimSecure()) + override fun getIsAnySimSecure(): Boolean = false override val defaultMobileIconMapping = MutableStateFlow(TelephonyIcons.ICON_NAME_TO_ICON) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryImpl.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryImpl.kt index cf7bf86504fb..2a510e41ec9c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryImpl.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryImpl.kt @@ -262,7 +262,7 @@ constructor( object : KeyguardUpdateMonitorCallback() { override fun onSimStateChanged(subId: Int, slotId: Int, simState: Int) { logger.logOnSimStateChanged() - trySend(keyguardUpdateMonitor.isSimPinSecure) + trySend(getIsAnySimSecure()) } } keyguardUpdateMonitor.registerCallback(callback) @@ -277,6 +277,8 @@ constructor( ) .distinctUntilChanged() + override fun getIsAnySimSecure() = keyguardUpdateMonitor.isSimPinSecure + override fun getRepoForSubId(subId: Int): FullMobileConnectionRepository = getOrCreateRepoForSubId(subId) diff --git a/packages/SystemUI/src/com/android/systemui/telephony/data/repository/TelephonyRepository.kt b/packages/SystemUI/src/com/android/systemui/telephony/data/repository/TelephonyRepository.kt index 3b300249aac2..b1b6014bfbde 100644 --- a/packages/SystemUI/src/com/android/systemui/telephony/data/repository/TelephonyRepository.kt +++ b/packages/SystemUI/src/com/android/systemui/telephony/data/repository/TelephonyRepository.kt @@ -17,23 +17,40 @@ package com.android.systemui.telephony.data.repository +import android.annotation.SuppressLint import android.content.Context import android.content.pm.PackageManager +import android.telecom.TelecomManager import android.telephony.Annotation import android.telephony.TelephonyCallback import com.android.systemui.common.coroutine.ConflatedCallbackFlow.conflatedCallbackFlow import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application +import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.telephony.TelephonyListenerManager import javax.inject.Inject +import kotlinx.coroutines.CoroutineDispatcher +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.flowOf +import kotlinx.coroutines.flow.map +import kotlinx.coroutines.flow.stateIn +import kotlinx.coroutines.withContext /** Defines interface for classes that encapsulate _some_ telephony-related state. */ interface TelephonyRepository { /** The state of the current call. */ @Annotation.CallState val callState: Flow<Int> + /** + * Whether there is an ongoing phone call (can be in dialing, ringing, active or holding states) + * originating from either a manager or self-managed {@link ConnectionService}. + */ + val isInCall: StateFlow<Boolean> + /** Whether the device has a radio that can be used for telephony. */ val hasTelephonyRadio: Boolean } @@ -49,18 +66,35 @@ interface TelephonyRepository { class TelephonyRepositoryImpl @Inject constructor( + @Application private val applicationScope: CoroutineScope, @Application private val applicationContext: Context, + @Background private val backgroundDispatcher: CoroutineDispatcher, private val manager: TelephonyListenerManager, + private val telecomManager: TelecomManager?, ) : TelephonyRepository { + @Annotation.CallState override val callState: Flow<Int> = conflatedCallbackFlow { - val listener = TelephonyCallback.CallStateListener { state -> trySend(state) } + val listener = TelephonyCallback.CallStateListener(::trySend) manager.addCallStateListener(listener) awaitClose { manager.removeCallStateListener(listener) } } - override val hasTelephonyRadio: Boolean - get() = applicationContext.packageManager.hasSystemFeature(PackageManager.FEATURE_TELEPHONY) + @SuppressLint("MissingPermission") + override val isInCall: StateFlow<Boolean> = + if (telecomManager == null) { + flowOf(false) + } else { + callState.map { withContext(backgroundDispatcher) { telecomManager.isInCall } } + } + .stateIn( + applicationScope, + SharingStarted.WhileSubscribed(), + initialValue = false, + ) + + override val hasTelephonyRadio = + applicationContext.packageManager.hasSystemFeature(PackageManager.FEATURE_TELEPHONY) } diff --git a/packages/SystemUI/src/com/android/systemui/telephony/domain/interactor/TelephonyInteractor.kt b/packages/SystemUI/src/com/android/systemui/telephony/domain/interactor/TelephonyInteractor.kt index 4642f552615a..4b0e5d188ffa 100644 --- a/packages/SystemUI/src/com/android/systemui/telephony/domain/interactor/TelephonyInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/telephony/domain/interactor/TelephonyInteractor.kt @@ -22,17 +22,18 @@ import com.android.systemui.dagger.SysUISingleton import com.android.systemui.telephony.data.repository.TelephonyRepository import javax.inject.Inject import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.StateFlow /** Hosts business logic related to telephony. */ @SysUISingleton class TelephonyInteractor @Inject constructor( - private val repository: TelephonyRepository, + repository: TelephonyRepository, ) { @Annotation.CallState val callState: Flow<Int> = repository.callState - /** Whether the device has a radio that can be used for telephony. */ - val hasTelephonyRadio: Boolean - get() = repository.hasTelephonyRadio + val isInCall: StateFlow<Boolean> = repository.isInCall + + val hasTelephonyRadio: Boolean = repository.hasTelephonyRadio } diff --git a/packages/SystemUI/src/com/android/systemui/unfold/UnfoldTransitionModule.kt b/packages/SystemUI/src/com/android/systemui/unfold/UnfoldTransitionModule.kt index 71314f1f1775..7b628f8d676f 100644 --- a/packages/SystemUI/src/com/android/systemui/unfold/UnfoldTransitionModule.kt +++ b/packages/SystemUI/src/com/android/systemui/unfold/UnfoldTransitionModule.kt @@ -24,6 +24,10 @@ import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.dagger.qualifiers.Main import com.android.systemui.keyguard.LifecycleScreenStatusProvider import com.android.systemui.unfold.config.UnfoldTransitionConfig +import com.android.systemui.unfold.data.repository.UnfoldTransitionRepository +import com.android.systemui.unfold.data.repository.UnfoldTransitionRepositoryImpl +import com.android.systemui.unfold.domain.interactor.UnfoldTransitionInteractor +import com.android.systemui.unfold.domain.interactor.UnfoldTransitionInteractorImpl import com.android.systemui.unfold.system.SystemUnfoldSharedModule import com.android.systemui.unfold.updates.FoldProvider import com.android.systemui.unfold.updates.FoldStateProvider @@ -149,8 +153,7 @@ class UnfoldTransitionModule { return resultingProvider?.get()?.orElse(null)?.let { unfoldProgressProvider -> UnfoldProgressProvider(unfoldProgressProvider, foldProvider) - } - ?: ShellUnfoldProgressProvider.NO_PROVIDER + } ?: ShellUnfoldProgressProvider.NO_PROVIDER } @Provides @@ -162,6 +165,10 @@ class UnfoldTransitionModule { @IntoMap @ClassKey(UnfoldTraceLogger::class) fun bindUnfoldTraceLogger(impl: UnfoldTraceLogger): CoreStartable + + @Binds fun bindRepository(impl: UnfoldTransitionRepositoryImpl): UnfoldTransitionRepository + + @Binds fun bindInteractor(impl: UnfoldTransitionInteractorImpl): UnfoldTransitionInteractor } } diff --git a/packages/SystemUI/src/com/android/systemui/unfold/data/repository/UnfoldTransitionRepository.kt b/packages/SystemUI/src/com/android/systemui/unfold/data/repository/UnfoldTransitionRepository.kt new file mode 100644 index 000000000000..0d3682c9a24b --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/unfold/data/repository/UnfoldTransitionRepository.kt @@ -0,0 +1,77 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ +package com.android.systemui.unfold.data.repository + +import com.android.systemui.common.coroutine.ConflatedCallbackFlow.conflatedCallbackFlow +import com.android.systemui.unfold.UnfoldTransitionProgressProvider +import com.android.systemui.unfold.data.repository.UnfoldTransitionStatus.TransitionFinished +import com.android.systemui.unfold.data.repository.UnfoldTransitionStatus.TransitionStarted +import com.android.systemui.util.kotlin.getOrNull +import java.util.Optional +import javax.inject.Inject +import kotlinx.coroutines.channels.awaitClose +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.emptyFlow + +/** Repository for fold/unfold transitions */ +interface UnfoldTransitionRepository { + /** Returns false if fold/unfold transitions are not available on this device */ + val isAvailable: Boolean + + /** + * Emits current transition state on each transition change such as transition start or finish + * [UnfoldTransitionStatus] + */ + val transitionStatus: Flow<UnfoldTransitionStatus> +} + +/** Transition event of fold/unfold transition */ +sealed class UnfoldTransitionStatus { + /** Status that is sent when fold or unfold transition is in started state */ + data object TransitionStarted : UnfoldTransitionStatus() + /** Status that is sent when fold or unfold transition is finished */ + data object TransitionFinished : UnfoldTransitionStatus() +} + +class UnfoldTransitionRepositoryImpl +@Inject +constructor( + private val unfoldProgressProvider: Optional<UnfoldTransitionProgressProvider>, +) : UnfoldTransitionRepository { + + override val isAvailable: Boolean + get() = unfoldProgressProvider.isPresent + + override val transitionStatus: Flow<UnfoldTransitionStatus> + get() { + val provider = unfoldProgressProvider.getOrNull() ?: return emptyFlow() + + return conflatedCallbackFlow { + val callback = + object : UnfoldTransitionProgressProvider.TransitionProgressListener { + override fun onTransitionStarted() { + trySend(TransitionStarted) + } + + override fun onTransitionFinished() { + trySend(TransitionFinished) + } + } + provider.addCallback(callback) + awaitClose { provider.removeCallback(callback) } + } + } +} diff --git a/packages/SystemUI/src/com/android/systemui/unfold/domain/interactor/UnfoldTransitionInteractor.kt b/packages/SystemUI/src/com/android/systemui/unfold/domain/interactor/UnfoldTransitionInteractor.kt new file mode 100644 index 000000000000..a2e77afedea6 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/unfold/domain/interactor/UnfoldTransitionInteractor.kt @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ +package com.android.systemui.unfold.domain.interactor + +import com.android.systemui.unfold.data.repository.UnfoldTransitionStatus.TransitionFinished +import com.android.systemui.unfold.data.repository.UnfoldTransitionRepository +import javax.inject.Inject +import kotlinx.coroutines.flow.filter +import kotlinx.coroutines.flow.first + +interface UnfoldTransitionInteractor { + val isAvailable: Boolean + + suspend fun waitForTransitionFinish() +} + +class UnfoldTransitionInteractorImpl +@Inject +constructor(private val repository: UnfoldTransitionRepository) : UnfoldTransitionInteractor { + + override val isAvailable: Boolean + get() = repository.isAvailable + + override suspend fun waitForTransitionFinish() { + repository.transitionStatus.filter { it is TransitionFinished }.first() + } +} diff --git a/packages/SystemUI/src/com/android/systemui/user/domain/interactor/SelectedUserInteractor.kt b/packages/SystemUI/src/com/android/systemui/user/domain/interactor/SelectedUserInteractor.kt index 78fb7a491534..3ed05aac3e10 100644 --- a/packages/SystemUI/src/com/android/systemui/user/domain/interactor/SelectedUserInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/user/domain/interactor/SelectedUserInteractor.kt @@ -34,10 +34,10 @@ constructor( @UserIdInt @JvmOverloads fun getSelectedUserId(bypassFlag: Boolean = false): Int { - if (bypassFlag || flags.isEnabled(REFACTOR_GETCURRENTUSER)) { - return repository.getSelectedUserInfo().id + return if (bypassFlag || flags.isEnabled(REFACTOR_GETCURRENTUSER)) { + repository.getSelectedUserInfo().id } else { - return KeyguardUpdateMonitor.getCurrentUser() + KeyguardUpdateMonitor.getCurrentUser() } } } diff --git a/packages/SystemUI/src/com/android/systemui/util/animation/data/repository/AnimationStatusRepository.kt b/packages/SystemUI/src/com/android/systemui/util/animation/data/repository/AnimationStatusRepository.kt new file mode 100644 index 000000000000..adae782eeb98 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/util/animation/data/repository/AnimationStatusRepository.kt @@ -0,0 +1,68 @@ +/* + * 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.animation.data.repository + +import android.content.ContentResolver +import android.database.ContentObserver +import android.os.Handler +import android.provider.Settings +import com.android.systemui.common.coroutine.ConflatedCallbackFlow.conflatedCallbackFlow +import com.android.systemui.dagger.qualifiers.Background +import com.android.systemui.unfold.util.ScaleAwareTransitionProgressProvider.Companion.areAnimationsEnabled +import javax.inject.Inject +import kotlinx.coroutines.CoroutineDispatcher +import kotlinx.coroutines.channels.awaitClose +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.withContext + +/** Utility class that could give information about if animation are enabled in the system */ +interface AnimationStatusRepository { + fun areAnimationsEnabled(): Flow<Boolean> +} + +class AnimationStatusRepositoryImpl +@Inject +constructor( + private val resolver: ContentResolver, + @Background private val backgroundHandler: Handler, + @Background private val backgroundDispatcher: CoroutineDispatcher +) : AnimationStatusRepository { + + /** + * Emits true if animations are enabled in the system, after subscribing it immediately emits + * the current state + */ + override fun areAnimationsEnabled(): Flow<Boolean> = conflatedCallbackFlow { + val initialValue = withContext(backgroundDispatcher) { resolver.areAnimationsEnabled() } + trySend(initialValue) + + val observer = + object : ContentObserver(backgroundHandler) { + override fun onChange(selfChange: Boolean) { + val updatedValue = resolver.areAnimationsEnabled() + trySend(updatedValue) + } + } + + resolver.registerContentObserver( + Settings.Global.getUriFor(Settings.Global.ANIMATOR_DURATION_SCALE), + /* notifyForDescendants= */ false, + observer + ) + + awaitClose { resolver.unregisterContentObserver(observer) } + } +} diff --git a/packages/SystemUI/src/com/android/systemui/util/dagger/UtilModule.java b/packages/SystemUI/src/com/android/systemui/util/dagger/UtilModule.java index 981bf01164e3..9c8a481fcb76 100644 --- a/packages/SystemUI/src/com/android/systemui/util/dagger/UtilModule.java +++ b/packages/SystemUI/src/com/android/systemui/util/dagger/UtilModule.java @@ -18,6 +18,8 @@ package com.android.systemui.util.dagger; import com.android.systemui.util.RingerModeTracker; import com.android.systemui.util.RingerModeTrackerImpl; +import com.android.systemui.util.animation.data.repository.AnimationStatusRepository; +import com.android.systemui.util.animation.data.repository.AnimationStatusRepositoryImpl; import com.android.systemui.util.wrapper.UtilWrapperModule; import dagger.Binds; @@ -31,4 +33,8 @@ public interface UtilModule { /** */ @Binds RingerModeTracker provideRingerModeTracker(RingerModeTrackerImpl ringerModeTrackerImpl); + + @Binds + AnimationStatusRepository provideAnimationStatus( + AnimationStatusRepositoryImpl ringerModeTrackerImpl); } diff --git a/packages/SystemUI/src/com/android/systemui/util/kotlin/Rect.kt b/packages/SystemUI/src/com/android/systemui/util/kotlin/Rect.kt new file mode 100644 index 000000000000..bcbc89c3ccd7 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/util/kotlin/Rect.kt @@ -0,0 +1,22 @@ +/* + * 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.kotlin + +import android.graphics.Rect + +/** Returns the area of this rectangle */ +val Rect.area: Long + get() = width().toLong() * height().toLong() diff --git a/packages/SystemUI/src/com/android/systemui/util/reference/ReferenceModule.kt b/packages/SystemUI/src/com/android/systemui/util/reference/ReferenceModule.kt new file mode 100644 index 000000000000..e7a91e505e47 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/util/reference/ReferenceModule.kt @@ -0,0 +1,26 @@ +/* + * 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.reference + +import dagger.Binds +import dagger.Module + +@Module +abstract class ReferenceModule { + @Binds + abstract fun bindWeakReferenceFactory(impl: WeakReferenceFactoryImpl): WeakReferenceFactory +} diff --git a/packages/SystemUI/src/com/android/systemui/util/reference/WeakReferenceFactory.kt b/packages/SystemUI/src/com/android/systemui/util/reference/WeakReferenceFactory.kt new file mode 100644 index 000000000000..658f0404aa84 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/util/reference/WeakReferenceFactory.kt @@ -0,0 +1,30 @@ +/* + * 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.reference + +import java.lang.ref.WeakReference +import javax.inject.Inject + +interface WeakReferenceFactory { + fun <T> create(referent: T): WeakReference<T> +} + +class WeakReferenceFactoryImpl @Inject constructor() : WeakReferenceFactory { + override fun <T> create(referent: T): WeakReference<T> { + return WeakReference(referent) + } +} diff --git a/packages/SystemUI/src/com/android/systemui/util/settings/SettingsProxy.java b/packages/SystemUI/src/com/android/systemui/util/settings/SettingsProxy.java index 6a9edc11add0..aeed78ad4df4 100644 --- a/packages/SystemUI/src/com/android/systemui/util/settings/SettingsProxy.java +++ b/packages/SystemUI/src/com/android/systemui/util/settings/SettingsProxy.java @@ -102,6 +102,7 @@ public interface SettingsProxy { * @param name to look up in the table * @return the corresponding value, or null if not present */ + @Nullable String getString(String name); /** diff --git a/packages/SystemUI/src/com/android/systemui/volume/CsdWarningDialog.java b/packages/SystemUI/src/com/android/systemui/volume/CsdWarningDialog.java index eb0bf46159dd..d6e6f3fc56b1 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/CsdWarningDialog.java +++ b/packages/SystemUI/src/com/android/systemui/volume/CsdWarningDialog.java @@ -35,8 +35,8 @@ import android.view.WindowManager; import com.android.internal.annotations.GuardedBy; import com.android.internal.messages.nano.SystemMessageProto; -import com.android.systemui.res.R; import com.android.systemui.dagger.qualifiers.Background; +import com.android.systemui.res.R; import com.android.systemui.statusbar.phone.SystemUIDialog; import com.android.systemui.util.NotificationChannels; import com.android.systemui.util.concurrency.DelayableExecutor; @@ -46,7 +46,8 @@ import dagger.assisted.AssistedFactory; import dagger.assisted.AssistedInject; /** - * A class that implements the four Computed Sound Dose-related warnings defined in {@link AudioManager}: + * A class that implements the three Computed Sound Dose-related warnings defined in + * {@link AudioManager}: * <ul> * <li>{@link AudioManager#CSD_WARNING_DOSE_REACHED_1X}</li> * <li>{@link AudioManager#CSD_WARNING_DOSE_REPEATED_5X}</li> @@ -188,8 +189,8 @@ public class CsdWarningDialog extends SystemUIDialog public void onClick(DialogInterface dialog, int which) { if (which == DialogInterface.BUTTON_NEGATIVE) { Log.d(TAG, "Lower volume pressed for CSD warning " + mCsdWarning); + mAudioManager.lowerVolumeToRs1(); dismiss(); - } if (D.BUG) Log.d(TAG, "on click " + which); } @@ -216,10 +217,6 @@ public class CsdWarningDialog extends SystemUIDialog @Override public void onDismiss(DialogInterface unused) { - if (mCsdWarning == AudioManager.CSD_WARNING_DOSE_REPEATED_5X) { - // level is always reduced to RS1 beyond the 5x dose - mAudioManager.lowerVolumeToRs1(); - } try { mContext.unregisterReceiver(mReceiver); } catch (IllegalArgumentException e) { diff --git a/packages/SystemUI/tests/src/com/android/keyguard/EmergencyButtonControllerTest.kt b/packages/SystemUI/tests/src/com/android/keyguard/EmergencyButtonControllerTest.kt index c61b11ae7336..9a95b17fc7d1 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/EmergencyButtonControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/keyguard/EmergencyButtonControllerTest.kt @@ -48,7 +48,6 @@ import org.mockito.MockitoAnnotations @RunWith(AndroidTestingRunner::class) @TestableLooper.RunWithLooper class EmergencyButtonControllerTest : SysuiTestCase() { - lateinit var underTest: EmergencyButtonController @Mock lateinit var emergencyButton: EmergencyButton @Mock lateinit var configurationController: ConfigurationController @Mock lateinit var keyguardUpdateMonitor: KeyguardUpdateMonitor @@ -61,10 +60,13 @@ class EmergencyButtonControllerTest : SysuiTestCase() { @Mock lateinit var lockPatternUtils: LockPatternUtils @Mock lateinit var packageManager: PackageManager @Mock lateinit var mSelectedUserInteractor: SelectedUserInteractor + val fakeSystemClock = FakeSystemClock() val mainExecutor = FakeExecutor(fakeSystemClock) val backgroundExecutor = FakeExecutor(fakeSystemClock) + lateinit var underTest: EmergencyButtonController + @Before fun setup() { MockitoAnnotations.initMocks(this) @@ -73,7 +75,6 @@ class EmergencyButtonControllerTest : SysuiTestCase() { emergencyButton, configurationController, keyguardUpdateMonitor, - telephonyManager, powerManager, activityTaskManager, shadeController, diff --git a/packages/SystemUI/tests/src/com/android/systemui/bouncer/data/repository/KeyguardBouncerRepositoryTest.kt b/packages/SystemUI/tests/src/com/android/systemui/bouncer/data/repository/KeyguardBouncerRepositoryTest.kt index a04919185350..44c57f34fa1b 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/bouncer/data/repository/KeyguardBouncerRepositoryTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/bouncer/data/repository/KeyguardBouncerRepositoryTest.kt @@ -2,15 +2,13 @@ package com.android.systemui.bouncer.data.repository import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest -import com.android.keyguard.ViewMediatorCallback import com.android.systemui.SysuiTestCase import com.android.systemui.log.table.TableLogBuffer +import com.android.systemui.scene.SceneTestUtils import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.eq import com.android.systemui.util.time.SystemClock -import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.runBlocking -import kotlinx.coroutines.test.TestCoroutineScope +import kotlinx.coroutines.test.runTest import org.junit.Before import org.junit.Test import org.junit.runner.RunWith @@ -18,32 +16,34 @@ import org.mockito.Mock import org.mockito.Mockito import org.mockito.MockitoAnnotations -@OptIn(ExperimentalCoroutinesApi::class) @SmallTest @RunWith(AndroidJUnit4::class) class KeyguardBouncerRepositoryTest : SysuiTestCase() { @Mock private lateinit var systemClock: SystemClock - @Mock private lateinit var viewMediatorCallback: ViewMediatorCallback @Mock private lateinit var bouncerLogger: TableLogBuffer + + private val utils = SceneTestUtils(this) + private val testScope = utils.testScope + lateinit var underTest: KeyguardBouncerRepository @Before fun setup() { MockitoAnnotations.initMocks(this) - val testCoroutineScope = TestCoroutineScope() underTest = KeyguardBouncerRepositoryImpl( systemClock, - testCoroutineScope, + testScope.backgroundScope, bouncerLogger, ) } @Test - fun changingFlowValueTriggersLogging() = runBlocking { - underTest.setPrimaryShow(true) - Mockito.verify(bouncerLogger) - .logChange(eq(""), eq("PrimaryBouncerShow"), value = eq(false), any()) - } + fun changingFlowValueTriggersLogging() = + testScope.runTest { + underTest.setPrimaryShow(true) + Mockito.verify(bouncerLogger) + .logChange(eq(""), eq("PrimaryBouncerShow"), value = eq(false), any()) + } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/bouncer/ui/viewmodel/BouncerViewModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/bouncer/ui/viewmodel/BouncerViewModelTest.kt index 2c97809bf367..6ef518e3ab51 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/bouncer/ui/viewmodel/BouncerViewModelTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/bouncer/ui/viewmodel/BouncerViewModelTest.kt @@ -20,9 +20,11 @@ import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.authentication.data.model.AuthenticationMethodModel as DataLayerAuthenticationMethodModel +import com.android.systemui.authentication.data.model.AuthenticationMethodModel import com.android.systemui.authentication.data.repository.FakeAuthenticationRepository import com.android.systemui.authentication.domain.model.AuthenticationMethodModel as DomainLayerAuthenticationMethodModel import com.android.systemui.coroutines.collectLastValue +import com.android.systemui.flags.Flags import com.android.systemui.scene.SceneTestUtils import com.google.common.truth.Truth.assertThat import com.google.common.truth.Truth.assertWithMessage @@ -45,6 +47,7 @@ class BouncerViewModelTest : SysuiTestCase() { private val utils = SceneTestUtils(this) private val testScope = utils.testScope private val authenticationInteractor = utils.authenticationInteractor() + private val actionButtonInteractor = utils.bouncerActionButtonInteractor() private val deviceEntryInteractor = utils.deviceEntryInteractor( authenticationInteractor = authenticationInteractor, @@ -60,6 +63,7 @@ class BouncerViewModelTest : SysuiTestCase() { utils.bouncerViewModel( bouncerInteractor = bouncerInteractor, authenticationInteractor = authenticationInteractor, + actionButtonInteractor = actionButtonInteractor, ) @Test @@ -200,6 +204,28 @@ class BouncerViewModelTest : SysuiTestCase() { assertThat(throttlingDialogMessage).isNull() } + @Test + fun isSideBySideSupported() = + testScope.runTest { + val isSideBySideSupported by collectLastValue(underTest.isSideBySideSupported) + utils.featureFlags.set(Flags.FULL_SCREEN_USER_SWITCHER, true) + utils.authenticationRepository.setAuthenticationMethod(AuthenticationMethodModel.Pin) + assertThat(isSideBySideSupported).isTrue() + utils.authenticationRepository.setAuthenticationMethod( + AuthenticationMethodModel.Password + ) + assertThat(isSideBySideSupported).isTrue() + + utils.featureFlags.set(Flags.FULL_SCREEN_USER_SWITCHER, false) + utils.authenticationRepository.setAuthenticationMethod(AuthenticationMethodModel.Pin) + assertThat(isSideBySideSupported).isTrue() + + utils.authenticationRepository.setAuthenticationMethod( + AuthenticationMethodModel.Password + ) + assertThat(isSideBySideSupported).isFalse() + } + private fun authMethodsToTest(): List<DomainLayerAuthenticationMethodModel> { return listOf( DomainLayerAuthenticationMethodModel.None, diff --git a/packages/SystemUI/tests/src/com/android/systemui/bouncer/ui/viewmodel/KeyguardBouncerViewModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/bouncer/ui/viewmodel/KeyguardBouncerViewModelTest.kt index b75f3e0876ff..2cc8f0a47955 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/bouncer/ui/viewmodel/KeyguardBouncerViewModelTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/bouncer/ui/viewmodel/KeyguardBouncerViewModelTest.kt @@ -52,8 +52,7 @@ import org.mockito.MockitoAnnotations @RunWith(AndroidJUnit4::class) @kotlinx.coroutines.ExperimentalCoroutinesApi class KeyguardBouncerViewModelTest : SysuiTestCase() { - lateinit var underTest: KeyguardBouncerViewModel - lateinit var bouncerInteractor: PrimaryBouncerInteractor + @Mock lateinit var bouncerView: BouncerView @Mock private lateinit var keyguardStateController: KeyguardStateController @Mock private lateinit var keyguardSecurityModel: KeyguardSecurityModel @@ -62,9 +61,13 @@ class KeyguardBouncerViewModelTest : SysuiTestCase() { @Mock private lateinit var dismissCallbackRegistry: DismissCallbackRegistry @Mock private lateinit var mSelectedUserInteractor: SelectedUserInteractor @Mock private lateinit var keyguardUpdateMonitor: KeyguardUpdateMonitor + + lateinit var bouncerInteractor: PrimaryBouncerInteractor private val mainHandler = FakeHandler(Looper.getMainLooper()) val repository = FakeKeyguardBouncerRepository() + lateinit var underTest: KeyguardBouncerViewModel + @Before fun setup() { MockitoAnnotations.initMocks(this) diff --git a/packages/SystemUI/tests/src/com/android/systemui/bouncer/ui/viewmodel/PasswordBouncerViewModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/bouncer/ui/viewmodel/PasswordBouncerViewModelTest.kt index ba8dcef683c7..390742031381 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/bouncer/ui/viewmodel/PasswordBouncerViewModelTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/bouncer/ui/viewmodel/PasswordBouncerViewModelTest.kt @@ -61,7 +61,9 @@ class PasswordBouncerViewModelTest : SysuiTestCase() { utils.bouncerViewModel( bouncerInteractor = bouncerInteractor, authenticationInteractor = authenticationInteractor, + actionButtonInteractor = utils.bouncerActionButtonInteractor(), ) + private val underTest = PasswordBouncerViewModel( viewModelScope = testScope.backgroundScope, diff --git a/packages/SystemUI/tests/src/com/android/systemui/bouncer/ui/viewmodel/PatternBouncerViewModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/bouncer/ui/viewmodel/PatternBouncerViewModelTest.kt index bfaa6edefdca..47db4f8faeca 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/bouncer/ui/viewmodel/PatternBouncerViewModelTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/bouncer/ui/viewmodel/PatternBouncerViewModelTest.kt @@ -64,6 +64,7 @@ class PatternBouncerViewModelTest : SysuiTestCase() { utils.bouncerViewModel( bouncerInteractor = bouncerInteractor, authenticationInteractor = authenticationInteractor, + actionButtonInteractor = utils.bouncerActionButtonInteractor(), ) private val underTest = PatternBouncerViewModel( diff --git a/packages/SystemUI/tests/src/com/android/systemui/bouncer/ui/viewmodel/PinBouncerViewModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/bouncer/ui/viewmodel/PinBouncerViewModelTest.kt index 7873899f2d35..3ddac7e1ad1d 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/bouncer/ui/viewmodel/PinBouncerViewModelTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/bouncer/ui/viewmodel/PinBouncerViewModelTest.kt @@ -63,6 +63,7 @@ class PinBouncerViewModelTest : SysuiTestCase() { utils.bouncerViewModel( bouncerInteractor = bouncerInteractor, authenticationInteractor = authenticationInteractor, + actionButtonInteractor = utils.bouncerActionButtonInteractor(), ) private val underTest = PinBouncerViewModel( diff --git a/packages/SystemUI/tests/src/com/android/systemui/common/domain/interactor/ConfigurationInteractorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/common/domain/interactor/ConfigurationInteractorTest.kt new file mode 100644 index 000000000000..bfa36412ceb5 --- /dev/null +++ b/packages/SystemUI/tests/src/com/android/systemui/common/domain/interactor/ConfigurationInteractorTest.kt @@ -0,0 +1,138 @@ +/* + * 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.common.domain.interactor + +import android.content.res.Configuration +import android.graphics.Rect +import android.testing.AndroidTestingRunner +import android.view.Surface.ROTATION_0 +import android.view.Surface.ROTATION_90 +import android.view.Surface.Rotation +import androidx.test.filters.SmallTest +import com.android.systemui.SysuiTestCase +import com.android.systemui.common.ui.data.repository.ConfigurationRepositoryImpl +import com.android.systemui.coroutines.collectValues +import com.android.systemui.statusbar.policy.FakeConfigurationController +import com.android.systemui.util.mockito.mock +import com.google.common.truth.Truth.assertThat +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.test.TestScope +import kotlinx.coroutines.test.runCurrent +import kotlinx.coroutines.test.runTest +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith + +@OptIn(ExperimentalCoroutinesApi::class) +@SmallTest +@RunWith(AndroidTestingRunner::class) +open class ConfigurationInteractorTest : SysuiTestCase() { + + private val testScope = TestScope() + + private val configurationController = FakeConfigurationController() + private val configurationRepository = + ConfigurationRepositoryImpl( + configurationController, + context, + testScope.backgroundScope, + mock() + ) + + private lateinit var configuration: Configuration + private lateinit var underTest: ConfigurationInteractor + + @Before + fun setUp() { + configuration = context.resources.configuration + + val testableResources = context.getOrCreateTestableResources() + testableResources.overrideConfiguration(configuration) + + underTest = ConfigurationInteractorImpl(configurationRepository) + } + + @Test + fun maxBoundsChange_emitsMaxBoundsChange() = + testScope.runTest { + val values by collectValues(underTest.naturalMaxBounds) + + updateDisplay(width = DISPLAY_WIDTH, height = DISPLAY_HEIGHT) + runCurrent() + updateDisplay(width = DISPLAY_WIDTH * 2, height = DISPLAY_HEIGHT * 3) + runCurrent() + + assertThat(values) + .containsExactly( + Rect(0, 0, DISPLAY_WIDTH, DISPLAY_HEIGHT), + Rect(0, 0, DISPLAY_WIDTH * 2, DISPLAY_HEIGHT * 3), + ) + .inOrder() + } + + @Test + fun maxBoundsSameOnConfigChange_doesNotEmitMaxBoundsChange() = + testScope.runTest { + val values by collectValues(underTest.naturalMaxBounds) + + updateDisplay(width = DISPLAY_WIDTH, height = DISPLAY_HEIGHT) + runCurrent() + updateDisplay(width = DISPLAY_WIDTH, height = DISPLAY_HEIGHT) + runCurrent() + + assertThat(values).containsExactly(Rect(0, 0, DISPLAY_WIDTH, DISPLAY_HEIGHT)) + } + + @Test + fun firstMaxBoundsChange_emitsMaxBoundsChange() = + testScope.runTest { + val values by collectValues(underTest.naturalMaxBounds) + + updateDisplay(width = DISPLAY_WIDTH, height = DISPLAY_HEIGHT) + runCurrent() + + assertThat(values).containsExactly(Rect(0, 0, DISPLAY_WIDTH, DISPLAY_HEIGHT)) + } + + @Test + fun displayRotatedButMaxBoundsTheSame_doesNotEmitNewMaxBoundsChange() = + testScope.runTest { + val values by collectValues(underTest.naturalMaxBounds) + + updateDisplay(width = DISPLAY_WIDTH, height = DISPLAY_HEIGHT) + runCurrent() + updateDisplay(width = DISPLAY_HEIGHT, height = DISPLAY_WIDTH, rotation = ROTATION_90) + runCurrent() + + assertThat(values).containsExactly(Rect(0, 0, DISPLAY_WIDTH, DISPLAY_HEIGHT)) + } + + private fun updateDisplay( + width: Int = DISPLAY_WIDTH, + height: Int = DISPLAY_HEIGHT, + @Rotation rotation: Int = ROTATION_0 + ) { + configuration.windowConfiguration.maxBounds.set(Rect(0, 0, width, height)) + configuration.windowConfiguration.displayRotation = rotation + + configurationController.onConfigurationChanged(configuration) + } + + private companion object { + private const val DISPLAY_WIDTH = 100 + private const val DISPLAY_HEIGHT = 200 + } +} diff --git a/packages/SystemUI/tests/src/com/android/systemui/communal/data/repository/CommunalMediaRepositoryImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/communal/data/repository/CommunalMediaRepositoryImplTest.kt new file mode 100644 index 000000000000..455f9865edf3 --- /dev/null +++ b/packages/SystemUI/tests/src/com/android/systemui/communal/data/repository/CommunalMediaRepositoryImplTest.kt @@ -0,0 +1,132 @@ +/* + * 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.communal.data.repository + +import androidx.test.ext.junit.runners.AndroidJUnit4 +import androidx.test.filters.SmallTest +import com.android.systemui.SysuiTestCase +import com.android.systemui.coroutines.collectLastValue +import com.android.systemui.media.controls.models.player.MediaData +import com.android.systemui.media.controls.pipeline.MediaDataManager +import com.android.systemui.util.mockito.KotlinArgumentCaptor +import com.android.systemui.util.mockito.whenever +import com.google.common.truth.Truth.assertThat +import kotlin.test.Test +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.test.StandardTestDispatcher +import kotlinx.coroutines.test.TestScope +import kotlinx.coroutines.test.runCurrent +import kotlinx.coroutines.test.runTest +import org.junit.Before +import org.junit.runner.RunWith +import org.mockito.Mock +import org.mockito.Mockito.verify +import org.mockito.MockitoAnnotations + +@OptIn(ExperimentalCoroutinesApi::class) +@SmallTest +@RunWith(AndroidJUnit4::class) +class CommunalMediaRepositoryImplTest : SysuiTestCase() { + @Mock private lateinit var mediaDataManager: MediaDataManager + @Mock private lateinit var mediaData: MediaData + + private val mediaDataListenerCaptor: KotlinArgumentCaptor<MediaDataManager.Listener> by lazy { + KotlinArgumentCaptor(MediaDataManager.Listener::class.java) + } + + private lateinit var mediaRepository: CommunalMediaRepository + + private val testDispatcher = StandardTestDispatcher() + private val testScope = TestScope(testDispatcher) + + @Before + fun setUp() { + MockitoAnnotations.initMocks(this) + } + + @Test + fun mediaPlaying_defaultsToFalse() = + testScope.runTest { + mediaRepository = CommunalMediaRepositoryImpl(mediaDataManager) + + val isMediaPlaying = collectLastValue(mediaRepository.mediaPlaying) + runCurrent() + assertThat(isMediaPlaying()).isFalse() + } + + @Test + fun mediaPlaying_emitsInitialValue() = + testScope.runTest { + // Start with media available. + whenever(mediaDataManager.hasAnyMediaOrRecommendation()).thenReturn(true) + + mediaRepository = CommunalMediaRepositoryImpl(mediaDataManager) + + val isMediaPlaying = collectLastValue(mediaRepository.mediaPlaying) + runCurrent() + assertThat(isMediaPlaying()).isTrue() + } + + @Test + fun mediaPlaying_updatesWhenMediaDataLoaded() = + testScope.runTest { + mediaRepository = CommunalMediaRepositoryImpl(mediaDataManager) + + // Initial value is false. + var isMediaPlaying = collectLastValue(mediaRepository.mediaPlaying) + runCurrent() + assertThat(isMediaPlaying()).isFalse() + + // Listener is added + verify(mediaDataManager).addListener(mediaDataListenerCaptor.capture()) + + // Change to media available and notify the listener. + whenever(mediaDataManager.hasAnyMediaOrRecommendation()).thenReturn(true) + mediaDataListenerCaptor.value.onMediaDataLoaded("key", null, mediaData) + + // mediaPlaying now returns true. + isMediaPlaying = collectLastValue(mediaRepository.mediaPlaying) + runCurrent() + assertThat(isMediaPlaying()).isTrue() + } + + @Test + fun mediaPlaying_updatesWhenMediaDataRemoved() = + testScope.runTest { + // Start with media available. + whenever(mediaDataManager.hasAnyMediaOrRecommendation()).thenReturn(true) + + mediaRepository = CommunalMediaRepositoryImpl(mediaDataManager) + + // Initial value is true. + var isMediaPlaying = collectLastValue(mediaRepository.mediaPlaying) + runCurrent() + assertThat(isMediaPlaying()).isTrue() + + // Listener is added. + verify(mediaDataManager).addListener(mediaDataListenerCaptor.capture()) + + // Change to media unavailable and notify the listener. + whenever(mediaDataManager.hasAnyMediaOrRecommendation()).thenReturn(false) + mediaDataListenerCaptor.value.onMediaDataLoaded("key", null, mediaData) + + // mediaPlaying now returns false. + isMediaPlaying = collectLastValue(mediaRepository.mediaPlaying) + runCurrent() + assertThat(isMediaPlaying()).isFalse() + } +} diff --git a/packages/SystemUI/tests/src/com/android/systemui/communal/domain/interactor/CommunalInteractorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/communal/domain/interactor/CommunalInteractorTest.kt index 2f17b6fa35ed..08d54c001d11 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/communal/domain/interactor/CommunalInteractorTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/communal/domain/interactor/CommunalInteractorTest.kt @@ -17,14 +17,26 @@ package com.android.systemui.communal.domain.interactor +import android.app.smartspace.SmartspaceTarget +import android.provider.Settings +import android.provider.Settings.Secure.HUB_MODE_TUTORIAL_COMPLETED +import android.widget.RemoteViews import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase +import com.android.systemui.communal.data.repository.FakeCommunalMediaRepository import com.android.systemui.communal.data.repository.FakeCommunalRepository +import com.android.systemui.communal.data.repository.FakeCommunalTutorialRepository import com.android.systemui.communal.data.repository.FakeCommunalWidgetRepository +import com.android.systemui.communal.domain.model.CommunalContentModel import com.android.systemui.communal.shared.model.CommunalAppWidgetInfo import com.android.systemui.communal.shared.model.CommunalSceneKey +import com.android.systemui.communal.shared.model.CommunalWidgetContentModel import com.android.systemui.coroutines.collectLastValue +import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository +import com.android.systemui.smartspace.data.repository.FakeSmartspaceRepository +import com.android.systemui.util.mockito.mock +import com.android.systemui.util.mockito.whenever import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.TestScope @@ -34,6 +46,7 @@ import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.mockito.Mock +import org.mockito.Mockito.mock import org.mockito.MockitoAnnotations @SmallTest @@ -44,24 +57,37 @@ class CommunalInteractorTest : SysuiTestCase() { private lateinit var testScope: TestScope + private lateinit var tutorialRepository: FakeCommunalTutorialRepository private lateinit var communalRepository: FakeCommunalRepository + private lateinit var mediaRepository: FakeCommunalMediaRepository private lateinit var widgetRepository: FakeCommunalWidgetRepository - private lateinit var interactor: CommunalInteractor + private lateinit var smartspaceRepository: FakeSmartspaceRepository + private lateinit var keyguardRepository: FakeKeyguardRepository + + private lateinit var underTest: CommunalInteractor @Before fun setUp() { MockitoAnnotations.initMocks(this) testScope = TestScope() - communalRepository = FakeCommunalRepository() - widgetRepository = FakeCommunalWidgetRepository() - interactor = CommunalInteractor(communalRepository, widgetRepository) + + val withDeps = CommunalInteractorFactory.create() + + tutorialRepository = withDeps.tutorialRepository + communalRepository = withDeps.communalRepository + mediaRepository = withDeps.mediaRepository + widgetRepository = withDeps.widgetRepository + smartspaceRepository = withDeps.smartspaceRepository + keyguardRepository = withDeps.keyguardRepository + + underTest = withDeps.communalInteractor } @Test fun appWidgetInfoFlow() = testScope.runTest { - val lastAppWidgetInfo = collectLastValue(interactor.appWidgetInfo) + val lastAppWidgetInfo = collectLastValue(underTest.appWidgetInfo) runCurrent() assertThat(lastAppWidgetInfo()).isNull() @@ -74,31 +100,215 @@ class CommunalInteractorTest : SysuiTestCase() { fun communalEnabled() = testScope.runTest { communalRepository.setIsCommunalEnabled(true) - - val interactor = CommunalInteractor(communalRepository, widgetRepository) - assertThat(interactor.isCommunalEnabled).isTrue() + assertThat(underTest.isCommunalEnabled).isTrue() } @Test fun communalDisabled() = testScope.runTest { communalRepository.setIsCommunalEnabled(false) + assertThat(underTest.isCommunalEnabled).isFalse() + } + + @Test + fun tutorial_tutorialNotCompletedAndKeyguardVisible_showTutorialContent() = + testScope.runTest { + // Keyguard showing, and tutorial not started. + keyguardRepository.setKeyguardShowing(true) + keyguardRepository.setKeyguardOccluded(false) + tutorialRepository.setTutorialSettingState( + Settings.Secure.HUB_MODE_TUTORIAL_NOT_STARTED + ) + + val communalContent by collectLastValue(underTest.communalContent) + + assertThat(communalContent!!).isNotEmpty() + communalContent!!.forEach { model -> + assertThat(model is CommunalContentModel.Tutorial).isTrue() + } + } + + @Test + fun widget_tutorialCompletedAndWidgetsAvailable_showWidgetContent() = + testScope.runTest { + // Keyguard showing, and tutorial completed. + keyguardRepository.setKeyguardShowing(true) + keyguardRepository.setKeyguardOccluded(false) + tutorialRepository.setTutorialSettingState(HUB_MODE_TUTORIAL_COMPLETED) + + // Widgets are available. + val widgets = + listOf( + CommunalWidgetContentModel( + appWidgetId = 0, + priority = 30, + providerInfo = mock(), + ), + CommunalWidgetContentModel( + appWidgetId = 1, + priority = 20, + providerInfo = mock(), + ), + CommunalWidgetContentModel( + appWidgetId = 2, + priority = 10, + providerInfo = mock(), + ), + ) + widgetRepository.setCommunalWidgets(widgets) + + val communalContent by collectLastValue(underTest.communalContent) + + assertThat(communalContent!!).isNotEmpty() + communalContent!!.forEachIndexed { index, model -> + assertThat((model as CommunalContentModel.Widget).appWidgetId) + .isEqualTo(widgets[index].appWidgetId) + } + } + + @Test + fun smartspace_onlyShowTimersWithRemoteViews() = + testScope.runTest { + // Keyguard showing, and tutorial completed. + keyguardRepository.setKeyguardShowing(true) + keyguardRepository.setKeyguardOccluded(false) + tutorialRepository.setTutorialSettingState(HUB_MODE_TUTORIAL_COMPLETED) + + // Not a timer + val target1 = mock(SmartspaceTarget::class.java) + whenever(target1.smartspaceTargetId).thenReturn("target1") + whenever(target1.featureType).thenReturn(SmartspaceTarget.FEATURE_WEATHER) + whenever(target1.remoteViews).thenReturn(mock(RemoteViews::class.java)) + + // Does not have RemoteViews + val target2 = mock(SmartspaceTarget::class.java) + whenever(target1.smartspaceTargetId).thenReturn("target2") + whenever(target1.featureType).thenReturn(SmartspaceTarget.FEATURE_TIMER) + whenever(target1.remoteViews).thenReturn(null) + + // Timer and has RemoteViews + val target3 = mock(SmartspaceTarget::class.java) + whenever(target1.smartspaceTargetId).thenReturn("target3") + whenever(target1.featureType).thenReturn(SmartspaceTarget.FEATURE_TIMER) + whenever(target1.remoteViews).thenReturn(mock(RemoteViews::class.java)) + + val targets = listOf(target1, target2, target3) + smartspaceRepository.setLockscreenSmartspaceTargets(targets) - val interactor = CommunalInteractor(communalRepository, widgetRepository) - assertThat(interactor.isCommunalEnabled).isFalse() + val communalContent by collectLastValue(underTest.communalContent) + assertThat(communalContent?.size).isEqualTo(1) + assertThat(communalContent?.get(0)?.key).isEqualTo("smartspace_target3") + } + + @Test + fun smartspace_smartspaceAndWidgetsAvailable_showSmartspaceAndWidgetContent() = + testScope.runTest { + // Keyguard showing, and tutorial completed. + keyguardRepository.setKeyguardShowing(true) + keyguardRepository.setKeyguardOccluded(false) + tutorialRepository.setTutorialSettingState(HUB_MODE_TUTORIAL_COMPLETED) + + // Widgets available. + val widgets = + listOf( + CommunalWidgetContentModel( + appWidgetId = 0, + priority = 30, + providerInfo = mock(), + ), + CommunalWidgetContentModel( + appWidgetId = 1, + priority = 20, + providerInfo = mock(), + ), + ) + widgetRepository.setCommunalWidgets(widgets) + + // Smartspace available. + val target = mock(SmartspaceTarget::class.java) + whenever(target.smartspaceTargetId).thenReturn("target") + whenever(target.featureType).thenReturn(SmartspaceTarget.FEATURE_TIMER) + whenever(target.remoteViews).thenReturn(mock(RemoteViews::class.java)) + smartspaceRepository.setLockscreenSmartspaceTargets(listOf(target)) + + val communalContent by collectLastValue(underTest.communalContent) + + assertThat(communalContent?.size).isEqualTo(3) + assertThat(communalContent?.get(0)?.key).isEqualTo("smartspace_target") + assertThat(communalContent?.get(1)?.key).isEqualTo("widget_0") + assertThat(communalContent?.get(2)?.key).isEqualTo("widget_1") + } + + @Test + fun umo_mediaPlaying_showsUmo() = + testScope.runTest { + // Tutorial completed. + tutorialRepository.setTutorialSettingState(HUB_MODE_TUTORIAL_COMPLETED) + + // Media is playing. + mediaRepository.mediaPlaying.value = true + + val communalContent by collectLastValue(underTest.communalContent) + + assertThat(communalContent?.size).isEqualTo(1) + assertThat(communalContent?.get(0)).isInstanceOf(CommunalContentModel.Umo::class.java) + assertThat(communalContent?.get(0)?.key).isEqualTo(CommunalContentModel.UMO_KEY) + } + + @Test + fun contentOrdering() = + testScope.runTest { + tutorialRepository.setTutorialSettingState(HUB_MODE_TUTORIAL_COMPLETED) + + // Widgets available. + val widgets = + listOf( + CommunalWidgetContentModel( + appWidgetId = 0, + priority = 30, + providerInfo = mock(), + ), + CommunalWidgetContentModel( + appWidgetId = 1, + priority = 20, + providerInfo = mock(), + ), + ) + widgetRepository.setCommunalWidgets(widgets) + + // Smartspace available. + val target = mock(SmartspaceTarget::class.java) + whenever(target.smartspaceTargetId).thenReturn("target") + whenever(target.featureType).thenReturn(SmartspaceTarget.FEATURE_TIMER) + whenever(target.remoteViews).thenReturn(mock(RemoteViews::class.java)) + smartspaceRepository.setLockscreenSmartspaceTargets(listOf(target)) + + // Media playing. + mediaRepository.mediaPlaying.value = true + + val communalContent by collectLastValue(underTest.communalContent) + + // Order is smart space, then UMO, then widget content. + assertThat(communalContent?.size).isEqualTo(4) + assertThat(communalContent?.get(0)) + .isInstanceOf(CommunalContentModel.Smartspace::class.java) + assertThat(communalContent?.get(1)).isInstanceOf(CommunalContentModel.Umo::class.java) + assertThat(communalContent?.get(2)) + .isInstanceOf(CommunalContentModel.Widget::class.java) + assertThat(communalContent?.get(3)) + .isInstanceOf(CommunalContentModel.Widget::class.java) } @Test fun listensToSceneChange() = testScope.runTest { - val interactor = CommunalInteractor(communalRepository, widgetRepository) - var desiredScene = collectLastValue(interactor.desiredScene) + var desiredScene = collectLastValue(underTest.desiredScene) runCurrent() assertThat(desiredScene()).isEqualTo(CommunalSceneKey.Blank) val targetScene = CommunalSceneKey.Communal communalRepository.setDesiredScene(targetScene) - desiredScene = collectLastValue(interactor.desiredScene) + desiredScene = collectLastValue(underTest.desiredScene) runCurrent() assertThat(desiredScene()).isEqualTo(targetScene) } @@ -106,10 +316,9 @@ class CommunalInteractorTest : SysuiTestCase() { @Test fun updatesScene() = testScope.runTest { - val interactor = CommunalInteractor(communalRepository, widgetRepository) val targetScene = CommunalSceneKey.Communal - interactor.onSceneChanged(targetScene) + underTest.onSceneChanged(targetScene) val desiredScene = collectLastValue(communalRepository.desiredScene) runCurrent() @@ -119,15 +328,13 @@ class CommunalInteractorTest : SysuiTestCase() { @Test fun isCommunalShowing() = testScope.runTest { - val interactor = CommunalInteractor(communalRepository, widgetRepository) - - var isCommunalShowing = collectLastValue(interactor.isCommunalShowing) + var isCommunalShowing = collectLastValue(underTest.isCommunalShowing) runCurrent() assertThat(isCommunalShowing()).isEqualTo(false) - interactor.onSceneChanged(CommunalSceneKey.Communal) + underTest.onSceneChanged(CommunalSceneKey.Communal) - isCommunalShowing = collectLastValue(interactor.isCommunalShowing) + isCommunalShowing = collectLastValue(underTest.isCommunalShowing) runCurrent() assertThat(isCommunalShowing()).isEqualTo(true) } diff --git a/packages/SystemUI/tests/src/com/android/systemui/communal/domain/interactor/CommunalTutorialInteractorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/communal/domain/interactor/CommunalTutorialInteractorTest.kt deleted file mode 100644 index 61d1502f307e..000000000000 --- a/packages/SystemUI/tests/src/com/android/systemui/communal/domain/interactor/CommunalTutorialInteractorTest.kt +++ /dev/null @@ -1,317 +0,0 @@ -/* - * Copyright (C) 2023 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.systemui.communal.domain.interactor - -import android.provider.Settings.Secure.HUB_MODE_TUTORIAL_COMPLETED -import android.provider.Settings.Secure.HUB_MODE_TUTORIAL_NOT_STARTED -import android.provider.Settings.Secure.HUB_MODE_TUTORIAL_STARTED -import androidx.test.filters.SmallTest -import com.android.systemui.SysuiTestCase -import com.android.systemui.communal.data.repository.FakeCommunalRepository -import com.android.systemui.communal.data.repository.FakeCommunalTutorialRepository -import com.android.systemui.communal.data.repository.FakeCommunalWidgetRepository -import com.android.systemui.communal.shared.model.CommunalSceneKey -import com.android.systemui.coroutines.collectLastValue -import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository -import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor -import com.android.systemui.keyguard.domain.interactor.KeyguardInteractorFactory -import com.android.systemui.scene.SceneTestUtils -import com.android.systemui.scene.domain.interactor.SceneInteractor -import com.android.systemui.scene.shared.flag.FakeSceneContainerFlags -import com.android.systemui.scene.shared.model.SceneKey -import com.android.systemui.scene.shared.model.SceneModel -import com.android.systemui.settings.UserTracker -import com.android.systemui.util.mockito.mock -import com.android.systemui.util.mockito.whenever -import com.google.common.truth.Truth.assertThat -import kotlinx.coroutines.test.TestScope -import kotlinx.coroutines.test.runTest -import org.junit.Before -import org.junit.Test -import org.junit.runner.RunWith -import org.junit.runners.JUnit4 -import org.mockito.Mock -import org.mockito.MockitoAnnotations - -@SmallTest -@RunWith(JUnit4::class) -class CommunalTutorialInteractorTest : SysuiTestCase() { - - @Mock private lateinit var userTracker: UserTracker - - private lateinit var testScope: TestScope - private lateinit var underTest: CommunalTutorialInteractor - private lateinit var keyguardRepository: FakeKeyguardRepository - private lateinit var keyguardInteractor: KeyguardInteractor - private lateinit var communalTutorialRepository: FakeCommunalTutorialRepository - private lateinit var sceneContainerFlags: FakeSceneContainerFlags - private lateinit var communalInteractor: CommunalInteractor - private lateinit var communalRepository: FakeCommunalRepository - - private val utils = SceneTestUtils(this) - private lateinit var sceneInteractor: SceneInteractor - - @Before - fun setUp() { - MockitoAnnotations.initMocks(this) - - sceneInteractor = utils.sceneInteractor() - testScope = utils.testScope - sceneContainerFlags = utils.sceneContainerFlags.apply { enabled = false } - communalRepository = FakeCommunalRepository(isCommunalEnabled = true) - communalInteractor = CommunalInteractor(communalRepository, FakeCommunalWidgetRepository()) - - val withDeps = KeyguardInteractorFactory.create() - keyguardInteractor = withDeps.keyguardInteractor - keyguardRepository = withDeps.repository - communalTutorialRepository = FakeCommunalTutorialRepository() - - underTest = - CommunalTutorialInteractor( - scope = testScope.backgroundScope, - communalTutorialRepository = communalTutorialRepository, - keyguardInteractor = keyguardInteractor, - communalInteractor = communalInteractor, - sceneContainerFlags = sceneContainerFlags, - sceneInteractor = sceneInteractor, - ) - - whenever(userTracker.userHandle).thenReturn(mock()) - } - - @Test - fun tutorialUnavailable_whenKeyguardNotVisible() = - testScope.runTest { - val isTutorialAvailable by collectLastValue(underTest.isTutorialAvailable) - communalTutorialRepository.setTutorialSettingState(HUB_MODE_TUTORIAL_NOT_STARTED) - keyguardRepository.setKeyguardShowing(false) - assertThat(isTutorialAvailable).isFalse() - } - - @Test - fun tutorialUnavailable_whenTutorialIsCompleted() = - testScope.runTest { - val isTutorialAvailable by collectLastValue(underTest.isTutorialAvailable) - keyguardRepository.setKeyguardShowing(true) - keyguardRepository.setKeyguardOccluded(false) - communalInteractor.onSceneChanged(CommunalSceneKey.Blank) - communalTutorialRepository.setTutorialSettingState(HUB_MODE_TUTORIAL_COMPLETED) - assertThat(isTutorialAvailable).isFalse() - } - - @Test - fun tutorialAvailable_whenTutorialNotStarted() = - testScope.runTest { - val isTutorialAvailable by collectLastValue(underTest.isTutorialAvailable) - keyguardRepository.setKeyguardShowing(true) - keyguardRepository.setKeyguardOccluded(false) - communalInteractor.onSceneChanged(CommunalSceneKey.Blank) - communalTutorialRepository.setTutorialSettingState(HUB_MODE_TUTORIAL_NOT_STARTED) - assertThat(isTutorialAvailable).isTrue() - } - - @Test - fun tutorialAvailable_whenTutorialIsStarted() = - testScope.runTest { - val isTutorialAvailable by collectLastValue(underTest.isTutorialAvailable) - keyguardRepository.setKeyguardShowing(true) - keyguardRepository.setKeyguardOccluded(false) - communalInteractor.onSceneChanged(CommunalSceneKey.Communal) - communalTutorialRepository.setTutorialSettingState(HUB_MODE_TUTORIAL_STARTED) - assertThat(isTutorialAvailable).isTrue() - } - - /* Testing tutorial states with transitions when flexiglass off */ - @Test - fun tutorialState_notStartedAndCommunalSceneShowing_tutorialStarted() = - testScope.runTest { - val tutorialSettingState by - collectLastValue(communalTutorialRepository.tutorialSettingState) - val currentScene by collectLastValue(communalInteractor.desiredScene) - communalTutorialRepository.setTutorialSettingState(HUB_MODE_TUTORIAL_NOT_STARTED) - - communalInteractor.onSceneChanged(CommunalSceneKey.Communal) - - assertThat(currentScene).isEqualTo(CommunalSceneKey.Communal) - assertThat(tutorialSettingState).isEqualTo(HUB_MODE_TUTORIAL_STARTED) - } - - @Test - fun tutorialState_startedAndCommunalSceneShowing_stateWillNotUpdate() = - testScope.runTest { - val tutorialSettingState by - collectLastValue(communalTutorialRepository.tutorialSettingState) - val currentScene by collectLastValue(communalInteractor.desiredScene) - communalTutorialRepository.setTutorialSettingState(HUB_MODE_TUTORIAL_STARTED) - - communalInteractor.onSceneChanged(CommunalSceneKey.Communal) - - assertThat(currentScene).isEqualTo(CommunalSceneKey.Communal) - assertThat(tutorialSettingState).isEqualTo(HUB_MODE_TUTORIAL_STARTED) - } - - @Test - fun tutorialState_completedAndCommunalSceneShowing_stateWillNotUpdate() = - testScope.runTest { - val tutorialSettingState by - collectLastValue(communalTutorialRepository.tutorialSettingState) - val currentScene by collectLastValue(communalInteractor.desiredScene) - communalTutorialRepository.setTutorialSettingState(HUB_MODE_TUTORIAL_COMPLETED) - - communalInteractor.onSceneChanged(CommunalSceneKey.Communal) - - assertThat(currentScene).isEqualTo(CommunalSceneKey.Communal) - assertThat(tutorialSettingState).isEqualTo(HUB_MODE_TUTORIAL_COMPLETED) - } - - @Test - fun tutorialState_notStartedAndCommunalSceneNotShowing_stateWillNotUpdate() = - testScope.runTest { - val tutorialSettingState by - collectLastValue(communalTutorialRepository.tutorialSettingState) - val currentScene by collectLastValue(communalInteractor.desiredScene) - communalTutorialRepository.setTutorialSettingState(HUB_MODE_TUTORIAL_NOT_STARTED) - - communalInteractor.onSceneChanged(CommunalSceneKey.Blank) - - assertThat(currentScene).isEqualTo(CommunalSceneKey.Blank) - assertThat(tutorialSettingState).isEqualTo(HUB_MODE_TUTORIAL_NOT_STARTED) - } - - @Test - fun tutorialState_startedAndCommunalSceneNotShowing_tutorialCompleted() = - testScope.runTest { - val tutorialSettingState by - collectLastValue(communalTutorialRepository.tutorialSettingState) - val currentScene by collectLastValue(communalInteractor.desiredScene) - communalInteractor.onSceneChanged(CommunalSceneKey.Communal) - communalTutorialRepository.setTutorialSettingState(HUB_MODE_TUTORIAL_STARTED) - - communalInteractor.onSceneChanged(CommunalSceneKey.Blank) - - assertThat(currentScene).isEqualTo(CommunalSceneKey.Blank) - assertThat(tutorialSettingState).isEqualTo(HUB_MODE_TUTORIAL_COMPLETED) - } - - @Test - fun tutorialState_completedAndCommunalSceneNotShowing_stateWillNotUpdate() = - testScope.runTest { - val tutorialSettingState by - collectLastValue(communalTutorialRepository.tutorialSettingState) - val currentScene by collectLastValue(communalInteractor.desiredScene) - communalInteractor.onSceneChanged(CommunalSceneKey.Communal) - communalTutorialRepository.setTutorialSettingState(HUB_MODE_TUTORIAL_COMPLETED) - - communalInteractor.onSceneChanged(CommunalSceneKey.Blank) - - assertThat(currentScene).isEqualTo(CommunalSceneKey.Blank) - assertThat(tutorialSettingState).isEqualTo(HUB_MODE_TUTORIAL_COMPLETED) - } - - /* Testing tutorial states with transitions when flexiglass on */ - @Test - fun tutorialState_notStartedCommunalSceneShowingAndFlexiglassOn_tutorialStarted() = - testScope.runTest { - sceneContainerFlags.enabled = true - val tutorialSettingState by - collectLastValue(communalTutorialRepository.tutorialSettingState) - val currentScene by collectLastValue(sceneInteractor.desiredScene) - communalTutorialRepository.setTutorialSettingState(HUB_MODE_TUTORIAL_NOT_STARTED) - - sceneInteractor.onSceneChanged(SceneModel(SceneKey.Communal), "reason") - - assertThat(currentScene).isEqualTo(SceneModel(SceneKey.Communal)) - assertThat(tutorialSettingState).isEqualTo(HUB_MODE_TUTORIAL_STARTED) - } - - @Test - fun tutorialState_startedCommunalSceneShowingAndFlexiglassOn_stateWillNotUpdate() = - testScope.runTest { - sceneContainerFlags.enabled = true - val tutorialSettingState by - collectLastValue(communalTutorialRepository.tutorialSettingState) - val currentScene by collectLastValue(sceneInteractor.desiredScene) - communalTutorialRepository.setTutorialSettingState(HUB_MODE_TUTORIAL_STARTED) - - sceneInteractor.onSceneChanged(SceneModel(SceneKey.Communal), "reason") - - assertThat(currentScene).isEqualTo(SceneModel(SceneKey.Communal)) - assertThat(tutorialSettingState).isEqualTo(HUB_MODE_TUTORIAL_STARTED) - } - - @Test - fun tutorialState_completedCommunalSceneShowingAndFlexiglassOn_stateWillNotUpdate() = - testScope.runTest { - sceneContainerFlags.enabled = true - val tutorialSettingState by - collectLastValue(communalTutorialRepository.tutorialSettingState) - val currentScene by collectLastValue(sceneInteractor.desiredScene) - communalTutorialRepository.setTutorialSettingState(HUB_MODE_TUTORIAL_COMPLETED) - - sceneInteractor.onSceneChanged(SceneModel(SceneKey.Communal), "reason") - - assertThat(currentScene).isEqualTo(SceneModel(SceneKey.Communal)) - assertThat(tutorialSettingState).isEqualTo(HUB_MODE_TUTORIAL_COMPLETED) - } - - @Test - fun tutorialState_notStartedCommunalSceneNotShowingAndFlexiglassOn_stateWillNotUpdate() = - testScope.runTest { - sceneContainerFlags.enabled = true - val tutorialSettingState by - collectLastValue(communalTutorialRepository.tutorialSettingState) - val currentScene by collectLastValue(sceneInteractor.desiredScene) - communalTutorialRepository.setTutorialSettingState(HUB_MODE_TUTORIAL_NOT_STARTED) - - sceneInteractor.onSceneChanged(SceneModel(SceneKey.Lockscreen), "reason") - - assertThat(currentScene).isEqualTo(SceneModel(SceneKey.Lockscreen)) - assertThat(tutorialSettingState).isEqualTo(HUB_MODE_TUTORIAL_NOT_STARTED) - } - - @Test - fun tutorialState_startedCommunalSceneNotShowingAndFlexiglassOn_tutorialCompleted() = - testScope.runTest { - sceneContainerFlags.enabled = true - val tutorialSettingState by - collectLastValue(communalTutorialRepository.tutorialSettingState) - val currentScene by collectLastValue(sceneInteractor.desiredScene) - sceneInteractor.onSceneChanged(SceneModel(SceneKey.Communal), "reason") - communalTutorialRepository.setTutorialSettingState(HUB_MODE_TUTORIAL_STARTED) - - sceneInteractor.onSceneChanged(SceneModel(SceneKey.Lockscreen), "reason") - - assertThat(currentScene).isEqualTo(SceneModel(SceneKey.Lockscreen)) - assertThat(tutorialSettingState).isEqualTo(HUB_MODE_TUTORIAL_COMPLETED) - } - - @Test - fun tutorialState_completedCommunalSceneNotShowingAndFlexiglassOn_stateWillNotUpdate() = - testScope.runTest { - sceneContainerFlags.enabled = true - val tutorialSettingState by - collectLastValue(communalTutorialRepository.tutorialSettingState) - val currentScene by collectLastValue(sceneInteractor.desiredScene) - sceneInteractor.onSceneChanged(SceneModel(SceneKey.Communal), "reason") - communalTutorialRepository.setTutorialSettingState(HUB_MODE_TUTORIAL_COMPLETED) - - sceneInteractor.onSceneChanged(SceneModel(SceneKey.Lockscreen), "reason") - - assertThat(currentScene).isEqualTo(SceneModel(SceneKey.Lockscreen)) - assertThat(tutorialSettingState).isEqualTo(HUB_MODE_TUTORIAL_COMPLETED) - } -} diff --git a/packages/SystemUI/tests/src/com/android/systemui/complication/ComplicationCollectionLiveDataTest.java b/packages/SystemUI/tests/src/com/android/systemui/complication/ComplicationCollectionLiveDataTest.java index 40f0ed3626db..288f3b651a3c 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/complication/ComplicationCollectionLiveDataTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/complication/ComplicationCollectionLiveDataTest.java @@ -33,6 +33,7 @@ import com.android.systemui.flags.FakeFeatureFlags; import com.android.systemui.flags.Flags; import com.android.systemui.log.core.FakeLogBuffer; import com.android.systemui.util.concurrency.FakeExecutor; +import com.android.systemui.util.reference.FakeWeakReferenceFactory; import com.android.systemui.util.time.FakeSystemClock; import org.junit.Before; @@ -68,7 +69,8 @@ public class ComplicationCollectionLiveDataTest extends SysuiTestCase { mExecutor, /* overlayEnabled= */ true, mFeatureFlags, - FakeLogBuffer.Factory.Companion.create()); + FakeLogBuffer.Factory.Companion.create(), + new FakeWeakReferenceFactory()); mLiveData = new ComplicationCollectionLiveData(mStateController); } diff --git a/packages/SystemUI/tests/src/com/android/systemui/display/domain/interactor/ConnectedDisplayInteractorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/display/domain/interactor/ConnectedDisplayInteractorTest.kt index 0db3de2ce0dd..1f18705edfdb 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/display/domain/interactor/ConnectedDisplayInteractorTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/display/domain/interactor/ConnectedDisplayInteractorTest.kt @@ -63,7 +63,8 @@ class ConnectedDisplayInteractorTest : SysuiTestCase() { ConnectedDisplayInteractorImpl( virtualDeviceManager, fakeKeyguardRepository, - fakeDisplayRepository + fakeDisplayRepository, + UnconfinedTestDispatcher(), ) private val testScope = TestScope(UnconfinedTestDispatcher()) diff --git a/packages/SystemUI/tests/src/com/android/systemui/dreams/DreamOverlayStateControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/dreams/DreamOverlayStateControllerTest.java index 365f67b5e566..6d5cd49b8af6 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/dreams/DreamOverlayStateControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/dreams/DreamOverlayStateControllerTest.java @@ -36,6 +36,7 @@ import com.android.systemui.flags.Flags; import com.android.systemui.log.LogBuffer; import com.android.systemui.log.core.FakeLogBuffer; import com.android.systemui.util.concurrency.FakeExecutor; +import com.android.systemui.util.reference.FakeWeakReferenceFactory; import com.android.systemui.util.time.FakeSystemClock; import org.junit.Before; @@ -63,6 +64,8 @@ public class DreamOverlayStateControllerTest extends SysuiTestCase { final FakeExecutor mExecutor = new FakeExecutor(new FakeSystemClock()); + final FakeWeakReferenceFactory mWeakReferenceFactory = new FakeWeakReferenceFactory(); + @Before public void setup() { MockitoAnnotations.initMocks(this); @@ -407,12 +410,36 @@ public class DreamOverlayStateControllerTest extends SysuiTestCase { assertThat(stateController.getComplications()).contains(homeControlsComplication); } + @Test + public void testCallbacksIgnoredWhenWeakReferenceCleared() { + final DreamOverlayStateController.Callback callback1 = Mockito.mock( + DreamOverlayStateController.Callback.class); + final DreamOverlayStateController.Callback callback2 = Mockito.mock( + DreamOverlayStateController.Callback.class); + + final DreamOverlayStateController stateController = getDreamOverlayStateController(true); + stateController.addCallback(callback1); + stateController.addCallback(callback2); + mExecutor.runAllReady(); + + // Simulate callback1 getting GC'd by clearing the reference + mWeakReferenceFactory.clear(callback1); + stateController.setOverlayActive(true); + mExecutor.runAllReady(); + + // Callback2 should still be called, but never callback1 + verify(callback1, never()).onStateChanged(); + verify(callback2).onStateChanged(); + assertThat(stateController.isOverlayActive()).isTrue(); + } + private DreamOverlayStateController getDreamOverlayStateController(boolean overlayEnabled) { return new DreamOverlayStateController( mExecutor, overlayEnabled, mFeatureFlags, - mLogBuffer + mLogBuffer, + mWeakReferenceFactory ); } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/dump/LogBufferHelper.kt b/packages/SystemUI/tests/src/com/android/systemui/dump/LogBufferHelper.kt index 8a1b094678e1..0538227abd3f 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/dump/LogBufferHelper.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/dump/LogBufferHelper.kt @@ -31,7 +31,6 @@ fun logcatLogBuffer(name: String = "EchoToLogcatLogBuffer") = * A [LogcatEchoTracker] that always allows echoing to the logcat. */ class LogcatEchoTrackerAlways : LogcatEchoTracker { - override val logInBackgroundThread = false override fun isBufferLoggable(bufferName: String, level: LogLevel): Boolean = true override fun isTagLoggable(tagName: String, level: LogLevel): Boolean = true } diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyboard/backlight/ui/view/KeyboardBacklightDialogTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyboard/backlight/ui/view/KeyboardBacklightDialogTest.kt deleted file mode 100644 index 8b572eb3d906..000000000000 --- a/packages/SystemUI/tests/src/com/android/systemui/keyboard/backlight/ui/view/KeyboardBacklightDialogTest.kt +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright (C) 2023 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package com.android.systemui.keyboard.backlight.ui.view - -import android.testing.TestableLooper.RunWithLooper -import android.view.View -import android.view.accessibility.AccessibilityEvent -import androidx.test.filters.SmallTest -import com.android.systemui.SysuiTestCase -import com.android.systemui.res.R -import com.google.common.truth.Truth.assertThat -import org.junit.Before -import org.junit.Test -import org.junit.runner.RunWith -import org.junit.runners.JUnit4 - -@RunWithLooper -@SmallTest -@RunWith(JUnit4::class) -class KeyboardBacklightDialogTest : SysuiTestCase() { - - private lateinit var dialog: KeyboardBacklightDialog - private lateinit var rootView: View - private val descriptionString = context.getString(R.string.keyboard_backlight_value) - - @Before - fun setUp() { - dialog = - KeyboardBacklightDialog(context, initialCurrentLevel = 0, initialMaxLevel = MAX_LEVEL) - dialog.show() - rootView = dialog.requireViewById(R.id.keyboard_backlight_dialog_container) - } - - @Test - fun rootViewContentDescription_containsInitialLevel() { - assertThat(rootView.contentDescription).isEqualTo(contentDescriptionForLevel(INITIAL_LEVEL)) - } - - @Test - fun contentDescriptionUpdated_afterEveryLevelUpdate() { - val events = startCollectingAccessibilityEvents(rootView) - - dialog.updateState(current = 1, max = MAX_LEVEL) - - assertThat(rootView.contentDescription).isEqualTo(contentDescriptionForLevel(1)) - assertThat(events).contains(AccessibilityEvent.CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION) - } - - private fun contentDescriptionForLevel(level: Int): String { - return String.format(descriptionString, level, MAX_LEVEL) - } - - private fun startCollectingAccessibilityEvents(rootView: View): MutableList<Int> { - val events = mutableListOf<Int>() - rootView.accessibilityDelegate = - object : View.AccessibilityDelegate() { - override fun sendAccessibilityEvent(host: View, eventType: Int) { - super.sendAccessibilityEvent(host, eventType) - events.add(eventType) - } - } - return events - } - - companion object { - private const val MAX_LEVEL = 5 - private const val INITIAL_LEVEL = 0 - } -} diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/BiometricSettingsRepositoryTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/BiometricSettingsRepositoryTest.kt index 90fd6523ec12..4587ea6dbdc8 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/BiometricSettingsRepositoryTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/BiometricSettingsRepositoryTest.kt @@ -154,6 +154,7 @@ class BiometricSettingsRepositoryTest : SysuiTestCase() { fun fingerprintEnrollmentChange() = testScope.runTest { createBiometricSettingsRepository() + biometricsAreEnabledBySettings() val fingerprintAllowed = collectLastValue(underTest.isFingerprintEnrolledAndEnabled) runCurrent() @@ -170,11 +171,34 @@ class BiometricSettingsRepositoryTest : SysuiTestCase() { } @Test + fun fingerprintEnabledStateChange() = + testScope.runTest { + createBiometricSettingsRepository() + biometricsAreEnabledBySettings() + val fingerprintAllowed = collectLastValue(underTest.isFingerprintEnrolledAndEnabled) + runCurrent() + + // start state + whenever(authController.isFingerprintEnrolled(anyInt())).thenReturn(true) + enrollmentChange(UNDER_DISPLAY_FINGERPRINT, PRIMARY_USER_ID, true) + assertThat(fingerprintAllowed()).isTrue() + + // when biometrics are not enabled by settings + biometricsAreNotEnabledBySettings() + assertThat(fingerprintAllowed()).isFalse() + + // when biometrics are enabled by settings + biometricsAreEnabledBySettings() + assertThat(fingerprintAllowed()).isTrue() + } + + @Test fun strongBiometricAllowedChange() = testScope.runTest { fingerprintIsEnrolled() doNotDisableKeyguardAuthFeatures() createBiometricSettingsRepository() + biometricsAreEnabledBySettings() val strongBiometricAllowed by collectLastValue(underTest.isFingerprintAuthCurrentlyAllowed) @@ -197,7 +221,7 @@ class BiometricSettingsRepositoryTest : SysuiTestCase() { createBiometricSettingsRepository() val convenienceFaceAuthAllowed by collectLastValue(underTest.isFaceAuthCurrentlyAllowed) doNotDisableKeyguardAuthFeatures() - faceAuthIsEnabledByBiometricManager() + biometricsAreEnabledBySettings() onStrongAuthChanged(STRONG_AUTH_NOT_REQUIRED, PRIMARY_USER_ID) onNonStrongAuthChanged(true, PRIMARY_USER_ID) @@ -238,6 +262,7 @@ class BiometricSettingsRepositoryTest : SysuiTestCase() { faceAuthIsNonStrongBiometric() faceAuthIsEnrolled() doNotDisableKeyguardAuthFeatures() + biometricsAreEnabledBySettings() val convenienceBiometricAllowed = collectLastValue(underTest.isFaceAuthCurrentlyAllowed) runCurrent() @@ -258,7 +283,7 @@ class BiometricSettingsRepositoryTest : SysuiTestCase() { faceAuthIsEnrolled() createBiometricSettingsRepository() doNotDisableKeyguardAuthFeatures() - faceAuthIsEnabledByBiometricManager() + biometricsAreEnabledBySettings() runCurrent() val convenienceBiometricAllowed by @@ -291,6 +316,7 @@ class BiometricSettingsRepositoryTest : SysuiTestCase() { testScope.runTest { fingerprintIsEnrolled(PRIMARY_USER_ID) createBiometricSettingsRepository() + biometricsAreEnabledBySettings() val fingerprintEnabledByDevicePolicy = collectLastValue(underTest.isFingerprintEnrolledAndEnabled) @@ -316,7 +342,7 @@ class BiometricSettingsRepositoryTest : SysuiTestCase() { createBiometricSettingsRepository() val faceAuthAllowed = collectLastValue(underTest.isFaceAuthEnrolledAndEnabled) - faceAuthIsEnabledByBiometricManager() + biometricsAreEnabledBySettings() doNotDisableKeyguardAuthFeatures(PRIMARY_USER_ID) @@ -351,12 +377,18 @@ class BiometricSettingsRepositoryTest : SysuiTestCase() { assertThat(faceAuthAllowed()).isTrue() } - private fun faceAuthIsEnabledByBiometricManager(userId: Int = PRIMARY_USER_ID) { + private fun biometricsAreEnabledBySettings(userId: Int = PRIMARY_USER_ID) { verify(biometricManager, atLeastOnce()) .registerEnabledOnKeyguardCallback(biometricManagerCallback.capture()) biometricManagerCallback.value.onChanged(true, userId) } + private fun biometricsAreNotEnabledBySettings(userId: Int = PRIMARY_USER_ID) { + verify(biometricManager, atLeastOnce()) + .registerEnabledOnKeyguardCallback(biometricManagerCallback.capture()) + biometricManagerCallback.value.onChanged(false, userId) + } + @Test fun faceEnrollmentStatusOfNewUserUponUserSwitch() = testScope.runTest { @@ -427,7 +459,7 @@ class BiometricSettingsRepositoryTest : SysuiTestCase() { faceAuthIsEnrolled() createBiometricSettingsRepository() - faceAuthIsEnabledByBiometricManager() + biometricsAreEnabledBySettings() doNotDisableKeyguardAuthFeatures() mobileConnectionsRepository.isAnySimSecure.value = false runCurrent() @@ -454,7 +486,7 @@ class BiometricSettingsRepositoryTest : SysuiTestCase() { deviceIsInPostureThatSupportsFaceAuth() doNotDisableKeyguardAuthFeatures() faceAuthIsStrongBiometric() - faceAuthIsEnabledByBiometricManager() + biometricsAreEnabledBySettings() mobileConnectionsRepository.isAnySimSecure.value = false onStrongAuthChanged(STRONG_AUTH_NOT_REQUIRED, PRIMARY_USER_ID) @@ -636,7 +668,7 @@ class BiometricSettingsRepositoryTest : SysuiTestCase() { deviceIsInPostureThatSupportsFaceAuth() doNotDisableKeyguardAuthFeatures() faceAuthIsStrongBiometric() - faceAuthIsEnabledByBiometricManager() + biometricsAreEnabledBySettings() onStrongAuthChanged(STRONG_AUTH_NOT_REQUIRED, PRIMARY_USER_ID) onNonStrongAuthChanged(false, PRIMARY_USER_ID) @@ -660,7 +692,7 @@ class BiometricSettingsRepositoryTest : SysuiTestCase() { deviceIsInPostureThatSupportsFaceAuth() doNotDisableKeyguardAuthFeatures() faceAuthIsNonStrongBiometric() - faceAuthIsEnabledByBiometricManager() + biometricsAreEnabledBySettings() onStrongAuthChanged(STRONG_AUTH_NOT_REQUIRED, PRIMARY_USER_ID) onNonStrongAuthChanged(false, PRIMARY_USER_ID) @@ -682,6 +714,7 @@ class BiometricSettingsRepositoryTest : SysuiTestCase() { fun fpAuthCurrentlyAllowed_dependsOnNonStrongAuthBiometricSetting_ifFpIsNotStrong() = testScope.runTest { createBiometricSettingsRepository() + biometricsAreEnabledBySettings() val isFingerprintCurrentlyAllowed by collectLastValue(underTest.isFingerprintAuthCurrentlyAllowed) @@ -723,6 +756,7 @@ class BiometricSettingsRepositoryTest : SysuiTestCase() { fun fpAuthCurrentlyAllowed_dependsOnStrongAuthBiometricSetting_ifFpIsStrong() = testScope.runTest { createBiometricSettingsRepository() + biometricsAreEnabledBySettings() val isFingerprintCurrentlyAllowed by collectLastValue(underTest.isFingerprintAuthCurrentlyAllowed) diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/KeyguardBlueprintRepositoryTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/KeyguardBlueprintRepositoryTest.kt index 66ead14d3d4c..5852bdb5c351 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/KeyguardBlueprintRepositoryTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/KeyguardBlueprintRepositoryTest.kt @@ -25,10 +25,8 @@ import com.android.systemui.keyguard.ui.view.layout.blueprints.DefaultKeyguardBl import com.android.systemui.keyguard.ui.view.layout.blueprints.DefaultKeyguardBlueprint.Companion.DEFAULT import com.android.systemui.util.mockito.whenever import com.google.common.truth.Truth.assertThat -import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.test.StandardTestDispatcher import kotlinx.coroutines.test.TestScope -import kotlinx.coroutines.test.runCurrent import kotlinx.coroutines.test.runTest import org.junit.Before import org.junit.Test @@ -43,20 +41,16 @@ class KeyguardBlueprintRepositoryTest : SysuiTestCase() { private lateinit var underTest: KeyguardBlueprintRepository @Mock lateinit var configurationRepository: ConfigurationRepository @Mock lateinit var defaultLockscreenBlueprint: DefaultKeyguardBlueprint - private val testDispatcher = StandardTestDispatcher() - private val testScope = TestScope(testDispatcher) - private val configurationFlow = MutableSharedFlow<Unit>(extraBufferCapacity = 1) + private val testScope = TestScope(StandardTestDispatcher()) @Before fun setup() { MockitoAnnotations.initMocks(this) whenever(defaultLockscreenBlueprint.id).thenReturn(DEFAULT) - whenever(configurationRepository.onAnyConfigurationChange).thenReturn(configurationFlow) underTest = KeyguardBlueprintRepository( configurationRepository, setOf(defaultLockscreenBlueprint), - testScope.backgroundScope, ) } @@ -64,20 +58,7 @@ class KeyguardBlueprintRepositoryTest : SysuiTestCase() { fun testApplyBlueprint_DefaultLayout() { testScope.runTest { val blueprint by collectLastValue(underTest.blueprint) - runCurrent() underTest.applyBlueprint(defaultLockscreenBlueprint) - runCurrent() - assertThat(blueprint).isEqualTo(defaultLockscreenBlueprint) - } - } - - @Test - fun testConfigurationChange() { - testScope.runTest { - val blueprint by collectLastValue(underTest.blueprint) - runCurrent() - configurationFlow.tryEmit(Unit) - runCurrent() assertThat(blueprint).isEqualTo(defaultLockscreenBlueprint) } } @@ -86,9 +67,7 @@ class KeyguardBlueprintRepositoryTest : SysuiTestCase() { fun testRefreshBlueprint() { testScope.runTest { val blueprint by collectLastValue(underTest.blueprint) - runCurrent() underTest.refreshBlueprint() - runCurrent() assertThat(blueprint).isEqualTo(defaultLockscreenBlueprint) } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardBlueprintInteractorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardBlueprintInteractorTest.kt index b8a2e9d4afc7..9fe40d73fa1d 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardBlueprintInteractorTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardBlueprintInteractorTest.kt @@ -21,24 +21,77 @@ import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.keyguard.data.repository.KeyguardBlueprintRepository +import com.android.systemui.keyguard.ui.view.layout.blueprints.DefaultKeyguardBlueprint +import com.android.systemui.keyguard.ui.view.layout.blueprints.SplitShadeKeyguardBlueprint +import com.android.systemui.statusbar.policy.SplitShadeStateController +import com.android.systemui.util.mockito.any +import com.android.systemui.util.mockito.whenever +import kotlinx.coroutines.flow.MutableSharedFlow +import kotlinx.coroutines.test.StandardTestDispatcher +import kotlinx.coroutines.test.TestScope +import kotlinx.coroutines.test.runCurrent +import kotlinx.coroutines.test.runTest import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.mockito.Mock +import org.mockito.Mockito.reset import org.mockito.Mockito.verify import org.mockito.MockitoAnnotations @SmallTest @RunWith(AndroidJUnit4::class) class KeyguardBlueprintInteractorTest : SysuiTestCase() { + private val configurationFlow = MutableSharedFlow<Unit>(extraBufferCapacity = 1) private lateinit var underTest: KeyguardBlueprintInteractor + private lateinit var testScope: TestScope + @Mock private lateinit var splitShadeStateController: SplitShadeStateController @Mock private lateinit var keyguardBlueprintRepository: KeyguardBlueprintRepository @Before fun setup() { MockitoAnnotations.initMocks(this) - underTest = KeyguardBlueprintInteractor(keyguardBlueprintRepository) + testScope = TestScope(StandardTestDispatcher()) + whenever(keyguardBlueprintRepository.configurationChange).thenReturn(configurationFlow) + + underTest = + KeyguardBlueprintInteractor( + keyguardBlueprintRepository, + testScope.backgroundScope, + mContext, + splitShadeStateController, + ) + } + + @Test + fun testAppliesDefaultBlueprint() { + testScope.runTest { + whenever(splitShadeStateController.shouldUseSplitNotificationShade(any())) + .thenReturn(false) + + reset(keyguardBlueprintRepository) + configurationFlow.tryEmit(Unit) + runCurrent() + + verify(keyguardBlueprintRepository) + .applyBlueprint(DefaultKeyguardBlueprint.Companion.DEFAULT) + } + } + + @Test + fun testAppliesSplitShadeBlueprint() { + testScope.runTest { + whenever(splitShadeStateController.shouldUseSplitNotificationShade(any())) + .thenReturn(true) + + reset(keyguardBlueprintRepository) + configurationFlow.tryEmit(Unit) + runCurrent() + + verify(keyguardBlueprintRepository) + .applyBlueprint(SplitShadeKeyguardBlueprint.Companion.ID) + } } @Test diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/ui/view/layout/blueprints/DefaultKeyguardBlueprintTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/ui/view/layout/blueprints/DefaultKeyguardBlueprintTest.kt index 2831053184cc..43d70adf26b0 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/ui/view/layout/blueprints/DefaultKeyguardBlueprintTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/ui/view/layout/blueprints/DefaultKeyguardBlueprintTest.kt @@ -86,7 +86,6 @@ class DefaultKeyguardBlueprintTest : SysuiTestCase() { defaultStatusViewSection, defaultStatusBarViewSection, defaultNSSLSection, - splitShadeGuidelines, aodNotificationIconsSection, aodBurnInSection, communalTutorialIndicatorSection, diff --git a/packages/SystemUI/tests/src/com/android/systemui/log/echo/LogcatEchoSettingsFormatTest.kt b/packages/SystemUI/tests/src/com/android/systemui/log/echo/LogcatEchoSettingsFormatTest.kt new file mode 100644 index 000000000000..02c9debcbe1f --- /dev/null +++ b/packages/SystemUI/tests/src/com/android/systemui/log/echo/LogcatEchoSettingsFormatTest.kt @@ -0,0 +1,72 @@ +/* + * 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.log.echo + +import androidx.test.filters.SmallTest +import com.android.systemui.SysuiTestCase +import com.android.systemui.log.core.LogLevel +import com.android.systemui.log.core.LogLevel.DEBUG +import com.android.systemui.log.echo.EchoOverrideType.BUFFER +import com.android.systemui.log.echo.EchoOverrideType.TAG +import kotlin.test.assertEquals +import org.junit.Test + +@SmallTest +class LogcatEchoSettingsFormatTest : SysuiTestCase() { + + private val format = LogcatEchoSettingFormat() + + @Test + fun testReversibility() { + val expectedOverrides = + listOf( + LogcatEchoOverride(BUFFER, "buffer_0", DEBUG), + LogcatEchoOverride(BUFFER, "buffer_1", LogLevel.WTF), + LogcatEchoOverride(EchoOverrideType.TAG, "tag_1", LogLevel.INFO), + ) + + val storedAndLoadedOverrides = + format.parseOverrides(format.stringifyOverrides(expectedOverrides)) + + assertEquals(expectedOverrides.toSet(), storedAndLoadedOverrides.toSet()) + } + + @Test + fun testSemicolonEscaping() { + val expectedOverrides = + listOf( + LogcatEchoOverride(BUFFER, "buf;fer;0;", DEBUG), + ) + + val storedAndLoadedOverrides = + format.parseOverrides(format.stringifyOverrides(expectedOverrides)) + + assertEquals(expectedOverrides.toSet(), storedAndLoadedOverrides.toSet()) + } + + @Test + fun testMalformedFormatStillReturnsPartialResults() { + val result = format.parseOverrides("0;t;valid_tag;d;malformed;thing") + + assertEquals(listOf(LogcatEchoOverride(TAG, "valid_tag", DEBUG)), result) + } + + @Test + fun testGarbageInputDoesNotCrash() { + assertEquals(emptyList(), format.parseOverrides("(&983n123")) + } +} diff --git a/packages/SystemUI/tests/src/com/android/systemui/log/echo/LogcatEchoTrackerDebugTest.kt b/packages/SystemUI/tests/src/com/android/systemui/log/echo/LogcatEchoTrackerDebugTest.kt new file mode 100644 index 000000000000..7967134eb150 --- /dev/null +++ b/packages/SystemUI/tests/src/com/android/systemui/log/echo/LogcatEchoTrackerDebugTest.kt @@ -0,0 +1,204 @@ +/* + * 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.log.echo + +import androidx.test.filters.SmallTest +import com.android.systemui.SysuiTestCase +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.echo.EchoOverrideType.BUFFER +import com.android.systemui.log.echo.EchoOverrideType.TAG +import com.android.systemui.statusbar.commandline.CommandRegistry +import com.android.systemui.util.settings.FakeGlobalSettings +import kotlin.test.assertEquals +import kotlin.test.assertNotNull +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.test.StandardTestDispatcher +import kotlinx.coroutines.test.TestScope +import kotlinx.coroutines.test.advanceUntilIdle +import kotlinx.coroutines.test.runCurrent +import kotlinx.coroutines.test.runTest +import org.junit.Assert.assertFalse +import org.junit.Assert.assertTrue +import org.junit.Before +import org.junit.Test +import org.mockito.Mock +import org.mockito.MockitoAnnotations + +@OptIn(ExperimentalCoroutinesApi::class) +@SmallTest +class LogcatEchoTrackerDebugTest : SysuiTestCase() { + + private val dispatcher = StandardTestDispatcher() + private val testScope = TestScope(dispatcher) + private val globalSettings = FakeGlobalSettings() + + @Mock private lateinit var commandRegistry: CommandRegistry + + private lateinit var echoTracker: LogcatEchoTrackerDebug + + @Before + fun setup() { + MockitoAnnotations.initMocks(this) + + echoTracker = + LogcatEchoTrackerDebug( + testScope, + dispatcher, + globalSettings, + commandRegistry, + ) + } + + @Test + fun testUnsetLogLevelIsWarning() { + assertTrue(echoTracker.isBufferLoggable("foo", WARNING)) + assertFalse(echoTracker.isBufferLoggable("foo", INFO)) + + assertTrue(echoTracker.isTagLoggable("foo", WARNING)) + assertFalse(echoTracker.isTagLoggable("foo", INFO)) + } + + @Test + fun testLoadEmptySetting() = + testScope.runTest { + startAndLoadOverrides() + + assertFalse(echoTracker.isBufferLoggable("foo", INFO)) + assertFalse(echoTracker.isTagLoggable("foo", INFO)) + } + + @Test + fun testLoadOverridesFromSettings() = + testScope.runTest { + setOverrides( + LogcatEchoOverride(BUFFER, "buffer_1", DEBUG), + LogcatEchoOverride(TAG, "tag_1", INFO), + ) + startAndLoadOverrides() + + assertTrue(echoTracker.isBufferLoggable("buffer_1", DEBUG)) + assertFalse(echoTracker.isBufferLoggable("buffer_1", VERBOSE)) + + assertTrue(echoTracker.isTagLoggable("tag_1", INFO)) + assertFalse(echoTracker.isTagLoggable("tag_1", DEBUG)) + } + + @Test + fun testSetOverride() = + testScope.runTest { + setOverrides( + LogcatEchoOverride(BUFFER, "buffer_0", VERBOSE), + ) + startAndLoadOverrides() + + echoTracker.setEchoLevel(BUFFER, "buffer_1", DEBUG) + echoTracker.setEchoLevel(TAG, "tag_1", ERROR) + + advanceUntilIdle() + + assertTrue(echoTracker.isBufferLoggable("buffer_0", VERBOSE)) + + assertTrue(echoTracker.isBufferLoggable("buffer_1", DEBUG)) + assertFalse(echoTracker.isBufferLoggable("buffer_1", VERBOSE)) + + assertTrue(echoTracker.isTagLoggable("tag_1", ERROR)) + assertFalse(echoTracker.isTagLoggable("tag_1", WARNING)) + } + + @Test + fun testSetOverrideNotAppliedUntilCoroutinesRun() = + testScope.runTest { + startAndLoadOverrides() + echoTracker.setEchoLevel(BUFFER, "buffer_1", DEBUG) + + assertTrue(echoTracker.isBufferLoggable("buffer_1", WARNING)) + assertFalse(echoTracker.isBufferLoggable("buffer_1", INFO)) + } + + @Test + fun testSetOverrideStoresInSettings() = + testScope.runTest { + setOverrides( + LogcatEchoOverride(BUFFER, "buffer_1", DEBUG), + ) + startAndLoadOverrides() + + echoTracker.setEchoLevel(BUFFER, "buffer_2", INFO) + echoTracker.setEchoLevel(TAG, "tag_1", ERROR) + + advanceUntilIdle() + + val expected = + setOf( + LogcatEchoOverride(BUFFER, "buffer_1", DEBUG), + LogcatEchoOverride(BUFFER, "buffer_2", INFO), + LogcatEchoOverride(TAG, "tag_1", ERROR), + ) + + assertEquals(expected, loadStoredOverrideSet()) + } + + @Test + fun testClearAllOverrides() = + testScope.runTest { + setOverrides( + LogcatEchoOverride(BUFFER, "buffer_1", DEBUG), + LogcatEchoOverride(TAG, "tag_1", INFO), + ) + startAndLoadOverrides() + + echoTracker.setEchoLevel(BUFFER, "buffer_2", VERBOSE) + + advanceUntilIdle() + + echoTracker.clearAllOverrides() + + runCurrent() + + assertFalse(echoTracker.isBufferLoggable("buffer_1", DEBUG)) + assertFalse(echoTracker.isTagLoggable("tag_1", INFO)) + assertFalse(echoTracker.isBufferLoggable("buffer_2", VERBOSE)) + + advanceUntilIdle() + + assertEquals(emptySet(), loadStoredOverrideSet()) + } + + private fun setOverrides(vararg overrides: LogcatEchoOverride) { + val encoded = LogcatEchoSettingFormat().stringifyOverrides(overrides.asList()) + globalSettings.putString(OVERRIDE_SETTING_PATH, encoded) + echoTracker.start() + } + + private fun loadStoredOverrideSet(): Set<LogcatEchoOverride> { + val storedSetting = assertNotNull(globalSettings.getString(OVERRIDE_SETTING_PATH)) + return LogcatEchoSettingFormat().parseOverrides(storedSetting).toSet() + } + + private fun TestScope.startAndLoadOverrides() { + echoTracker.start() + advanceUntilIdle() + } + + companion object { + private const val OVERRIDE_SETTING_PATH = "systemui/logbuffer_echo_overrides" + } +} diff --git a/packages/SystemUI/tests/src/com/android/systemui/log/table/TableLogBufferTest.kt b/packages/SystemUI/tests/src/com/android/systemui/log/table/TableLogBufferTest.kt index 83182c5cf1b0..5c9a0033cb72 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/log/table/TableLogBufferTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/log/table/TableLogBufferTest.kt @@ -66,7 +66,6 @@ class TableLogBufferTest : SysuiTestCase() { testScope.backgroundScope, localLogcat = localLogcat, ) - underTest.init() } @Test(expected = IllegalArgumentException::class) diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/KeyguardMediaControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/KeyguardMediaControllerTest.kt index 7ad2ce8ae110..f4293f035cd1 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/KeyguardMediaControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/KeyguardMediaControllerTest.kt @@ -24,6 +24,7 @@ import android.view.View.GONE import android.view.View.VISIBLE import android.widget.FrameLayout import com.android.systemui.SysuiTestCase +import com.android.systemui.dump.DumpManager import com.android.systemui.plugins.statusbar.StatusBarStateController import com.android.systemui.statusbar.StatusBarState import com.android.systemui.statusbar.SysuiStatusBarStateController @@ -32,6 +33,7 @@ import com.android.systemui.statusbar.phone.KeyguardBypassController import com.android.systemui.statusbar.policy.ConfigurationController import com.android.systemui.statusbar.policy.ResourcesSplitShadeStateController import com.android.systemui.util.animation.UniqueObjectHostView +import com.android.systemui.util.mockito.mock import com.android.systemui.util.mockito.whenever import com.android.systemui.util.settings.FakeSettings import com.android.systemui.utils.os.FakeHandler @@ -91,7 +93,8 @@ class KeyguardMediaControllerTest : SysuiTestCase() { settings, fakeHandler, configurationController, - ResourcesSplitShadeStateController() + ResourcesSplitShadeStateController(), + mock<DumpManager>() ) keyguardMediaController.attachSinglePaneContainer(mediaContainerView) keyguardMediaController.useSplitShade = false diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/MediaHierarchyManagerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/MediaHierarchyManagerTest.kt index 5bfe56931bb4..a2eb5ef9e463 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/MediaHierarchyManagerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/MediaHierarchyManagerTest.kt @@ -26,8 +26,7 @@ import androidx.test.filters.SmallTest import com.android.keyguard.KeyguardViewController import com.android.systemui.SysuiTestCase import com.android.systemui.communal.data.repository.FakeCommunalRepository -import com.android.systemui.communal.data.repository.FakeCommunalWidgetRepository -import com.android.systemui.communal.domain.interactor.CommunalInteractor +import com.android.systemui.communal.domain.interactor.CommunalInteractorFactory import com.android.systemui.communal.shared.model.CommunalSceneKey import com.android.systemui.controls.controller.ControlsControllerImplTest.Companion.eq import com.android.systemui.dreams.DreamOverlayStateController @@ -106,7 +105,7 @@ class MediaHierarchyManagerTest : SysuiTestCase() { private val configurationController = FakeConfigurationController() private val communalRepository = FakeCommunalRepository(isCommunalEnabled = true) private val communalInteractor = - CommunalInteractor(communalRepository, FakeCommunalWidgetRepository()) + CommunalInteractorFactory.create(communalRepository = communalRepository).communalInteractor private val notifPanelEvents = ShadeExpansionStateManager() private val settings = FakeSettings() private lateinit var testableLooper: TestableLooper diff --git a/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavigationBarControllerImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavigationBarControllerImplTest.java index c835146dd974..8a531fd9c842 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavigationBarControllerImplTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavigationBarControllerImplTest.java @@ -111,7 +111,6 @@ public class NavigationBarControllerImplTest extends SysuiTestCase { TaskStackChangeListeners.getTestInstance(), Optional.of(mock(Pip.class)), Optional.of(mock(BackAnimation.class)), - mock(FeatureFlags.class), mock(SecureSettings.class), mDisplayTracker)); initializeNavigationBars(); diff --git a/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavigationBarTest.java b/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavigationBarTest.java index 48a36cb5eb12..ddceed62fdeb 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavigationBarTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavigationBarTest.java @@ -27,6 +27,7 @@ import static android.view.DisplayAdjustments.DEFAULT_DISPLAY_ADJUSTMENTS; import static android.view.WindowInsets.Type.ime; import static com.android.internal.config.sysui.SystemUiDeviceConfigFlags.HOME_BUTTON_LONG_PRESS_DURATION_MS; +import static com.android.systemui.assist.AssistManager.INVOCATION_TYPE_HOME_BUTTON_LONG_PRESS; import static com.android.systemui.navigationbar.NavigationBar.NavBarActionEvent.NAVBAR_ASSIST_LONGPRESS; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_SCREEN_PINNING; @@ -42,6 +43,7 @@ import static org.mockito.Matchers.eq; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @@ -86,6 +88,7 @@ import com.android.systemui.keyguard.WakefulnessLifecycle; import com.android.systemui.model.SysUiState; import com.android.systemui.navigationbar.buttons.ButtonDispatcher; import com.android.systemui.navigationbar.buttons.DeadZone; +import com.android.systemui.navigationbar.buttons.KeyButtonView; import com.android.systemui.navigationbar.gestural.EdgeBackGestureHandler; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.recents.OverviewProxyService; @@ -120,6 +123,7 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; @@ -143,6 +147,8 @@ public class NavigationBarTest extends SysuiTestCase { @Mock ButtonDispatcher mHomeButton; @Mock + KeyButtonView mHomeButtonView; + @Mock ButtonDispatcher mRecentsButton; @Mock ButtonDispatcher mAccessibilityButton; @@ -294,11 +300,38 @@ public class NavigationBarTest extends SysuiTestCase { @Test public void testHomeLongPress() { + when(mAssistManager.shouldOverrideAssist(INVOCATION_TYPE_HOME_BUTTON_LONG_PRESS)) + .thenReturn(false); + mNavigationBar.init(); mNavigationBar.onViewAttached(); - mNavigationBar.onHomeLongClick(mNavigationBar.getView()); + mNavigationBar.onHomeLongClick(mHomeButtonView); verify(mUiEventLogger, times(1)).log(NAVBAR_ASSIST_LONGPRESS); + verify(mAssistManager).startAssist(any()); + } + + @Test + public void testHomeLongPressOverride() { + when(mAssistManager.shouldOverrideAssist(INVOCATION_TYPE_HOME_BUTTON_LONG_PRESS)) + .thenReturn(true); + + mNavigationBar.init(); + mNavigationBar.onViewAttached(); + mNavigationBar.onHomeLongClick(mHomeButtonView); + + verify(mUiEventLogger, times(1)).log(NAVBAR_ASSIST_LONGPRESS); + + ArgumentCaptor<Runnable> onRippleInvisibleRunnableCaptor = ArgumentCaptor.forClass( + Runnable.class); + // startAssist is not called initially + verify(mAssistManager, never()).startAssist(any()); + // but a Runnable is added for when the ripple is invisible + verify(mHomeButtonView).setOnRippleInvisibleRunnable( + onRippleInvisibleRunnableCaptor.capture()); + // and when that runs, startAssist is called + onRippleInvisibleRunnableCaptor.getValue().run(); + verify(mAssistManager).startAssist(any()); } @Test diff --git a/packages/SystemUI/tests/src/com/android/systemui/navigationbar/buttons/KeyButtonViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/navigationbar/buttons/KeyButtonViewTest.java index 078a917eb689..a1010a01f1e4 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/navigationbar/buttons/KeyButtonViewTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/navigationbar/buttons/KeyButtonViewTest.java @@ -50,6 +50,7 @@ import androidx.test.filters.SmallTest; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.UiEventLogger; import com.android.systemui.SysuiTestCase; +import com.android.systemui.assist.AssistManager; import com.android.systemui.recents.OverviewProxyService; import org.junit.Before; @@ -76,6 +77,7 @@ public class KeyButtonViewTest extends SysuiTestCase { MockitoAnnotations.initMocks(this); mMetricsLogger = mDependency.injectMockDependency(MetricsLogger.class); mDependency.injectMockDependency(OverviewProxyService.class); + mDependency.injectMockDependency(AssistManager.class); mUiEventLogger = mDependency.injectMockDependency(UiEventLogger.class); TestableLooper.get(this).runWithLooper(() -> { diff --git a/packages/SystemUI/tests/src/com/android/systemui/navigationbar/gestural/BackPanelControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/navigationbar/gestural/BackPanelControllerTest.kt index 2d3dc585ac70..f93d52b2c35c 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/navigationbar/gestural/BackPanelControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/navigationbar/gestural/BackPanelControllerTest.kt @@ -30,8 +30,6 @@ import android.view.WindowManager import androidx.test.filters.SmallTest import com.android.internal.util.LatencyTracker import com.android.systemui.SysuiTestCase -import com.android.systemui.flags.FakeFeatureFlags -import com.android.systemui.flags.Flags.ONE_WAY_HAPTICS_API_MIGRATION import com.android.systemui.plugins.NavigationEdgeBackPlugin import com.android.systemui.statusbar.VibratorHelper import com.android.systemui.statusbar.policy.ConfigurationController @@ -63,7 +61,6 @@ class BackPanelControllerTest : SysuiTestCase() { @Mock private lateinit var latencyTracker: LatencyTracker @Mock private lateinit var layoutParams: WindowManager.LayoutParams @Mock private lateinit var backCallback: NavigationEdgeBackPlugin.BackCallback - private val featureFlags = FakeFeatureFlags() @Before fun setup() { @@ -77,7 +74,6 @@ class BackPanelControllerTest : SysuiTestCase() { vibratorHelper, configurationController, latencyTracker, - featureFlags ) mBackPanelController.setLayoutParams(layoutParams) mBackPanelController.setBackCallback(backCallback) @@ -106,32 +102,6 @@ class BackPanelControllerTest : SysuiTestCase() { @Test fun handlesBackCommitted() { - featureFlags.set(ONE_WAY_HAPTICS_API_MIGRATION, false) - startTouch() - // Move once to cross the touch slop - continueTouch(START_X + touchSlop.toFloat() + 1) - // Move again to cross the back trigger threshold - continueTouch(START_X + touchSlop + triggerThreshold + 1) - // Wait threshold duration and hold touch past trigger threshold - Thread.sleep((MAX_DURATION_ENTRY_BEFORE_ACTIVE_ANIMATION + 1).toLong()) - continueTouch(START_X + touchSlop + triggerThreshold + 1) - - assertThat(mBackPanelController.currentState) - .isEqualTo(BackPanelController.GestureState.ACTIVE) - verify(backCallback).setTriggerBack(true) - testableLooper.moveTimeForward(100) - testableLooper.processAllMessages() - verify(vibratorHelper).vibrate(VIBRATE_ACTIVATED_EFFECT) - - finishTouchActionUp(START_X + touchSlop + triggerThreshold + 1) - assertThat(mBackPanelController.currentState) - .isEqualTo(BackPanelController.GestureState.COMMITTED) - verify(backCallback).triggerBack() - } - - @Test - fun handlesBackCommitted_withOneWayHapticsAPI() { - featureFlags.set(ONE_WAY_HAPTICS_API_MIGRATION, true) startTouch() // Move once to cross the touch slop continueTouch(START_X + touchSlop.toFloat() + 1) @@ -148,7 +118,6 @@ class BackPanelControllerTest : SysuiTestCase() { testableLooper.processAllMessages() verify(vibratorHelper) .performHapticFeedback(any(), eq(HapticFeedbackConstants.GESTURE_THRESHOLD_ACTIVATE)) - finishTouchActionUp(START_X + touchSlop + triggerThreshold + 1) assertThat(mBackPanelController.currentState) .isEqualTo(BackPanelController.GestureState.COMMITTED) @@ -157,38 +126,6 @@ class BackPanelControllerTest : SysuiTestCase() { @Test fun handlesBackCancelled() { - featureFlags.set(ONE_WAY_HAPTICS_API_MIGRATION, false) - startTouch() - // Move once to cross the touch slop - continueTouch(START_X + touchSlop.toFloat() + 1) - // Move again to cross the back trigger threshold - continueTouch( - START_X + touchSlop + triggerThreshold - - mBackPanelController.params.deactivationTriggerThreshold - ) - // Wait threshold duration and hold touch before trigger threshold - Thread.sleep((MAX_DURATION_ENTRY_BEFORE_ACTIVE_ANIMATION + 1).toLong()) - continueTouch( - START_X + touchSlop + triggerThreshold - - mBackPanelController.params.deactivationTriggerThreshold - ) - clearInvocations(backCallback) - Thread.sleep(MIN_DURATION_ACTIVE_BEFORE_INACTIVE_ANIMATION) - // Move in the opposite direction to cross the deactivation threshold and cancel back - continueTouch(START_X) - - assertThat(mBackPanelController.currentState) - .isEqualTo(BackPanelController.GestureState.INACTIVE) - verify(backCallback).setTriggerBack(false) - verify(vibratorHelper).vibrate(VIBRATE_DEACTIVATED_EFFECT) - - finishTouchActionUp(START_X) - verify(backCallback).cancelBack() - } - - @Test - fun handlesBackCancelled_withOneWayHapticsAPI() { - featureFlags.set(ONE_WAY_HAPTICS_API_MIGRATION, true) startTouch() // Move once to cross the touch slop continueTouch(START_X + touchSlop.toFloat() + 1) diff --git a/packages/SystemUI/tests/src/com/android/systemui/power/data/repository/PowerRepositoryImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/power/data/repository/PowerRepositoryImplTest.kt index f566efe6f176..f3b114d662b5 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/power/data/repository/PowerRepositoryImplTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/power/data/repository/PowerRepositoryImplTest.kt @@ -210,6 +210,22 @@ class PowerRepositoryImplTest : SysuiTestCase() { assertThat(flagsCaptor.value).isNotEqualTo(PowerManager.USER_ACTIVITY_FLAG_INDIRECT) } + @Test + fun userActivity_notifiesPowerManager_noChangeLightsTrue() { + systemClock.setUptimeMillis(345000) + + underTest.userTouch(noChangeLights = true) + + val flagsCaptor = argumentCaptor<Int>() + verify(manager) + .userActivity( + eq(345000L), + eq(PowerManager.USER_ACTIVITY_EVENT_TOUCH), + capture(flagsCaptor) + ) + assertThat(flagsCaptor.value).isEqualTo(PowerManager.USER_ACTIVITY_FLAG_NO_CHANGE_LIGHTS) + } + private fun verifyRegistered() { // We must verify with all arguments, even those that are optional because they have default // values because Mockito is forcing us to. Once we can use mockito-kotlin, we should be diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QSTileHostTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/QSTileHostTest.java index 79411f427f1f..3b07913de7c5 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/QSTileHostTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QSTileHostTest.java @@ -17,6 +17,8 @@ package com.android.systemui.qs; +import static com.android.systemui.Flags.FLAG_QS_NEW_PIPELINE; + import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertFalse; import static junit.framework.Assert.assertTrue; @@ -39,6 +41,7 @@ import android.database.ContentObserver; import android.os.Handler; import android.os.Looper; import android.os.UserHandle; +import android.platform.test.flag.junit.SetFlagsRule; import android.testing.AndroidTestingRunner; import android.util.SparseArray; import android.view.View; @@ -48,7 +51,6 @@ import androidx.test.filters.SmallTest; import com.android.internal.logging.MetricsLogger; import com.android.internal.util.CollectionUtils; -import com.android.systemui.res.R; import com.android.systemui.SysuiTestCase; import com.android.systemui.classifier.FalsingManagerFake; import com.android.systemui.dump.nano.SystemUIProtoDump; @@ -67,6 +69,7 @@ import com.android.systemui.qs.logging.QSLogger; import com.android.systemui.qs.pipeline.shared.QSPipelineFlagsRepository; import com.android.systemui.qs.tileimpl.QSTileImpl; import com.android.systemui.qs.tiles.di.NewQSTileFactory; +import com.android.systemui.res.R; import com.android.systemui.settings.UserFileManager; import com.android.systemui.settings.UserTracker; import com.android.systemui.shade.ShadeController; @@ -78,9 +81,8 @@ import com.android.systemui.util.settings.FakeSettings; import com.android.systemui.util.settings.SecureSettings; import com.android.systemui.util.time.FakeSystemClock; -import dagger.Lazy; - import org.junit.Before; +import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; @@ -94,6 +96,8 @@ import java.util.concurrent.Executor; import javax.inject.Provider; +import dagger.Lazy; + @RunWith(AndroidTestingRunner.class) @SmallTest public class QSTileHostTest extends SysuiTestCase { @@ -104,6 +108,9 @@ public class QSTileHostTest extends SysuiTestCase { private static final String CUSTOM_TILE_SPEC = CustomTile.toSpec(CUSTOM_TILE); private static final String SETTING = QSHost.TILES_SETTING; + @Rule + public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); + @Mock private PluginManager mPluginManager; @Mock @@ -146,8 +153,7 @@ public class QSTileHostTest extends SysuiTestCase { MockitoAnnotations.initMocks(this); mFeatureFlags = new FakeFeatureFlags(); - mFeatureFlags.set(Flags.QS_PIPELINE_NEW_HOST, false); - mFeatureFlags.set(Flags.QS_PIPELINE_AUTO_ADD, false); + mSetFlagsRule.disableFlags(FLAG_QS_NEW_PIPELINE); // TODO(b/299909337): Add test checking the new factory is used when the flag is on mFeatureFlags.set(Flags.QS_PIPELINE_NEW_TILES, false); mQSPipelineFlagsRepository = new QSPipelineFlagsRepository(mFeatureFlags); @@ -690,17 +696,6 @@ public class QSTileHostTest extends SysuiTestCase { assertEquals(CUSTOM_TILE.getClassName(), proto.tiles[1].getComponentName().className); } - @Test - public void testUserChange_flagOn_autoTileManagerNotified() { - mFeatureFlags.set(Flags.QS_PIPELINE_NEW_HOST, true); - int currentUser = mUserTracker.getUserId(); - clearInvocations(mAutoTiles); - when(mUserTracker.getUserId()).thenReturn(currentUser + 1); - - mQSTileHost.onTuningChanged(SETTING, "a,b"); - verify(mAutoTiles).changeUser(UserHandle.of(currentUser + 1)); - } - private SharedPreferences getSharedPreferencesForUser(int user) { return mUserFileManager.getSharedPreferences(QSTileHost.TILES, 0, user); } diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/pipeline/domain/interactor/CurrentTilesInteractorImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/qs/pipeline/domain/interactor/CurrentTilesInteractorImplTest.kt index a89338a38e89..355ca816e789 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/pipeline/domain/interactor/CurrentTilesInteractorImplTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/pipeline/domain/interactor/CurrentTilesInteractorImplTest.kt @@ -21,9 +21,11 @@ import android.content.Context import android.content.Intent import android.content.pm.UserInfo import android.os.UserHandle +import android.platform.test.flag.junit.SetFlagsRule import android.service.quicksettings.Tile import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest +import com.android.systemui.Flags.FLAG_QS_NEW_PIPELINE import com.android.systemui.SysuiTestCase import com.android.systemui.coroutines.collectLastValue import com.android.systemui.dump.nano.SystemUIProtoDump @@ -60,6 +62,7 @@ import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.runCurrent import kotlinx.coroutines.test.runTest import org.junit.Before +import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith import org.mockito.ArgumentMatchers.anyString @@ -74,6 +77,8 @@ import org.mockito.MockitoAnnotations @OptIn(ExperimentalCoroutinesApi::class) class CurrentTilesInteractorImplTest : SysuiTestCase() { + @Rule @JvmField val setFlagsRule = SetFlagsRule() + private val tileSpecRepository: TileSpecRepository = FakeTileSpecRepository() private val userRepository = FakeUserRepository() private val installedTilesPackageRepository = FakeInstalledTilesComponentRepository() @@ -104,8 +109,7 @@ class CurrentTilesInteractorImplTest : SysuiTestCase() { fun setup() { MockitoAnnotations.initMocks(this) - featureFlags.set(Flags.QS_PIPELINE_NEW_HOST, true) - featureFlags.set(Flags.QS_PIPELINE_AUTO_ADD, true) + setFlagsRule.enableFlags(FLAG_QS_NEW_PIPELINE) // TODO(b/299909337): Add test checking the new factory is used when the flag is on featureFlags.set(Flags.QS_PIPELINE_NEW_TILES, true) diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/pipeline/shared/QSPipelineFlagsRepositoryTest.kt b/packages/SystemUI/tests/src/com/android/systemui/qs/pipeline/shared/QSPipelineFlagsRepositoryTest.kt index 489221e86d0b..62ca965a81dd 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/pipeline/shared/QSPipelineFlagsRepositoryTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/pipeline/shared/QSPipelineFlagsRepositoryTest.kt @@ -1,61 +1,37 @@ package com.android.systemui.qs.pipeline.shared +import android.platform.test.flag.junit.SetFlagsRule +import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest +import com.android.systemui.Flags import com.android.systemui.SysuiTestCase -import com.android.systemui.flags.FakeFeatureFlags -import com.android.systemui.flags.Flags +import com.android.systemui.flags.FakeFeatureFlagsClassic import com.google.common.truth.Truth.assertThat -import org.junit.Before +import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith -import org.junit.runners.Parameterized -import org.junit.runners.Parameterized.Parameter -import org.junit.runners.Parameterized.Parameters @SmallTest -@RunWith(Parameterized::class) +@RunWith(AndroidJUnit4::class) class QSPipelineFlagsRepositoryTest : SysuiTestCase() { - companion object { - @Parameters( - name = - """ -WHEN: qs_pipeline_new_host = {0}, qs_pipeline_auto_add = {1} -THEN: pipelineNewHost = {2}, pipelineAutoAdd = {3} - """ - ) - @JvmStatic - fun data(): List<Array<Boolean>> = - (0 until 4).map { combination -> - val qs_pipeline_new_host = combination and 0b10 != 0 - val qs_pipeline_auto_add = combination and 0b01 != 0 - arrayOf( - qs_pipeline_new_host, - qs_pipeline_auto_add, - /* pipelineNewHost = */ qs_pipeline_new_host, - /* pipelineAutoAdd = */ qs_pipeline_new_host && qs_pipeline_auto_add, - ) - } - } - @JvmField @Parameter(0) var qsPipelineNewHostFlag: Boolean = false - @JvmField @Parameter(1) var qsPipelineAutoAddFlag: Boolean = false - @JvmField @Parameter(2) var pipelineNewHostExpected: Boolean = false - @JvmField @Parameter(3) var pipelineAutoAddExpected: Boolean = false + @Rule @JvmField val setFlagsRule = SetFlagsRule() + + private val fakeFeatureFlagsClassic = FakeFeatureFlagsClassic() - private val featureFlags = FakeFeatureFlags() - private val pipelineFlags = QSPipelineFlagsRepository(featureFlags) + private val underTest = QSPipelineFlagsRepository(fakeFeatureFlagsClassic) - @Before - fun setUp() { - featureFlags.apply { - set(Flags.QS_PIPELINE_NEW_HOST, qsPipelineNewHostFlag) - set(Flags.QS_PIPELINE_AUTO_ADD, qsPipelineAutoAddFlag) - } + @Test + fun pipelineFlagDisabled() { + setFlagsRule.disableFlags(Flags.FLAG_QS_NEW_PIPELINE) + + assertThat(underTest.pipelineEnabled).isFalse() } @Test - fun flagLogic() { - assertThat(pipelineFlags.pipelineHostEnabled).isEqualTo(pipelineNewHostExpected) - assertThat(pipelineFlags.pipelineAutoAddEnabled).isEqualTo(pipelineAutoAddExpected) + fun pipelineFlagEnabled() { + setFlagsRule.enableFlags(Flags.FLAG_QS_NEW_PIPELINE) + + assertThat(underTest.pipelineEnabled).isTrue() } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/scene/SceneFrameworkIntegrationTest.kt b/packages/SystemUI/tests/src/com/android/systemui/scene/SceneFrameworkIntegrationTest.kt index 3feb5bfd088a..e84d274b4763 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/scene/SceneFrameworkIntegrationTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/scene/SceneFrameworkIntegrationTest.kt @@ -18,17 +18,23 @@ package com.android.systemui.scene +import android.telecom.TelecomManager +import android.telephony.TelephonyManager import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest +import com.android.internal.R +import com.android.internal.util.EmergencyAffordanceManager import com.android.systemui.SysuiTestCase import com.android.systemui.authentication.data.repository.FakeAuthenticationRepository import com.android.systemui.authentication.domain.model.AuthenticationMethodModel as DomainLayerAuthenticationMethodModel +import com.android.systemui.bouncer.domain.interactor.BouncerActionButtonInteractor +import com.android.systemui.bouncer.ui.viewmodel.BouncerViewModel import com.android.systemui.bouncer.ui.viewmodel.PinBouncerViewModel import com.android.systemui.coroutines.collectLastValue -import com.android.systemui.flags.FakeFeatureFlagsClassic import com.android.systemui.flags.Flags import com.android.systemui.keyguard.ui.viewmodel.KeyguardLongPressViewModel import com.android.systemui.keyguard.ui.viewmodel.LockscreenSceneViewModel +import com.android.systemui.log.table.TableLogBuffer import com.android.systemui.model.SysUiState import com.android.systemui.power.domain.interactor.PowerInteractor.Companion.setAsleepForTest import com.android.systemui.power.domain.interactor.PowerInteractor.Companion.setAwakeForTest @@ -49,7 +55,9 @@ import com.android.systemui.statusbar.pipeline.mobile.domain.interactor.FakeMobi import com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel.MobileIconsViewModel import com.android.systemui.statusbar.pipeline.mobile.util.FakeMobileMappingsProxy import com.android.systemui.statusbar.pipeline.shared.data.repository.FakeConnectivityRepository +import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.mock +import com.android.systemui.util.mockito.whenever import com.google.common.truth.Truth.assertThat import com.google.common.truth.Truth.assertWithMessage import kotlinx.coroutines.ExperimentalCoroutinesApi @@ -63,6 +71,10 @@ import kotlinx.coroutines.test.runTest import org.junit.Before import org.junit.Test import org.junit.runner.RunWith +import org.mockito.Mock +import org.mockito.Mockito.times +import org.mockito.Mockito.verify +import org.mockito.MockitoAnnotations /** * Integration test cases for the Scene Framework. @@ -87,6 +99,10 @@ import org.junit.runner.RunWith @RunWith(AndroidJUnit4::class) class SceneFrameworkIntegrationTest : SysuiTestCase() { + @Mock private lateinit var emergencyAffordanceManager: EmergencyAffordanceManager + @Mock private lateinit var tableLogger: TableLogBuffer + @Mock private lateinit var telecomManager: TelecomManager + private val utils = SceneTestUtils(this) private val testScope = utils.testScope private val sceneContainerConfig = utils.fakeSceneContainerConfig() @@ -123,11 +139,10 @@ class SceneFrameworkIntegrationTest : SysuiTestCase() { authenticationInteractor = authenticationInteractor, sceneInteractor = sceneInteractor, ) - private val bouncerViewModel = - utils.bouncerViewModel( - bouncerInteractor = bouncerInteractor, - authenticationInteractor = authenticationInteractor, - ) + + private lateinit var mobileConnectionsRepository: FakeMobileConnectionsRepository + private lateinit var bouncerActionButtonInteractor: BouncerActionButtonInteractor + private lateinit var bouncerViewModel: BouncerViewModel private val lockscreenSceneViewModel = LockscreenSceneViewModel( @@ -141,7 +156,6 @@ class SceneFrameworkIntegrationTest : SysuiTestCase() { ) private val mobileIconsInteractor = FakeMobileIconsInteractor(FakeMobileMappingsProxy(), mock()) - private val flags = FakeFeatureFlagsClassic().also { it.set(Flags.NEW_NETWORK_SLICE_UI, false) } private var mobileIconsViewModel: MobileIconsViewModel = MobileIconsViewModel( @@ -155,7 +169,7 @@ class SceneFrameworkIntegrationTest : SysuiTestCase() { FakeMobileConnectionsRepository(), ), constants = mock(), - flags, + utils.featureFlags, scope = testScope.backgroundScope, ) @@ -173,6 +187,39 @@ class SceneFrameworkIntegrationTest : SysuiTestCase() { @Before fun setUp() { + MockitoAnnotations.initMocks(this) + overrideResource(R.bool.config_enable_emergency_call_while_sim_locked, true) + whenever(telecomManager.isInCall).thenReturn(false) + whenever(emergencyAffordanceManager.needsEmergencyAffordance()).thenReturn(true) + + utils.featureFlags.apply { + set(Flags.NEW_NETWORK_SLICE_UI, false) + set(Flags.REFACTOR_GETCURRENTUSER, true) + } + + mobileConnectionsRepository = + FakeMobileConnectionsRepository(FakeMobileMappingsProxy(), tableLogger) + mobileConnectionsRepository.isAnySimSecure.value = true + + utils.telephonyRepository.apply { + setHasTelephonyRadio(true) + setCallState(TelephonyManager.CALL_STATE_IDLE) + setIsInCall(false) + } + + bouncerActionButtonInteractor = + utils.bouncerActionButtonInteractor( + mobileConnectionsRepository = mobileConnectionsRepository, + telecomManager = telecomManager, + emergencyAffordanceManager = emergencyAffordanceManager, + ) + bouncerViewModel = + utils.bouncerViewModel( + bouncerInteractor = bouncerInteractor, + authenticationInteractor = authenticationInteractor, + actionButtonInteractor = bouncerActionButtonInteractor, + ) + shadeHeaderViewModel = ShadeHeaderViewModel( applicationScope = testScope.backgroundScope, @@ -395,6 +442,45 @@ class SceneFrameworkIntegrationTest : SysuiTestCase() { emulateUiSceneTransition() } + @Test + fun bouncerActionButtonClick_opensEmergencyServicesDialer() = + testScope.runTest { + setAuthMethod(DomainLayerAuthenticationMethodModel.Password) + val upDestinationSceneKey by + collectLastValue(lockscreenSceneViewModel.upDestinationSceneKey) + assertThat(upDestinationSceneKey).isEqualTo(SceneKey.Bouncer) + emulateUserDrivenTransition(to = upDestinationSceneKey) + + val bouncerActionButton by collectLastValue(bouncerViewModel.actionButton) + assertWithMessage("Bouncer action button not visible") + .that(bouncerActionButton) + .isNotNull() + bouncerActionButton?.onClick?.invoke() + runCurrent() + + // TODO(b/298026988): Assert that an activity was started once we use ActivityStarter. + } + + @Test + fun bouncerActionButtonClick_duringCall_returnsToCall() = + testScope.runTest { + setAuthMethod(DomainLayerAuthenticationMethodModel.Password) + startPhoneCall() + val upDestinationSceneKey by + collectLastValue(lockscreenSceneViewModel.upDestinationSceneKey) + assertThat(upDestinationSceneKey).isEqualTo(SceneKey.Bouncer) + emulateUserDrivenTransition(to = upDestinationSceneKey) + + val bouncerActionButton by collectLastValue(bouncerViewModel.actionButton) + assertWithMessage("Bouncer action button not visible during call") + .that(bouncerActionButton) + .isNotNull() + bouncerActionButton?.onClick?.invoke() + runCurrent() + + verify(telecomManager).showInCallScreen(any()) + } + /** * Asserts that the current scene in the view-model matches what's expected. * @@ -438,6 +524,17 @@ class SceneFrameworkIntegrationTest : SysuiTestCase() { runCurrent() } + /** Emulates a phone call in progress. */ + private fun TestScope.startPhoneCall() { + whenever(telecomManager.isInCall).thenReturn(true) + utils.telephonyRepository.apply { + setHasTelephonyRadio(true) + setIsInCall(true) + setCallState(TelephonyManager.CALL_STATE_OFFHOOK) + } + runCurrent() + } + /** * Emulates a complete transition in the UI from whatever the current scene is in the UI to * whatever the current scene should be, based on the value in diff --git a/packages/SystemUI/tests/src/com/android/systemui/screenrecord/RecordingControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/screenrecord/RecordingControllerTest.java index 49049bc51460..1b4ba6433ded 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/screenrecord/RecordingControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/screenrecord/RecordingControllerTest.java @@ -36,20 +36,27 @@ import android.content.Intent; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; +import androidx.annotation.Nullable; import androidx.test.filters.SmallTest; +import com.android.systemui.Dependency; import com.android.systemui.SysuiTestCase; import com.android.systemui.animation.DialogLaunchAnimator; import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.flags.FakeFeatureFlags; +import com.android.systemui.flags.FeatureFlags; import com.android.systemui.flags.Flags; import com.android.systemui.mediaprojection.MediaProjectionMetricsLogger; import com.android.systemui.mediaprojection.SessionCreationSource; import com.android.systemui.mediaprojection.devicepolicy.ScreenCaptureDevicePolicyResolver; import com.android.systemui.mediaprojection.devicepolicy.ScreenCaptureDisabledDialog; +import com.android.systemui.model.SysUiState; import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.settings.UserContextProvider; import com.android.systemui.settings.UserTracker; +import com.android.systemui.statusbar.phone.DialogDelegate; +import com.android.systemui.statusbar.phone.SystemUIDialog; +import com.android.systemui.statusbar.phone.SystemUIDialogManager; import com.android.systemui.util.concurrency.FakeExecutor; import com.android.systemui.util.time.FakeSystemClock; @@ -92,6 +99,7 @@ public class RecordingControllerTest extends SysuiTestCase { private FakeFeatureFlags mFeatureFlags; private RecordingController mController; + private TestSystemUIDialogFactory mDialogFactory; private static final int USER_ID = 10; @@ -103,6 +111,15 @@ public class RecordingControllerTest extends SysuiTestCase { when(mUserContextProvider.getUserContext()).thenReturn(spiedContext); + mDialogFactory = new TestSystemUIDialogFactory( + mContext, + mFeatureFlags, + Dependency.get(SystemUIDialogManager.class), + Dependency.get(SysUiState.class), + Dependency.get(BroadcastDispatcher.class), + Dependency.get(DialogLaunchAnimator.class) + ); + mFeatureFlags = new FakeFeatureFlags(); mController = new RecordingController( mMainExecutor, @@ -112,7 +129,8 @@ public class RecordingControllerTest extends SysuiTestCase { mUserContextProvider, () -> mDevicePolicyResolver, mUserTracker, - mMediaProjectionMetricsLogger); + mMediaProjectionMetricsLogger, + mDialogFactory); mController.addCallback(mCallback); } @@ -218,10 +236,17 @@ public class RecordingControllerTest extends SysuiTestCase { mFeatureFlags.set(Flags.WM_ENABLE_PARTIAL_SCREEN_SHARING_ENTERPRISE_POLICIES, false); when(mDevicePolicyResolver.isScreenCaptureCompletelyDisabled((any()))).thenReturn(true); - Dialog dialog = mController.createScreenRecordDialog(mContext, mFeatureFlags, - mDialogLaunchAnimator, mActivityStarter, /* onStartRecordingClicked= */ null); - - assertThat(dialog).isInstanceOf(ScreenRecordPermissionDialog.class); + Dialog dialog = + mController.createScreenRecordDialog( + mContext, + mFeatureFlags, + mDialogLaunchAnimator, + mActivityStarter, + /* onStartRecordingClicked= */ null); + + assertThat(dialog).isSameInstanceAs(mDialogFactory.mLastCreatedDialog); + assertThat(mDialogFactory.mLastDelegate) + .isInstanceOf(ScreenRecordPermissionDialogDelegate.class); } @Test @@ -253,10 +278,17 @@ public class RecordingControllerTest extends SysuiTestCase { mFeatureFlags.set(Flags.WM_ENABLE_PARTIAL_SCREEN_SHARING_ENTERPRISE_POLICIES, true); when(mDevicePolicyResolver.isScreenCaptureCompletelyDisabled((any()))).thenReturn(false); - Dialog dialog = mController.createScreenRecordDialog(mContext, mFeatureFlags, - mDialogLaunchAnimator, mActivityStarter, /* onStartRecordingClicked= */ null); - - assertThat(dialog).isInstanceOf(ScreenRecordPermissionDialog.class); + Dialog dialog = + mController.createScreenRecordDialog( + mContext, + mFeatureFlags, + mDialogLaunchAnimator, + mActivityStarter, + /* onStartRecordingClicked= */ null); + + assertThat(dialog).isSameInstanceAs(mDialogFactory.mLastCreatedDialog); + assertThat(mDialogFactory.mLastDelegate) + .isInstanceOf(ScreenRecordPermissionDialogDelegate.class); } @Test @@ -273,4 +305,34 @@ public class RecordingControllerTest extends SysuiTestCase { /* hostUid= */ myUid(), SessionCreationSource.SYSTEM_UI_SCREEN_RECORDER); } + + private static class TestSystemUIDialogFactory extends SystemUIDialog.Factory { + + @Nullable private DialogDelegate<SystemUIDialog> mLastDelegate; + @Nullable private SystemUIDialog mLastCreatedDialog; + + TestSystemUIDialogFactory( + Context context, + FeatureFlags featureFlags, + SystemUIDialogManager systemUIDialogManager, + SysUiState sysUiState, + BroadcastDispatcher broadcastDispatcher, + DialogLaunchAnimator dialogLaunchAnimator) { + super( + context, + featureFlags, + systemUIDialogManager, + sysUiState, + broadcastDispatcher, + dialogLaunchAnimator); + } + + @Override + public SystemUIDialog create(DialogDelegate<SystemUIDialog> delegate) { + SystemUIDialog dialog = super.create(delegate); + mLastDelegate = delegate; + mLastCreatedDialog = dialog; + return dialog; + } + } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/screenrecord/ScreenRecordPermissionDialogTest.kt b/packages/SystemUI/tests/src/com/android/systemui/screenrecord/ScreenRecordPermissionDialogDelegateTest.kt index fd381392c3e9..c848287aa53e 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/screenrecord/ScreenRecordPermissionDialogTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/screenrecord/ScreenRecordPermissionDialogDelegateTest.kt @@ -23,16 +23,22 @@ import android.testing.TestableLooper import android.view.View import android.widget.Spinner import androidx.test.filters.SmallTest +import com.android.systemui.Dependency import com.android.systemui.SysuiTestCase +import com.android.systemui.animation.DialogLaunchAnimator +import com.android.systemui.broadcast.BroadcastDispatcher import com.android.systemui.flags.FeatureFlags import com.android.systemui.flags.Flags import com.android.systemui.mediaprojection.MediaProjectionMetricsLogger import com.android.systemui.mediaprojection.appselector.MediaProjectionAppSelectorActivity import com.android.systemui.mediaprojection.permission.ENTIRE_SCREEN import com.android.systemui.mediaprojection.permission.SINGLE_APP +import com.android.systemui.model.SysUiState import com.android.systemui.plugins.ActivityStarter import com.android.systemui.res.R import com.android.systemui.settings.UserContextProvider +import com.android.systemui.statusbar.phone.SystemUIDialog +import com.android.systemui.statusbar.phone.SystemUIDialogManager import com.android.systemui.util.mockito.argumentCaptor import com.android.systemui.util.mockito.mock import com.google.common.truth.Truth.assertThat @@ -50,7 +56,7 @@ import org.mockito.MockitoAnnotations @SmallTest @RunWith(AndroidTestingRunner::class) @TestableLooper.RunWithLooper(setAsMainLooper = true) -class ScreenRecordPermissionDialogTest : SysuiTestCase() { +class ScreenRecordPermissionDialogDelegateTest : SysuiTestCase() { @Mock private lateinit var starter: ActivityStarter @Mock private lateinit var controller: RecordingController @@ -59,15 +65,23 @@ class ScreenRecordPermissionDialogTest : SysuiTestCase() { @Mock private lateinit var onStartRecordingClicked: Runnable @Mock private lateinit var mediaProjectionMetricsLogger: MediaProjectionMetricsLogger - private lateinit var dialog: ScreenRecordPermissionDialog + private lateinit var dialog: SystemUIDialog @Before fun setUp() { MockitoAnnotations.initMocks(this) - dialog = - ScreenRecordPermissionDialog( + val systemUIDialogFactory = + SystemUIDialog.Factory( context, + Dependency.get(FeatureFlags::class.java), + Dependency.get(SystemUIDialogManager::class.java), + Dependency.get(SysUiState::class.java), + Dependency.get(BroadcastDispatcher::class.java), + Dependency.get(DialogLaunchAnimator::class.java), + ) + val delegate = + ScreenRecordPermissionDialogDelegate( UserHandle.of(0), TEST_HOST_UID, controller, @@ -76,20 +90,21 @@ class ScreenRecordPermissionDialogTest : SysuiTestCase() { onStartRecordingClicked, mediaProjectionMetricsLogger, ) - dialog.onCreate(null) + dialog = systemUIDialogFactory.create(delegate) + delegate.onCreate(dialog, savedInstanceState = null) whenever(flags.isEnabled(Flags.WM_ENABLE_PARTIAL_SCREEN_SHARING)).thenReturn(true) } @After fun teardown() { if (::dialog.isInitialized) { - dialog.dismiss() + dismissDialog() } } @Test fun testShowDialog_partialScreenSharingEnabled_optionsSpinnerIsVisible() { - dialog.show() + showDialog() val visibility = dialog.requireViewById<Spinner>(R.id.screen_share_mode_spinner).visibility assertThat(visibility).isEqualTo(View.VISIBLE) @@ -97,7 +112,7 @@ class ScreenRecordPermissionDialogTest : SysuiTestCase() { @Test fun testShowDialog_singleAppSelected_showTapsIsGone() { - dialog.show() + showDialog() onSpinnerItemSelected(SINGLE_APP) val visibility = dialog.requireViewById<View>(R.id.show_taps).visibility @@ -106,7 +121,7 @@ class ScreenRecordPermissionDialogTest : SysuiTestCase() { @Test fun testShowDialog_entireScreenSelected_showTapsIsVisible() { - dialog.show() + showDialog() onSpinnerItemSelected(ENTIRE_SCREEN) val visibility = dialog.requireViewById<View>(R.id.show_taps).visibility @@ -115,7 +130,7 @@ class ScreenRecordPermissionDialogTest : SysuiTestCase() { @Test fun startClicked_singleAppSelected_passesHostUidToAppSelector() { - dialog.show() + showDialog() onSpinnerItemSelected(SINGLE_APP) clickOnStart() @@ -128,14 +143,14 @@ class ScreenRecordPermissionDialogTest : SysuiTestCase() { @Test fun showDialog_dialogIsShowing() { - dialog.show() + showDialog() assertThat(dialog.isShowing).isTrue() } @Test fun showDialog_singleAppIsDefault() { - dialog.show() + showDialog() val spinner = dialog.requireViewById<Spinner>(R.id.screen_share_mode_spinner) val singleApp = context.getString(R.string.screen_share_permission_dialog_option_single_app) @@ -144,7 +159,7 @@ class ScreenRecordPermissionDialogTest : SysuiTestCase() { @Test fun showDialog_cancelClicked_dialogIsDismissed() { - dialog.show() + showDialog() clickOnCancel() @@ -153,7 +168,7 @@ class ScreenRecordPermissionDialogTest : SysuiTestCase() { @Test fun showDialog_cancelClickedMultipleTimes_projectionRequestCancelledIsLoggedOnce() { - dialog.show() + showDialog() clickOnCancel() clickOnCancel() @@ -163,16 +178,22 @@ class ScreenRecordPermissionDialogTest : SysuiTestCase() { @Test fun dismissDialog_dismissCalledMultipleTimes_projectionRequestCancelledIsLoggedOnce() { - dialog.show() + showDialog() - TestableLooper.get(this).runWithLooper { - dialog.dismiss() - dialog.dismiss() - } + dismissDialog() + dismissDialog() verify(mediaProjectionMetricsLogger).notifyProjectionRequestCancelled(TEST_HOST_UID) } + private fun showDialog() { + dialog.show() + } + + private fun dismissDialog() { + dialog.dismiss() + } + private fun clickOnCancel() { dialog.requireViewById<View>(android.R.id.button2).performClick() } diff --git a/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerBaseTest.java b/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerBaseTest.java index 2f72704f7a23..bc28ccb3c7d6 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerBaseTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerBaseTest.java @@ -88,7 +88,8 @@ import com.android.systemui.common.ui.data.repository.FakeConfigurationRepositor import com.android.systemui.common.ui.view.LongPressHandlingView; import com.android.systemui.doze.DozeLog; import com.android.systemui.dump.DumpManager; -import com.android.systemui.flags.FeatureFlags; +import com.android.systemui.flags.FakeFeatureFlagsClassic; +import com.android.systemui.flags.Flags; import com.android.systemui.fragments.FragmentHostManager; import com.android.systemui.fragments.FragmentService; import com.android.systemui.keyguard.KeyguardUnlockAnimationController; @@ -228,7 +229,6 @@ public class NotificationPanelViewControllerBaseTest extends SysuiTestCase { @Mock protected ScreenOffAnimationController mScreenOffAnimationController; @Mock protected NotificationPanelView mView; @Mock protected LayoutInflater mLayoutInflater; - @Mock protected FeatureFlags mFeatureFlags; @Mock protected DynamicPrivacyController mDynamicPrivacyController; @Mock protected StatusBarTouchableRegionManager mStatusBarTouchableRegionManager; @Mock protected KeyguardStateController mKeyguardStateController; @@ -335,6 +335,7 @@ public class NotificationPanelViewControllerBaseTest extends SysuiTestCase { @Mock private KeyguardClockPositionAlgorithm mKeyguardClockPositionAlgorithm; protected final int mMaxUdfpsBurnInOffsetY = 5; + protected FakeFeatureFlagsClassic mFeatureFlags = new FakeFeatureFlagsClassic(); protected KeyguardBottomAreaInteractor mKeyguardBottomAreaInteractor; protected FakeKeyguardRepository mFakeKeyguardRepository; protected KeyguardInteractor mKeyguardInteractor; @@ -368,6 +369,13 @@ public class NotificationPanelViewControllerBaseTest extends SysuiTestCase { @Before public void setup() { MockitoAnnotations.initMocks(this); + mFeatureFlags.set(Flags.WM_SHADE_ANIMATE_BACK_GESTURE, false); + mFeatureFlags.set(Flags.TRACKPAD_GESTURE_FEATURES, false); + mFeatureFlags.set(Flags.MIGRATE_KEYGUARD_STATUS_VIEW, false); + mFeatureFlags.set(Flags.LOCKSCREEN_ENABLE_LANDSCAPE, false); + mFeatureFlags.set(Flags.MIGRATE_NSSL, false); + mFeatureFlags.set(Flags.QS_USER_DETAIL_SHORTCUT, false); + mFeatureFlags.set(Flags.ONE_WAY_HAPTICS_API_MIGRATION, false); mMainDispatcher = getMainDispatcher(); KeyguardInteractorFactory.WithDependencies keyguardInteractorDeps = KeyguardInteractorFactory.create(); diff --git a/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerTest.java index ddfa9bc8616c..d5737643e0d4 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerTest.java @@ -58,10 +58,10 @@ import androidx.test.filters.SmallTest; import com.android.keyguard.FaceAuthApiRequestReason; import com.android.systemui.DejankUtils; -import com.android.systemui.res.R; import com.android.systemui.flags.Flags; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.power.domain.interactor.PowerInteractor; +import com.android.systemui.res.R; import com.android.systemui.statusbar.notification.row.ExpandableView; import com.android.systemui.statusbar.notification.row.ExpandableView.OnHeightChangedListener; import com.android.systemui.statusbar.notification.stack.AmbientState; @@ -793,7 +793,7 @@ public class NotificationPanelViewControllerTest extends NotificationPanelViewCo // We are interested in the last value of the stack alpha. ArgumentCaptor<Float> alphaCaptor = ArgumentCaptor.forClass(Float.class); verify(mNotificationStackScrollLayoutController, atLeastOnce()) - .setAlpha(alphaCaptor.capture()); + .setMaxAlphaForExpansion(alphaCaptor.capture()); assertThat(alphaCaptor.getValue()).isEqualTo(1.0f); } @@ -814,7 +814,7 @@ public class NotificationPanelViewControllerTest extends NotificationPanelViewCo // We are interested in the last value of the stack alpha. ArgumentCaptor<Float> alphaCaptor = ArgumentCaptor.forClass(Float.class); verify(mNotificationStackScrollLayoutController, atLeastOnce()) - .setAlpha(alphaCaptor.capture()); + .setMaxAlphaForExpansion(alphaCaptor.capture()); assertThat(alphaCaptor.getValue()).isEqualTo(0.0f); } @@ -838,7 +838,7 @@ public class NotificationPanelViewControllerTest extends NotificationPanelViewCo mStatusBarStateController.setState(KEYGUARD); enableSplitShade(/* enabled= */ false); mNotificationPanelViewController.setDozing(false, false); - when(mFeatureFlags.isEnabled(Flags.LOCKSCREEN_ENABLE_LANDSCAPE)).thenReturn(true); + mFeatureFlags.set(Flags.LOCKSCREEN_ENABLE_LANDSCAPE, true); when(mResources.getBoolean(R.bool.force_small_clock_on_lockscreen)).thenReturn(true); when(mMediaDataManager.hasActiveMedia()).thenReturn(false); when(mNotificationStackScrollLayoutController.getVisibleNotificationCount()).thenReturn(0); @@ -856,7 +856,7 @@ public class NotificationPanelViewControllerTest extends NotificationPanelViewCo mStatusBarStateController.setState(KEYGUARD); enableSplitShade(/* enabled= */ false); mNotificationPanelViewController.setDozing(false, false); - when(mFeatureFlags.isEnabled(Flags.LOCKSCREEN_ENABLE_LANDSCAPE)).thenReturn(false); + mFeatureFlags.set(Flags.LOCKSCREEN_ENABLE_LANDSCAPE, false); when(mResources.getBoolean(R.bool.force_small_clock_on_lockscreen)).thenReturn(true); when(mMediaDataManager.hasActiveMedia()).thenReturn(false); when(mNotificationStackScrollLayoutController.getVisibleNotificationCount()).thenReturn(0); @@ -1105,7 +1105,7 @@ public class NotificationPanelViewControllerTest extends NotificationPanelViewCo @Test public void nsslFlagEnabled_allowOnlyExternalTouches() { - when(mFeatureFlags.isEnabled(Flags.MIGRATE_NSSL)).thenReturn(true); + mFeatureFlags.set(Flags.MIGRATE_NSSL, true); // This sets the dozing state that is read when onMiddleClicked is eventually invoked. mTouchHandler.onTouch(mock(View.class), mDownMotionEvent); diff --git a/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerWithCoroutinesTest.kt b/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerWithCoroutinesTest.kt index aead53e7ce9f..7ad84d6186e7 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerWithCoroutinesTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerWithCoroutinesTest.kt @@ -25,9 +25,9 @@ import android.view.ViewStub import androidx.test.filters.SmallTest import com.android.internal.util.CollectionUtils import com.android.keyguard.KeyguardClockSwitch.LARGE -import com.android.systemui.res.R import com.android.systemui.coroutines.collectLastValue import com.android.systemui.flags.Flags.ONE_WAY_HAPTICS_API_MIGRATION +import com.android.systemui.res.R import com.android.systemui.statusbar.StatusBarState.KEYGUARD import com.android.systemui.statusbar.StatusBarState.SHADE import com.android.systemui.statusbar.StatusBarState.SHADE_LOCKED @@ -160,7 +160,7 @@ class NotificationPanelViewControllerWithCoroutinesTest : @Test fun doubleTapRequired_onKeyguard_oneWayHapticsDisabled_usesOldVibrate() = runTest { launch(Dispatchers.Main.immediate) { - whenever(mFeatureFlags.isEnabled(ONE_WAY_HAPTICS_API_MIGRATION)).thenReturn(false) + mFeatureFlags.set(ONE_WAY_HAPTICS_API_MIGRATION, false) val listener = getFalsingTapListener() mStatusBarStateController.setState(KEYGUARD) @@ -182,7 +182,7 @@ class NotificationPanelViewControllerWithCoroutinesTest : @Test fun doubleTapRequired_onKeyguard_oneWayHapticsEnabled_usesPerformHapticFeedback() = runTest { launch(Dispatchers.Main.immediate) { - whenever(mFeatureFlags.isEnabled(ONE_WAY_HAPTICS_API_MIGRATION)).thenReturn(true) + mFeatureFlags.set(ONE_WAY_HAPTICS_API_MIGRATION, true) val listener = getFalsingTapListener() mStatusBarStateController.setState(KEYGUARD) @@ -210,7 +210,7 @@ class NotificationPanelViewControllerWithCoroutinesTest : @Test fun doubleTapRequired_shadeLocked_oneWayHapticsDisabled_usesOldVibrate() = runTest { launch(Dispatchers.Main.immediate) { - whenever(mFeatureFlags.isEnabled(ONE_WAY_HAPTICS_API_MIGRATION)).thenReturn(false) + mFeatureFlags.set(ONE_WAY_HAPTICS_API_MIGRATION, false) val listener = getFalsingTapListener() val packageName = mView.context.packageName mStatusBarStateController.setState(SHADE_LOCKED) @@ -233,7 +233,7 @@ class NotificationPanelViewControllerWithCoroutinesTest : @Test fun doubleTapRequired_shadeLocked_oneWayHapticsEnabled_usesPerformHapticFeedback() = runTest { launch(Dispatchers.Main.immediate) { - whenever(mFeatureFlags.isEnabled(ONE_WAY_HAPTICS_API_MIGRATION)).thenReturn(true) + mFeatureFlags.set(ONE_WAY_HAPTICS_API_MIGRATION, true) val listener = getFalsingTapListener() mStatusBarStateController.setState(SHADE_LOCKED) diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerMainThreadTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerMainThreadTest.java index 3a9c24a7109c..01fe40f6dff6 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerMainThreadTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerMainThreadTest.java @@ -49,6 +49,7 @@ import android.os.UserManager; import android.provider.Settings; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; +import android.util.SparseArray; import androidx.test.filters.SmallTest; @@ -120,6 +121,7 @@ public class NotificationLockscreenUserManagerMainThreadTest extends SysuiTestCa private UserInfo mCurrentUser; private UserInfo mSecondaryUser; private UserInfo mWorkUser; + private UserInfo mCommunalUser; private FakeSettings mSettings; private TestNotificationLockscreenUserManager mLockscreenUserManager; private NotificationEntry mCurrentUserNotif; @@ -142,12 +144,18 @@ public class NotificationLockscreenUserManagerMainThreadTest extends SysuiTestCa mSecondaryUser = new UserInfo(currentUserId + 1, "", 0); mWorkUser = new UserInfo(currentUserId + 2, "" /* name */, null /* iconPath */, 0, UserManager.USER_TYPE_PROFILE_MANAGED); + mCommunalUser = new UserInfo(currentUserId + 3, "" /* name */, null /* iconPath */, 0, + UserManager.USER_TYPE_PROFILE_COMMUNAL); when(mKeyguardManager.getPrivateNotificationsAllowed()).thenReturn(true); when(mUserManager.getProfiles(currentUserId)).thenReturn(Lists.newArrayList( mCurrentUser, mWorkUser)); + when(mUserManager.getProfilesIncludingCommunal(currentUserId)).thenReturn( + Lists.newArrayList(mCurrentUser, mWorkUser, mCommunalUser)); when(mUserManager.getProfiles(mSecondaryUser.id)).thenReturn(Lists.newArrayList( mSecondaryUser)); + when(mUserManager.getProfilesIncludingCommunal(mSecondaryUser.id)).thenReturn( + Lists.newArrayList(mSecondaryUser, mCommunalUser)); mDependency.injectTestDependency(Dependency.MAIN_HANDLER, Handler.createAsync(Looper.myLooper())); @@ -178,6 +186,26 @@ public class NotificationLockscreenUserManagerMainThreadTest extends SysuiTestCa } @Test + public void testGetCurrentProfiles() { + final SparseArray<UserInfo> expectedCurProfiles = new SparseArray<>(); + expectedCurProfiles.put(mCurrentUser.id, mCurrentUser); + expectedCurProfiles.put(mWorkUser.id, mWorkUser); + if (android.multiuser.Flags.supportCommunalProfile()) { + expectedCurProfiles.put(mCommunalUser.id, mCommunalUser); + } + assertTrue(mLockscreenUserManager.getCurrentProfiles().contentEquals(expectedCurProfiles)); + + mLockscreenUserManager.mUserChangedCallback.onUserChanging(mSecondaryUser.id, mContext); + + final SparseArray<UserInfo> expectedSecProfiles = new SparseArray<>(); + expectedSecProfiles.put(mSecondaryUser.id, mSecondaryUser); + if (android.multiuser.Flags.supportCommunalProfile()) { + expectedSecProfiles.put(mCommunalUser.id, mCommunalUser); + } + assertTrue(mLockscreenUserManager.getCurrentProfiles().contentEquals(expectedSecProfiles)); + } + + @Test public void testLockScreenShowNotificationsFalse() { mSettings.putInt(LOCK_SCREEN_SHOW_NOTIFICATIONS, 0); changeSetting(LOCK_SCREEN_SHOW_NOTIFICATIONS); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerTest.java index 43adc69be13f..a1425f811a84 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerTest.java @@ -64,6 +64,7 @@ import android.os.UserManager; import android.provider.Settings; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; +import android.util.SparseArray; import androidx.test.filters.SmallTest; @@ -136,6 +137,7 @@ public class NotificationLockscreenUserManagerTest extends SysuiTestCase { private UserInfo mCurrentUser; private UserInfo mSecondaryUser; private UserInfo mWorkUser; + private UserInfo mCommunalUser; private FakeSettings mSettings; private TestNotificationLockscreenUserManager mLockscreenUserManager; private NotificationEntry mCurrentUserNotif; @@ -158,14 +160,20 @@ public class NotificationLockscreenUserManagerTest extends SysuiTestCase { mSecondaryUser = new UserInfo(currentUserId + 1, "", 0); mWorkUser = new UserInfo(currentUserId + 2, "" /* name */, null /* iconPath */, 0, UserManager.USER_TYPE_PROFILE_MANAGED); + mCommunalUser = new UserInfo(currentUserId + 3, "" /* name */, null /* iconPath */, 0, + UserManager.USER_TYPE_PROFILE_COMMUNAL); when(mKeyguardManager.getPrivateNotificationsAllowed()).thenReturn(true); when(mUserManager.getProfiles(currentUserId)).thenReturn(Lists.newArrayList( mCurrentUser, mWorkUser)); + when(mUserManager.getProfilesIncludingCommunal(currentUserId)).thenReturn( + Lists.newArrayList(mCurrentUser, mWorkUser, mCommunalUser)); when(mUserManager.getUsers()).thenReturn(Lists.newArrayList( - mCurrentUser, mWorkUser, mSecondaryUser)); + mCurrentUser, mWorkUser, mSecondaryUser, mCommunalUser)); when(mUserManager.getProfiles(mSecondaryUser.id)).thenReturn(Lists.newArrayList( mSecondaryUser)); + when(mUserManager.getProfilesIncludingCommunal(mSecondaryUser.id)).thenReturn( + Lists.newArrayList(mSecondaryUser, mCommunalUser)); mDependency.injectTestDependency(Dependency.MAIN_HANDLER, Handler.createAsync(Looper.myLooper())); @@ -211,6 +219,26 @@ public class NotificationLockscreenUserManagerTest extends SysuiTestCase { } @Test + public void testGetCurrentProfiles() { + final SparseArray<UserInfo> expectedCurProfiles = new SparseArray<>(); + expectedCurProfiles.put(mCurrentUser.id, mCurrentUser); + expectedCurProfiles.put(mWorkUser.id, mWorkUser); + if (android.multiuser.Flags.supportCommunalProfile()) { + expectedCurProfiles.put(mCommunalUser.id, mCommunalUser); + } + assertTrue(mLockscreenUserManager.getCurrentProfiles().contentEquals(expectedCurProfiles)); + + mLockscreenUserManager.mUserChangedCallback.onUserChanging(mSecondaryUser.id, mContext); + + final SparseArray<UserInfo> expectedSecProfiles = new SparseArray<>(); + expectedSecProfiles.put(mSecondaryUser.id, mSecondaryUser); + if (android.multiuser.Flags.supportCommunalProfile()) { + expectedSecProfiles.put(mCommunalUser.id, mCommunalUser); + } + assertTrue(mLockscreenUserManager.getCurrentProfiles().contentEquals(expectedSecProfiles)); + } + + @Test public void testLockScreenShowNotificationsFalse() { mSettings.putInt(LOCK_SCREEN_SHOW_NOTIFICATIONS, 0); changeSetting(LOCK_SCREEN_SHOW_NOTIFICATIONS); @@ -713,7 +741,8 @@ public class NotificationLockscreenUserManagerTest extends SysuiTestCase { assertEquals(0, mLockscreenUserManager.mCurrentProfiles.size()); mLockscreenUserManager.mCurrentProfiles.append(0, mock(UserInfo.class)); simulateProfileAvailabilityActions(Intent.ACTION_PROFILE_AVAILABLE); - assertEquals(2, mLockscreenUserManager.mCurrentProfiles.size()); + int numProfiles = android.multiuser.Flags.supportCommunalProfile() ? 3 : 2; + assertEquals(numProfiles, mLockscreenUserManager.mCurrentProfiles.size()); } @Test @@ -723,7 +752,8 @@ public class NotificationLockscreenUserManagerTest extends SysuiTestCase { assertEquals(0, mLockscreenUserManager.mCurrentProfiles.size()); mLockscreenUserManager.mCurrentProfiles.append(0, mock(UserInfo.class)); simulateProfileAvailabilityActions(Intent.ACTION_PROFILE_UNAVAILABLE); - assertEquals(2, mLockscreenUserManager.mCurrentProfiles.size()); + int numProfiles = android.multiuser.Flags.supportCommunalProfile() ? 3 : 2; + assertEquals(numProfiles, mLockscreenUserManager.mCurrentProfiles.size()); } @Test @@ -735,7 +765,8 @@ public class NotificationLockscreenUserManagerTest extends SysuiTestCase { assertEquals(0, mLockscreenUserManager.mCurrentManagedProfiles.size()); mLockscreenUserManager.mCurrentProfiles.append(0, mock(UserInfo.class)); simulateProfileAvailabilityActions(Intent.ACTION_MANAGED_PROFILE_AVAILABLE); - assertEquals(2, mLockscreenUserManager.mCurrentProfiles.size()); + int numProfiles = android.multiuser.Flags.supportCommunalProfile() ? 3 : 2; + assertEquals(numProfiles, mLockscreenUserManager.mCurrentProfiles.size()); assertEquals(1, mLockscreenUserManager.mCurrentManagedProfiles.size()); } @@ -748,7 +779,8 @@ public class NotificationLockscreenUserManagerTest extends SysuiTestCase { assertEquals(0, mLockscreenUserManager.mCurrentManagedProfiles.size()); mLockscreenUserManager.mCurrentProfiles.append(0, mock(UserInfo.class)); simulateProfileAvailabilityActions(Intent.ACTION_MANAGED_PROFILE_UNAVAILABLE); - assertEquals(2, mLockscreenUserManager.mCurrentProfiles.size()); + int numProfiles = android.multiuser.Flags.supportCommunalProfile() ? 3 : 2; + assertEquals(numProfiles, mLockscreenUserManager.mCurrentProfiles.size()); assertEquals(1, mLockscreenUserManager.mCurrentManagedProfiles.size()); } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationWakeUpCoordinatorLoggerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationWakeUpCoordinatorLoggerTest.kt index 902dd51d3a87..1aac515f538b 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationWakeUpCoordinatorLoggerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationWakeUpCoordinatorLoggerTest.kt @@ -176,7 +176,6 @@ class NotificationWakeUpCoordinatorLoggerTest : SysuiTestCase() { val recentLogs = mutableListOf<Pair<String, LogLevel>>() val tracker = object : LogcatEchoTracker { - override val logInBackgroundThread: Boolean = false override fun isBufferLoggable(bufferName: String, level: LogLevel): Boolean = false override fun isTagLoggable(tagName: String, level: LogLevel): Boolean { recentLogs.add(tagName to level) diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/icon/ui/viewmodel/NotificationIconContainerAlwaysOnDisplayViewModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/icon/ui/viewmodel/NotificationIconContainerAlwaysOnDisplayViewModelTest.kt index 788cfbc47dd3..c2c33de015ef 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/icon/ui/viewmodel/NotificationIconContainerAlwaysOnDisplayViewModelTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/icon/ui/viewmodel/NotificationIconContainerAlwaysOnDisplayViewModelTest.kt @@ -45,9 +45,6 @@ import com.android.systemui.statusbar.policy.data.repository.FakeDeviceProvision import com.android.systemui.user.domain.UserDomainLayerModule import com.android.systemui.util.mockito.mock import com.android.systemui.util.mockito.whenever -import com.android.systemui.util.ui.isAnimating -import com.android.systemui.util.ui.stopAnimating -import com.android.systemui.util.ui.value import com.google.common.truth.Truth.assertThat import dagger.BindsInstance import dagger.Component @@ -129,7 +126,7 @@ class NotificationIconContainerAlwaysOnDisplayViewModelTest : SysuiTestCase() { transitionState = TransitionState.STARTED, ) ) - val animationsEnabled by collectLastValue(underTest.animationsEnabled) + val animationsEnabled by collectLastValue(underTest.areContainerChangesAnimated) runCurrent() assertThat(animationsEnabled).isFalse() } @@ -152,7 +149,7 @@ class NotificationIconContainerAlwaysOnDisplayViewModelTest : SysuiTestCase() { to = DozeStateModel.DOZE_AOD, ) ) - val animationsEnabled by collectLastValue(underTest.animationsEnabled) + val animationsEnabled by collectLastValue(underTest.areContainerChangesAnimated) runCurrent() assertThat(animationsEnabled).isFalse() } @@ -175,7 +172,7 @@ class NotificationIconContainerAlwaysOnDisplayViewModelTest : SysuiTestCase() { to = DozeStateModel.DOZE_PULSING, ) ) - val animationsEnabled by collectLastValue(underTest.animationsEnabled) + val animationsEnabled by collectLastValue(underTest.areContainerChangesAnimated) runCurrent() assertThat(animationsEnabled).isTrue() } @@ -196,7 +193,7 @@ class NotificationIconContainerAlwaysOnDisplayViewModelTest : SysuiTestCase() { ) ) whenever(dozeParams.shouldControlScreenOff()).thenReturn(false) - val animationsEnabled by collectLastValue(underTest.animationsEnabled) + val animationsEnabled by collectLastValue(underTest.areContainerChangesAnimated) runCurrent() assertThat(animationsEnabled).isFalse() } @@ -217,7 +214,7 @@ class NotificationIconContainerAlwaysOnDisplayViewModelTest : SysuiTestCase() { ) ) whenever(dozeParams.shouldControlScreenOff()).thenReturn(true) - val animationsEnabled by collectLastValue(underTest.animationsEnabled) + val animationsEnabled by collectLastValue(underTest.areContainerChangesAnimated) runCurrent() assertThat(animationsEnabled).isTrue() } @@ -235,7 +232,7 @@ class NotificationIconContainerAlwaysOnDisplayViewModelTest : SysuiTestCase() { transitionState = TransitionState.STARTED, ) ) - val animationsEnabled by collectLastValue(underTest.animationsEnabled) + val animationsEnabled by collectLastValue(underTest.areContainerChangesAnimated) runCurrent() assertThat(animationsEnabled).isTrue() } @@ -248,7 +245,7 @@ class NotificationIconContainerAlwaysOnDisplayViewModelTest : SysuiTestCase() { transitionState = TransitionState.STARTED, ) ) - val animationsEnabled by collectLastValue(underTest.animationsEnabled) + val animationsEnabled by collectLastValue(underTest.areContainerChangesAnimated) runCurrent() keyguardRepository.setKeyguardShowing(true) @@ -270,91 +267,151 @@ class NotificationIconContainerAlwaysOnDisplayViewModelTest : SysuiTestCase() { } @Test - fun isDozing_startAodTransition() = + fun tintAlpha_isZero_whenNotOnAodOrDozing() = testComponent.runTest { - val isDozing by collectLastValue(underTest.isDozing) + val tintAlpha by collectLastValue(underTest.tintAlpha) runCurrent() - keyguardTransitionRepository.sendTransitionStep( - TransitionStep( - from = KeyguardState.GONE, - to = KeyguardState.AOD, - transitionState = TransitionState.STARTED, - ) + keyguardTransitionRepository.sendTransitionSteps( + from = KeyguardState.DOZING, + to = KeyguardState.GONE, + testScope, ) runCurrent() - assertThat(isDozing?.value).isTrue() - assertThat(isDozing?.isAnimating).isTrue() + assertThat(tintAlpha).isZero() } @Test - fun isDozing_startDozeTransition() = + fun tintAlpha_isOne_whenOnAod() = testComponent.runTest { - val isDozing by collectLastValue(underTest.isDozing) + val tintAlpha by collectLastValue(underTest.tintAlpha) runCurrent() - keyguardTransitionRepository.sendTransitionStep( - TransitionStep( - from = KeyguardState.GONE, - to = KeyguardState.DOZING, - transitionState = TransitionState.STARTED, - ) + keyguardTransitionRepository.sendTransitionSteps( + from = KeyguardState.GONE, + to = KeyguardState.AOD, + testScope, ) runCurrent() - assertThat(isDozing?.value).isTrue() - assertThat(isDozing?.isAnimating).isFalse() + assertThat(tintAlpha).isEqualTo(1f) + } + + @Test + fun tintAlpha_isOne_whenDozing() = + testComponent.runTest { + val tintAlpha by collectLastValue(underTest.tintAlpha) + runCurrent() + keyguardTransitionRepository.sendTransitionSteps( + from = KeyguardState.GONE, + to = KeyguardState.DOZING, + testScope, + ) + assertThat(tintAlpha).isEqualTo(1f) } @Test - fun isDozing_startDozeToAodTransition() = + fun tintAlpha_isOne_whenTransitionFromAodToDoze() = testComponent.runTest { - val isDozing by collectLastValue(underTest.isDozing) + keyguardTransitionRepository.sendTransitionSteps( + from = KeyguardState.GONE, + to = KeyguardState.AOD, + testScope, + ) + val tintAlpha by collectLastValue(underTest.tintAlpha) runCurrent() + keyguardTransitionRepository.sendTransitionStep( TransitionStep( - from = KeyguardState.DOZING, - to = KeyguardState.AOD, transitionState = TransitionState.STARTED, + from = KeyguardState.AOD, + to = KeyguardState.DOZING, + value = 0f, ) ) runCurrent() - assertThat(isDozing?.value).isTrue() - assertThat(isDozing?.isAnimating).isTrue() - } - @Test - fun isNotDozing_startAodToGoneTransition() = - testComponent.runTest { - val isDozing by collectLastValue(underTest.isDozing) - runCurrent() keyguardTransitionRepository.sendTransitionStep( TransitionStep( + transitionState = TransitionState.RUNNING, from = KeyguardState.AOD, - to = KeyguardState.GONE, - transitionState = TransitionState.STARTED, + to = KeyguardState.DOZING, + value = 0.5f, ) ) runCurrent() - assertThat(isDozing?.value).isFalse() - assertThat(isDozing?.isAnimating).isTrue() + + assertThat(tintAlpha).isEqualTo(1f) } @Test - fun isDozing_stopAnimation() = + fun tintAlpha_isFraction_midTransitionToAod() = testComponent.runTest { - val isDozing by collectLastValue(underTest.isDozing) + val tintAlpha by collectLastValue(underTest.tintAlpha) runCurrent() + keyguardTransitionRepository.sendTransitionStep( TransitionStep( - from = KeyguardState.AOD, - to = KeyguardState.GONE, transitionState = TransitionState.STARTED, + from = KeyguardState.GONE, + to = KeyguardState.AOD, + value = 0f, + ) + ) + runCurrent() + + keyguardTransitionRepository.sendTransitionStep( + TransitionStep( + transitionState = TransitionState.RUNNING, + from = KeyguardState.GONE, + to = KeyguardState.AOD, + value = 0.5f, ) ) runCurrent() - assertThat(isDozing?.isAnimating).isEqualTo(true) - isDozing?.stopAnimating() + assertThat(tintAlpha).isEqualTo(0.5f) + } + + @Test + fun iconAnimationsEnabled_whenOnLockScreen() = + testComponent.runTest { + val iconAnimationsEnabled by collectLastValue(underTest.areIconAnimationsEnabled) + runCurrent() + + keyguardTransitionRepository.sendTransitionSteps( + from = KeyguardState.GONE, + to = KeyguardState.LOCKSCREEN, + testScope, + ) + + assertThat(iconAnimationsEnabled).isTrue() + } + + @Test + fun iconAnimationsDisabled_whenOnAod() = + testComponent.runTest { + val iconAnimationsEnabled by collectLastValue(underTest.areIconAnimationsEnabled) + runCurrent() + + keyguardTransitionRepository.sendTransitionSteps( + from = KeyguardState.GONE, + to = KeyguardState.AOD, + testScope, + ) + + assertThat(iconAnimationsEnabled).isFalse() + } + + @Test + fun iconAnimationsDisabled_whenDozing() = + testComponent.runTest { + val iconAnimationsEnabled by collectLastValue(underTest.areIconAnimationsEnabled) runCurrent() - assertThat(isDozing?.isAnimating).isEqualTo(false) + keyguardTransitionRepository.sendTransitionSteps( + from = KeyguardState.GONE, + to = KeyguardState.DOZING, + testScope, + ) + + assertThat(iconAnimationsEnabled).isFalse() } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/domain/interactor/HideNotificationsInteractorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/domain/interactor/HideNotificationsInteractorTest.kt new file mode 100644 index 000000000000..46e8453a6d1d --- /dev/null +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/domain/interactor/HideNotificationsInteractorTest.kt @@ -0,0 +1,302 @@ +/* + * 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.statusbar.notification.stack.domain.interactor + +import android.content.res.Configuration +import android.graphics.Rect +import android.testing.AndroidTestingRunner +import android.view.Surface +import android.view.Surface.ROTATION_0 +import android.view.Surface.ROTATION_90 +import androidx.test.filters.SmallTest +import com.android.systemui.SysuiTestCase +import com.android.systemui.common.domain.interactor.ConfigurationInteractorImpl +import com.android.systemui.common.ui.data.repository.ConfigurationRepositoryImpl +import com.android.systemui.coroutines.collectValues +import com.android.systemui.power.data.repository.FakePowerRepository +import com.android.systemui.power.domain.interactor.PowerInteractor +import com.android.systemui.power.shared.model.ScreenPowerState.SCREEN_ON +import com.android.systemui.power.shared.model.WakefulnessState.STARTING_TO_SLEEP +import com.android.systemui.statusbar.policy.FakeConfigurationController +import com.android.systemui.unfold.TestUnfoldTransitionProvider +import com.android.systemui.unfold.data.repository.UnfoldTransitionRepositoryImpl +import com.android.systemui.unfold.domain.interactor.UnfoldTransitionInteractorImpl +import com.android.systemui.util.animation.FakeAnimationStatusRepository +import com.android.systemui.util.mockito.mock +import com.google.common.truth.Truth.assertThat +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.test.TestScope +import kotlinx.coroutines.test.advanceTimeBy +import kotlinx.coroutines.test.runCurrent +import kotlinx.coroutines.test.runTest +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.MockitoAnnotations +import java.time.Duration +import java.util.Optional + +@OptIn(ExperimentalCoroutinesApi::class) +@SmallTest +@RunWith(AndroidTestingRunner::class) +open class HideNotificationsInteractorTest : SysuiTestCase() { + + private val testScope = TestScope() + + private val animationStatus = FakeAnimationStatusRepository() + private val configurationController = FakeConfigurationController() + private val unfoldTransitionProgressProvider = TestUnfoldTransitionProvider() + private val powerRepository = FakePowerRepository() + private val powerInteractor = + PowerInteractor( + repository = powerRepository, + falsingCollector = mock(), + screenOffAnimationController = mock(), + statusBarStateController = mock() + ) + + private val unfoldTransitionRepository = + UnfoldTransitionRepositoryImpl(Optional.of(unfoldTransitionProgressProvider)) + private val unfoldTransitionInteractor = + UnfoldTransitionInteractorImpl(unfoldTransitionRepository) + + private val configurationRepository = + ConfigurationRepositoryImpl( + configurationController, + context, + testScope.backgroundScope, + mock() + ) + private val configurationInteractor = ConfigurationInteractorImpl(configurationRepository) + + private lateinit var configuration: Configuration + private lateinit var underTest: HideNotificationsInteractor + + @Before + fun setUp() { + MockitoAnnotations.initMocks(this) + + configuration = context.resources.configuration + + val testableResources = context.getOrCreateTestableResources() + testableResources.overrideConfiguration(configuration) + + updateDisplay() + + underTest = + HideNotificationsInteractor( + unfoldTransitionInteractor, + configurationInteractor, + animationStatus, + powerInteractor + ) + } + + @Test + fun displaySwitch_hidesNotifications() = + testScope.runTest { + val values by collectValues(hideNotificationsFlow) + + runCurrent() + updateDisplay(width = INITIAL_DISPLAY_WIDTH * 2) + runCurrent() + + assertThat(values).containsExactly(true).inOrder() + } + + @Test + fun displaySwitch_sizeIsTheSame_noChangesToNotifications() = + testScope.runTest { + val values by collectValues(hideNotificationsFlow) + + runCurrent() + updateDisplay(width = INITIAL_DISPLAY_WIDTH) + runCurrent() + + assertThat(values).isEmpty() + } + + @Test + fun displaySwitch_sizeIsTheSameAfterRotation_noChangesToNotifications() = + testScope.runTest { + val values by collectValues(hideNotificationsFlow) + + runCurrent() + updateDisplay( + width = INITIAL_DISPLAY_HEIGHT, + height = INITIAL_DISPLAY_WIDTH, + rotation = ROTATION_90 + ) + runCurrent() + + assertThat(values).isEmpty() + } + + @Test + fun displaySwitch_noAnimations_screenTurnedOn_showsNotificationsBack() = + testScope.runTest { + givenAnimationsEnabled(false) + val values by collectValues(hideNotificationsFlow) + + runCurrent() + updateDisplay(width = INITIAL_DISPLAY_WIDTH * 2) + runCurrent() + powerRepository.setScreenPowerState(SCREEN_ON) + runCurrent() + + assertThat(values).containsExactly(true, false).inOrder() + } + + @Test + fun displaySwitchUnfold_animationsEnabled_screenTurnedOn_doesNotShowNotifications() = + testScope.runTest { + givenAnimationsEnabled(true) + val values by collectValues(hideNotificationsFlow) + + runCurrent() + updateDisplay(width = INITIAL_DISPLAY_WIDTH * 2) + runCurrent() + powerRepository.setScreenPowerState(SCREEN_ON) + runCurrent() + + assertThat(values).containsExactly(true).inOrder() + } + + @Test + fun displaySwitchFold_animationsEnabled_screenTurnedOn_showsNotifications() = + testScope.runTest { + givenAnimationsEnabled(true) + val values by collectValues(hideNotificationsFlow) + + runCurrent() + updateDisplay(width = INITIAL_DISPLAY_WIDTH / 2) + runCurrent() + powerRepository.setScreenPowerState(SCREEN_ON) + runCurrent() + + assertThat(values).containsExactly(true, false).inOrder() + } + + @Test + fun displaySwitch_noAnimations_screenGoesToSleep_showsNotificationsBack() = + testScope.runTest { + givenAnimationsEnabled(false) + val values by collectValues(hideNotificationsFlow) + + runCurrent() + updateDisplay(width = INITIAL_DISPLAY_WIDTH * 2) + runCurrent() + powerRepository.updateWakefulness(STARTING_TO_SLEEP) + runCurrent() + + assertThat(values).containsExactly(true, false).inOrder() + } + + @Test + fun displaySwitch_animationsEnabled_screenGoesToSleep_showsNotificationsBack() = + testScope.runTest { + givenAnimationsEnabled(true) + val values by collectValues(hideNotificationsFlow) + + runCurrent() + updateDisplay(width = INITIAL_DISPLAY_WIDTH * 2) + runCurrent() + powerRepository.updateWakefulness(STARTING_TO_SLEEP) + runCurrent() + + assertThat(values).containsExactly(true, false).inOrder() + } + + @Test + fun displaySwitch_animationsEnabled_unfoldAnimationNotFinished_notificationsHidden() = + testScope.runTest { + givenAnimationsEnabled(true) + val values by collectValues(hideNotificationsFlow) + + runCurrent() + updateDisplay(width = INITIAL_DISPLAY_WIDTH * 2) + runCurrent() + + assertThat(values).containsExactly(true).inOrder() + } + + @Test + fun displaySwitch_animationsEnabled_unfoldAnimationFinishes_showsNotificationsBack() = + testScope.runTest { + givenAnimationsEnabled(true) + val values by collectValues(hideNotificationsFlow) + + runCurrent() + updateDisplay(width = INITIAL_DISPLAY_WIDTH * 2) + runCurrent() + unfoldTransitionProgressProvider.onTransitionFinished() + runCurrent() + + assertThat(values).containsExactly(true, false).inOrder() + } + + @Test + fun displaySwitch_noEvents_afterTimeout_showsNotificationsBack() = + testScope.runTest { + givenAnimationsEnabled(true) + val values by collectValues(hideNotificationsFlow) + + runCurrent() + updateDisplay(width = INITIAL_DISPLAY_WIDTH * 2) + runCurrent() + advanceTimeBy(Duration.ofMillis(10_000).toMillis()) + + assertThat(values).containsExactly(true, false).inOrder() + } + + @Test + fun displaySwitch_noEvents_beforeTimeout_doesNotShowNotifications() = + testScope.runTest { + givenAnimationsEnabled(true) + val values by collectValues(hideNotificationsFlow) + + runCurrent() + updateDisplay(width = INITIAL_DISPLAY_WIDTH * 2) + runCurrent() + advanceTimeBy(Duration.ofMillis(500).toMillis()) + + assertThat(values).containsExactly(true).inOrder() + } + + private val hideNotificationsFlow: Flow<Boolean> + get() = underTest.shouldHideNotifications + + private fun updateDisplay( + width: Int = INITIAL_DISPLAY_WIDTH, + height: Int = INITIAL_DISPLAY_HEIGHT, + @Surface.Rotation rotation: Int = ROTATION_0 + ) { + configuration.windowConfiguration.maxBounds.set(Rect(0, 0, width, height)) + configuration.windowConfiguration.displayRotation = rotation + + configurationController.onConfigurationChanged(configuration) + } + + private fun givenAnimationsEnabled(enabled: Boolean) { + animationStatus.onAnimationStatusChanged(enabled) + } + + private companion object { + private const val INITIAL_DISPLAY_WIDTH = 100 + private const val INITIAL_DISPLAY_HEIGHT = 200 + } +} diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/FakeMobileConnectionsRepository.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/FakeMobileConnectionsRepository.kt index 74b2723e870e..cce038f4ffc1 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/FakeMobileConnectionsRepository.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/FakeMobileConnectionsRepository.kt @@ -94,6 +94,7 @@ class FakeMobileConnectionsRepository( override val defaultMobileIconGroup = _defaultMobileIconGroup override val isAnySimSecure = MutableStateFlow(false) + override fun getIsAnySimSecure(): Boolean = isAnySimSecure.value private var isInEcmMode: Boolean = false diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryTest.kt index ac75d4f189cc..03f300542a6f 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryTest.kt @@ -92,7 +92,6 @@ import org.mockito.MockitoAnnotations // to run the callback and this makes the looper place nicely with TestScope etc. @TestableLooper.RunWithLooper class MobileConnectionsRepositoryTest : SysuiTestCase() { - private lateinit var underTest: MobileConnectionsRepositoryImpl private lateinit var connectionFactory: MobileConnectionRepositoryImpl.Factory private lateinit var carrierMergedFactory: CarrierMergedConnectionRepository.Factory @@ -101,6 +100,7 @@ class MobileConnectionsRepositoryTest : SysuiTestCase() { private lateinit var airplaneModeRepository: FakeAirplaneModeRepository private lateinit var wifiRepository: WifiRepository private lateinit var carrierConfigRepository: CarrierConfigRepository + @Mock private lateinit var connectivityManager: ConnectivityManager @Mock private lateinit var subscriptionManager: SubscriptionManager @Mock private lateinit var telephonyManager: TelephonyManager @@ -115,6 +115,8 @@ class MobileConnectionsRepositoryTest : SysuiTestCase() { private val dispatcher = StandardTestDispatcher() private val testScope = TestScope(dispatcher) + private lateinit var underTest: MobileConnectionsRepositoryImpl + @Before fun setUp() { MockitoAnnotations.initMocks(this) @@ -1179,6 +1181,16 @@ class MobileConnectionsRepositoryTest : SysuiTestCase() { } @Test + fun getIsAnySimSecure_delegatesCallToKeyguardUpdateMonitor() = + testScope.runTest { + assertThat(underTest.getIsAnySimSecure()).isFalse() + + whenever(updateMonitor.isSimPinSecure).thenReturn(true) + + assertThat(underTest.getIsAnySimSecure()).isTrue() + } + + @Test fun noSubscriptionsInEcmMode_notInEcmMode() = testScope.runTest { whenever(telephonyManager.emergencyCallbackMode).thenReturn(false) diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BatteryControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BatteryControllerTest.java index 58d93c98f015..2f79955c4f5b 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BatteryControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BatteryControllerTest.java @@ -294,6 +294,6 @@ public class BatteryControllerTest extends SysuiTestCase { when(mUsbPort.supportsComplianceWarnings()).thenReturn(true); when(mUsbPortStatus.isConnected()).thenReturn(true); when(mUsbPortStatus.getComplianceWarnings()) - .thenReturn(new int[]{UsbPortStatus.COMPLIANCE_WARNING_OTHER}); + .thenReturn(new int[]{UsbPortStatus.COMPLIANCE_WARNING_DEBUG_ACCESSORY}); } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/unfold/domain/interactor/UnfoldTransitionInteractorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/unfold/domain/interactor/UnfoldTransitionInteractorTest.kt new file mode 100644 index 000000000000..6a801e01a4a5 --- /dev/null +++ b/packages/SystemUI/tests/src/com/android/systemui/unfold/domain/interactor/UnfoldTransitionInteractorTest.kt @@ -0,0 +1,91 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ +package com.android.systemui.unfold.domain.interactor + +import android.testing.AndroidTestingRunner +import androidx.test.filters.SmallTest +import com.android.systemui.SysuiTestCase +import com.android.systemui.unfold.TestUnfoldTransitionProvider +import com.android.systemui.unfold.data.repository.UnfoldTransitionRepositoryImpl +import com.google.common.truth.Truth.assertThat +import java.util.Optional +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.async +import kotlinx.coroutines.test.TestScope +import kotlinx.coroutines.test.runCurrent +import kotlinx.coroutines.test.runTest +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.MockitoAnnotations + +@OptIn(ExperimentalCoroutinesApi::class) +@SmallTest +@RunWith(AndroidTestingRunner::class) +open class UnfoldTransitionInteractorTest : SysuiTestCase() { + + private val testScope = TestScope() + + private val unfoldTransitionProgressProvider = TestUnfoldTransitionProvider() + private val unfoldTransitionRepository = + UnfoldTransitionRepositoryImpl(Optional.of(unfoldTransitionProgressProvider)) + + private lateinit var underTest: UnfoldTransitionInteractor + + @Before + fun setUp() { + MockitoAnnotations.initMocks(this) + + underTest = UnfoldTransitionInteractorImpl(unfoldTransitionRepository) + } + + @Test + fun waitForTransitionFinish_noEvents_doesNotComplete() = + testScope.runTest { + val deferred = async { underTest.waitForTransitionFinish() } + + runCurrent() + + assertThat(deferred.isCompleted).isFalse() + deferred.cancel() + } + + @Test + fun waitForTransitionFinish_finishEvent_completes() = + testScope.runTest { + val deferred = async { underTest.waitForTransitionFinish() } + + runCurrent() + unfoldTransitionProgressProvider.onTransitionFinished() + runCurrent() + + assertThat(deferred.isCompleted).isTrue() + deferred.cancel() + } + + @Test + fun waitForTransitionFinish_otherEvent_doesNotComplete() = + testScope.runTest { + val deferred = async { underTest.waitForTransitionFinish() } + + runCurrent() + unfoldTransitionProgressProvider.onTransitionStarted() + runCurrent() + + assertThat(deferred.isCompleted).isFalse() + deferred.cancel() + } +} diff --git a/packages/SystemUI/tests/src/com/android/systemui/user/domain/interactor/UserSwitcherInteractorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/user/domain/interactor/UserSwitcherInteractorTest.kt index 1968d75a7964..017eefe38f2a 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/user/domain/interactor/UserSwitcherInteractorTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/user/domain/interactor/UserSwitcherInteractorTest.kt @@ -38,16 +38,14 @@ import com.android.systemui.SysuiTestCase import com.android.systemui.animation.Expandable import com.android.systemui.common.shared.model.Text import com.android.systemui.coroutines.collectLastValue -import com.android.systemui.flags.FakeFeatureFlags import com.android.systemui.flags.Flags import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository import com.android.systemui.keyguard.domain.interactor.KeyguardInteractorFactory import com.android.systemui.plugins.ActivityStarter import com.android.systemui.qs.user.UserSwitchDialogController import com.android.systemui.res.R +import com.android.systemui.scene.SceneTestUtils import com.android.systemui.statusbar.policy.DeviceProvisionedController -import com.android.systemui.telephony.data.repository.FakeTelephonyRepository -import com.android.systemui.telephony.domain.interactor.TelephonyInteractor import com.android.systemui.user.data.model.UserSwitcherSettingsModel import com.android.systemui.user.data.repository.FakeUserRepository import com.android.systemui.user.data.source.UserRecord @@ -65,9 +63,6 @@ import junit.framework.Assert.assertNotNull import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking -import kotlinx.coroutines.test.StandardTestDispatcher -import kotlinx.coroutines.test.TestDispatcher -import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.runCurrent import kotlinx.coroutines.test.runTest import org.junit.Before @@ -102,18 +97,16 @@ class UserSwitcherInteractorTest : SysuiTestCase() { @Mock private lateinit var resetOrExitSessionReceiver: GuestResetOrExitSessionReceiver @Mock private lateinit var keyguardUpdateMonitor: KeyguardUpdateMonitor - private lateinit var underTest: UserSwitcherInteractor - + private val utils = SceneTestUtils(this) + private val testScope = utils.testScope private lateinit var spyContext: Context - private lateinit var testScope: TestScope private lateinit var userRepository: FakeUserRepository private lateinit var keyguardReply: KeyguardInteractorFactory.WithDependencies private lateinit var keyguardRepository: FakeKeyguardRepository - private lateinit var telephonyRepository: FakeTelephonyRepository - private lateinit var testDispatcher: TestDispatcher - private lateinit var featureFlags: FakeFeatureFlags private lateinit var refreshUsersScheduler: RefreshUsersScheduler + private lateinit var underTest: UserSwitcherInteractor + @Before fun setUp() { MockitoAnnotations.initMocks(this) @@ -127,22 +120,17 @@ class UserSwitcherInteractorTest : SysuiTestCase() { SUPERVISED_USER_CREATION_APP_PACKAGE, ) - featureFlags = - FakeFeatureFlags().apply { - set(Flags.FULL_SCREEN_USER_SWITCHER, false) - set(Flags.FACE_AUTH_REFACTOR, true) - } + utils.featureFlags.set(Flags.FULL_SCREEN_USER_SWITCHER, false) + utils.featureFlags.set(Flags.FACE_AUTH_REFACTOR, true) + spyContext = spy(context) - keyguardReply = KeyguardInteractorFactory.create(featureFlags = featureFlags) + keyguardReply = KeyguardInteractorFactory.create(featureFlags = utils.featureFlags) keyguardRepository = keyguardReply.repository userRepository = FakeUserRepository() - telephonyRepository = FakeTelephonyRepository() - testDispatcher = StandardTestDispatcher() - testScope = TestScope(testDispatcher) refreshUsersScheduler = RefreshUsersScheduler( applicationScope = testScope.backgroundScope, - mainDispatcher = testDispatcher, + mainDispatcher = utils.testDispatcher, repository = userRepository, ) } @@ -372,7 +360,7 @@ class UserSwitcherInteractorTest : SysuiTestCase() { fun actions_deviceUnlocked_fullScreen() { createUserInteractor() testScope.runTest { - featureFlags.set(Flags.FULL_SCREEN_USER_SWITCHER, true) + utils.featureFlags.set(Flags.FULL_SCREEN_USER_SWITCHER, true) val userInfos = createUserInfos(count = 2, includeGuest = false) userRepository.setUserInfos(userInfos) @@ -456,7 +444,7 @@ class UserSwitcherInteractorTest : SysuiTestCase() { fun actions_deviceLockedAddFromLockscreenSet_fullList_fullScreen() { createUserInteractor() testScope.runTest { - featureFlags.set(Flags.FULL_SCREEN_USER_SWITCHER, true) + utils.featureFlags.set(Flags.FULL_SCREEN_USER_SWITCHER, true) val userInfos = createUserInfos(count = 2, includeGuest = false) userRepository.setUserInfos(userInfos) userRepository.setSelectedUserInfo(userInfos[0]) @@ -649,7 +637,7 @@ class UserSwitcherInteractorTest : SysuiTestCase() { val refreshUsersCallCount = userRepository.refreshUsersCallCount - telephonyRepository.setCallState(1) + utils.telephonyRepository.setCallState(1) runCurrent() assertThat(userRepository.refreshUsersCallCount).isEqualTo(refreshUsersCallCount + 1) @@ -801,7 +789,7 @@ class UserSwitcherInteractorTest : SysuiTestCase() { fun userRecordsFullScreen() { createUserInteractor() testScope.runTest { - featureFlags.set(Flags.FULL_SCREEN_USER_SWITCHER, true) + utils.featureFlags.set(Flags.FULL_SCREEN_USER_SWITCHER, true) val userInfos = createUserInfos(count = 3, includeGuest = false) userRepository.setSettings(UserSwitcherSettingsModel(isUserSwitcherEnabled = true)) userRepository.setUserInfos(userInfos) @@ -910,7 +898,7 @@ class UserSwitcherInteractorTest : SysuiTestCase() { fun showUserSwitcher_fullScreenEnabled_launchesFullScreenDialog() { createUserInteractor() testScope.runTest { - featureFlags.set(Flags.FULL_SCREEN_USER_SWITCHER, true) + utils.featureFlags.set(Flags.FULL_SCREEN_USER_SWITCHER, true) val expandable = mock<Expandable>() underTest.showUserSwitcher(expandable) @@ -1125,21 +1113,18 @@ class UserSwitcherInteractorTest : SysuiTestCase() { manager = manager, headlessSystemUserMode = headlessSystemUserMode, applicationScope = testScope.backgroundScope, - telephonyInteractor = - TelephonyInteractor( - repository = telephonyRepository, - ), + telephonyInteractor = utils.telephonyInteractor(), broadcastDispatcher = fakeBroadcastDispatcher, keyguardUpdateMonitor = keyguardUpdateMonitor, - backgroundDispatcher = testDispatcher, + backgroundDispatcher = utils.testDispatcher, activityManager = activityManager, refreshUsersScheduler = refreshUsersScheduler, guestUserInteractor = GuestUserInteractor( applicationContext = spyContext, applicationScope = testScope.backgroundScope, - mainDispatcher = testDispatcher, - backgroundDispatcher = testDispatcher, + mainDispatcher = utils.testDispatcher, + backgroundDispatcher = utils.testDispatcher, manager = manager, repository = userRepository, deviceProvisionedController = deviceProvisionedController, @@ -1150,7 +1135,7 @@ class UserSwitcherInteractorTest : SysuiTestCase() { resetOrExitSessionReceiver = resetOrExitSessionReceiver, ), uiEventLogger = uiEventLogger, - featureFlags = featureFlags, + featureFlags = utils.featureFlags, userRestrictionChecker = mock(), ) } diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/animation/FakeAnimationStatusRepository.kt b/packages/SystemUI/tests/src/com/android/systemui/util/animation/FakeAnimationStatusRepository.kt new file mode 100644 index 000000000000..e72235ca508f --- /dev/null +++ b/packages/SystemUI/tests/src/com/android/systemui/util/animation/FakeAnimationStatusRepository.kt @@ -0,0 +1,32 @@ +/* + * 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.animation + +import com.android.systemui.util.animation.data.repository.AnimationStatusRepository +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.MutableSharedFlow + +class FakeAnimationStatusRepository : AnimationStatusRepository { + + // Replay 1 element as real repository always emits current status as a first element + private val animationsEnabled: MutableSharedFlow<Boolean> = MutableSharedFlow(replay = 1) + + override fun areAnimationsEnabled(): Flow<Boolean> = animationsEnabled + + fun onAnimationStatusChanged(enabled: Boolean) { + animationsEnabled.tryEmit(enabled) + } +} diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/common/ui/data/repository/FakeConfigurationRepository.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/common/ui/data/repository/FakeConfigurationRepository.kt index 8353cf78d983..6b38d6ea315a 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/common/ui/data/repository/FakeConfigurationRepository.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/common/ui/data/repository/FakeConfigurationRepository.kt @@ -16,10 +16,12 @@ package com.android.systemui.common.ui.data.repository +import android.content.res.Configuration import com.android.systemui.dagger.SysUISingleton import dagger.Binds import dagger.Module import javax.inject.Inject +import kotlinx.coroutines.channels.BufferOverflow import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.MutableStateFlow @@ -31,16 +33,32 @@ class FakeConfigurationRepository @Inject constructor() : ConfigurationRepositor private val _onAnyConfigurationChange = MutableSharedFlow<Unit>() override val onAnyConfigurationChange: Flow<Unit> = _onAnyConfigurationChange.asSharedFlow() + private val _onConfigurationChange = + MutableSharedFlow<Unit>(replay = 1, onBufferOverflow = BufferOverflow.DROP_OLDEST) + override val onConfigurationChange: Flow<Unit> = _onConfigurationChange.asSharedFlow() + + private val _configurationChangeValues = MutableSharedFlow<Configuration>() + override val configurationValues: Flow<Configuration> = + _configurationChangeValues.asSharedFlow() + private val _scaleForResolution = MutableStateFlow(1f) override val scaleForResolution: Flow<Float> = _scaleForResolution.asStateFlow() private val pixelSizes = mutableMapOf<Int, MutableStateFlow<Int>>() - private val colors = mutableMapOf<Int, MutableStateFlow<Int>>() fun onAnyConfigurationChange() { _onAnyConfigurationChange.tryEmit(Unit) } + fun onConfigurationChange() { + _onConfigurationChange.tryEmit(Unit) + } + + fun onConfigurationChange(configChange: Configuration) { + _configurationChangeValues.tryEmit(configChange) + onAnyConfigurationChange() + } + fun setScaleForResolution(scale: Float) { _scaleForResolution.value = scale } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/communal/data/repository/FakeCommunalMediaRepository.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/communal/data/repository/FakeCommunalMediaRepository.kt new file mode 100644 index 000000000000..3ab1b6c11e02 --- /dev/null +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/communal/data/repository/FakeCommunalMediaRepository.kt @@ -0,0 +1,23 @@ +/* + * 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.communal.data.repository + +import kotlinx.coroutines.flow.MutableStateFlow + +class FakeCommunalMediaRepository( + override val mediaPlaying: MutableStateFlow<Boolean> = MutableStateFlow(false) +) : CommunalMediaRepository diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/communal/data/repository/FakeCommunalRepository.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/communal/data/repository/FakeCommunalRepository.kt index 799bb403a8ff..2cb17b5badc4 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/communal/data/repository/FakeCommunalRepository.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/communal/data/repository/FakeCommunalRepository.kt @@ -1,6 +1,7 @@ package com.android.systemui.communal.data.repository import com.android.systemui.communal.shared.model.CommunalSceneKey +import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow /** Fake implementation of [CommunalRepository]. */ @@ -16,4 +17,11 @@ class FakeCommunalRepository( fun setIsCommunalEnabled(value: Boolean) { isCommunalEnabled = value } + + private val _isCommunalHubShowing: MutableStateFlow<Boolean> = MutableStateFlow(false) + override val isCommunalHubShowing: Flow<Boolean> = _isCommunalHubShowing + + fun setIsCommunalHubShowing(isCommunalHubShowing: Boolean) { + _isCommunalHubShowing.value = isCommunalHubShowing + } } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/communal/domain/interactor/CommunalInteractorFactory.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/communal/domain/interactor/CommunalInteractorFactory.kt new file mode 100644 index 000000000000..0c821eab65e0 --- /dev/null +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/communal/domain/interactor/CommunalInteractorFactory.kt @@ -0,0 +1,83 @@ +/* + * 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.communal.domain.interactor + +import android.appwidget.AppWidgetHost +import com.android.systemui.communal.data.repository.FakeCommunalMediaRepository +import com.android.systemui.communal.data.repository.FakeCommunalRepository +import com.android.systemui.communal.data.repository.FakeCommunalTutorialRepository +import com.android.systemui.communal.data.repository.FakeCommunalWidgetRepository +import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository +import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor +import com.android.systemui.smartspace.data.repository.FakeSmartspaceRepository +import com.android.systemui.util.mockito.mock +import kotlinx.coroutines.test.TestScope + +object CommunalInteractorFactory { + + @JvmOverloads + @JvmStatic + fun create( + testScope: TestScope = TestScope(), + communalRepository: FakeCommunalRepository = FakeCommunalRepository(), + widgetRepository: FakeCommunalWidgetRepository = FakeCommunalWidgetRepository(), + mediaRepository: FakeCommunalMediaRepository = FakeCommunalMediaRepository(), + smartspaceRepository: FakeSmartspaceRepository = FakeSmartspaceRepository(), + tutorialRepository: FakeCommunalTutorialRepository = FakeCommunalTutorialRepository(), + appWidgetHost: AppWidgetHost = mock(), + ): WithDependencies { + val withDeps = + CommunalTutorialInteractorFactory.create( + testScope = testScope, + communalTutorialRepository = tutorialRepository, + communalRepository = communalRepository, + ) + return WithDependencies( + communalRepository, + widgetRepository, + mediaRepository, + smartspaceRepository, + tutorialRepository, + withDeps.keyguardRepository, + withDeps.keyguardInteractor, + withDeps.communalTutorialInteractor, + appWidgetHost, + CommunalInteractor( + communalRepository, + widgetRepository, + mediaRepository, + smartspaceRepository, + withDeps.communalTutorialInteractor, + appWidgetHost, + ), + ) + } + + data class WithDependencies( + val communalRepository: FakeCommunalRepository, + val widgetRepository: FakeCommunalWidgetRepository, + val mediaRepository: FakeCommunalMediaRepository, + val smartspaceRepository: FakeSmartspaceRepository, + val tutorialRepository: FakeCommunalTutorialRepository, + val keyguardRepository: FakeKeyguardRepository, + val keyguardInteractor: KeyguardInteractor, + val tutorialInteractor: CommunalTutorialInteractor, + val appWidgetHost: AppWidgetHost, + val communalInteractor: CommunalInteractor, + ) +} diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/communal/domain/interactor/CommunalTutorialInteractorFactory.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/communal/domain/interactor/CommunalTutorialInteractorFactory.kt new file mode 100644 index 000000000000..e5cadabfc1c7 --- /dev/null +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/communal/domain/interactor/CommunalTutorialInteractorFactory.kt @@ -0,0 +1,67 @@ +/* + * 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.communal.domain.interactor + +import com.android.systemui.communal.data.repository.FakeCommunalRepository +import com.android.systemui.communal.data.repository.FakeCommunalTutorialRepository +import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository +import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor +import com.android.systemui.keyguard.domain.interactor.KeyguardInteractorFactory +import kotlinx.coroutines.test.TestScope + +object CommunalTutorialInteractorFactory { + + @JvmOverloads + @JvmStatic + fun create( + testScope: TestScope, + communalTutorialRepository: FakeCommunalTutorialRepository = + FakeCommunalTutorialRepository(), + communalRepository: FakeCommunalRepository = + FakeCommunalRepository(isCommunalEnabled = true), + keyguardRepository: FakeKeyguardRepository = FakeKeyguardRepository(), + keyguardInteractor: KeyguardInteractor = + KeyguardInteractorFactory.create( + repository = keyguardRepository, + ) + .keyguardInteractor + ): WithDependencies { + return WithDependencies( + testScope = testScope, + communalRepository = communalRepository, + communalTutorialRepository = communalTutorialRepository, + keyguardRepository = keyguardRepository, + keyguardInteractor = keyguardInteractor, + communalTutorialInteractor = + CommunalTutorialInteractor( + testScope.backgroundScope, + communalTutorialRepository, + keyguardInteractor, + communalRepository, + ) + ) + } + + data class WithDependencies( + val testScope: TestScope, + val communalRepository: FakeCommunalRepository, + val communalTutorialRepository: FakeCommunalTutorialRepository, + val keyguardRepository: FakeKeyguardRepository, + val keyguardInteractor: KeyguardInteractor, + val communalTutorialInteractor: CommunalTutorialInteractor, + ) +} diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/power/data/repository/FakePowerRepository.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/power/data/repository/FakePowerRepository.kt index 957fbbd8680f..ace650020a9d 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/power/data/repository/FakePowerRepository.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/power/data/repository/FakePowerRepository.kt @@ -18,11 +18,11 @@ package com.android.systemui.power.data.repository import android.os.PowerManager +import com.android.systemui.dagger.SysUISingleton import com.android.systemui.power.shared.model.ScreenPowerState import com.android.systemui.power.shared.model.WakeSleepReason import com.android.systemui.power.shared.model.WakefulnessModel import com.android.systemui.power.shared.model.WakefulnessState -import com.android.systemui.dagger.SysUISingleton import dagger.Binds import dagger.Module import javax.inject.Inject @@ -55,15 +55,15 @@ class FakePowerRepository @Inject constructor() : PowerRepository { lastWakeReason = wakeReason } - override fun userTouch() { + override fun userTouch(noChangeLights: Boolean) { userTouchRegistered = true } override fun updateWakefulness( - rawState: WakefulnessState, - lastWakeReason: WakeSleepReason, - lastSleepReason: WakeSleepReason, - powerButtonLaunchGestureTriggered: Boolean + rawState: WakefulnessState, + lastWakeReason: WakeSleepReason, + lastSleepReason: WakeSleepReason, + powerButtonLaunchGestureTriggered: Boolean ) { _wakefulness.value = WakefulnessModel( diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/scene/SceneTestUtils.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/scene/SceneTestUtils.kt index f97d6b3d262f..36ec18fc4de4 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/scene/SceneTestUtils.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/scene/SceneTestUtils.kt @@ -16,10 +16,15 @@ package com.android.systemui.scene +import android.app.ActivityTaskManager import android.content.Context +import android.content.Intent import android.content.pm.UserInfo import android.graphics.Bitmap import android.graphics.drawable.BitmapDrawable +import android.telecom.TelecomManager +import com.android.internal.logging.MetricsLogger +import com.android.internal.util.EmergencyAffordanceManager import com.android.systemui.SysuiTestCase import com.android.systemui.authentication.data.model.AuthenticationMethodModel as DataLayerAuthenticationMethodModel import com.android.systemui.authentication.data.repository.AuthenticationRepository @@ -27,8 +32,11 @@ import com.android.systemui.authentication.data.repository.FakeAuthenticationRep import com.android.systemui.authentication.domain.interactor.AuthenticationInteractor import com.android.systemui.authentication.domain.model.AuthenticationMethodModel as DomainLayerAuthenticationMethodModel import com.android.systemui.bouncer.data.repository.BouncerRepository +import com.android.systemui.bouncer.data.repository.EmergencyServicesRepository import com.android.systemui.bouncer.data.repository.FakeKeyguardBouncerRepository +import com.android.systemui.bouncer.domain.interactor.BouncerActionButtonInteractor import com.android.systemui.bouncer.domain.interactor.BouncerInteractor +import com.android.systemui.bouncer.domain.interactor.EmergencyDialerIntentFactory import com.android.systemui.bouncer.ui.viewmodel.BouncerViewModel import com.android.systemui.classifier.FalsingCollector import com.android.systemui.classifier.FalsingCollectorFake @@ -36,11 +44,12 @@ import com.android.systemui.classifier.domain.interactor.FalsingInteractor import com.android.systemui.common.shared.model.Text import com.android.systemui.common.ui.data.repository.FakeConfigurationRepository import com.android.systemui.communal.data.repository.FakeCommunalRepository -import com.android.systemui.communal.data.repository.FakeCommunalWidgetRepository import com.android.systemui.communal.domain.interactor.CommunalInteractor +import com.android.systemui.communal.domain.interactor.CommunalInteractorFactory import com.android.systemui.deviceentry.data.repository.DeviceEntryRepository import com.android.systemui.deviceentry.data.repository.FakeDeviceEntryRepository import com.android.systemui.deviceentry.domain.interactor.DeviceEntryInteractor +import com.android.systemui.doze.DozeLogger import com.android.systemui.flags.FakeFeatureFlagsClassic import com.android.systemui.flags.Flags import com.android.systemui.keyguard.data.repository.DeviceEntryFaceAuthRepository @@ -62,10 +71,13 @@ import com.android.systemui.scene.shared.flag.FakeSceneContainerFlags import com.android.systemui.scene.shared.model.SceneContainerConfig import com.android.systemui.scene.shared.model.SceneKey import com.android.systemui.shade.data.repository.FakeShadeRepository +import com.android.systemui.statusbar.pipeline.mobile.data.repository.MobileConnectionsRepository import com.android.systemui.telephony.data.repository.FakeTelephonyRepository +import com.android.systemui.telephony.data.repository.TelephonyRepository import com.android.systemui.telephony.domain.interactor.TelephonyInteractor import com.android.systemui.user.data.repository.FakeUserRepository import com.android.systemui.user.data.repository.UserRepository +import com.android.systemui.user.domain.interactor.SelectedUserInteractor import com.android.systemui.user.ui.viewmodel.UserActionViewModel import com.android.systemui.user.ui.viewmodel.UserViewModel import com.android.systemui.util.mockito.mock @@ -102,15 +114,23 @@ class SceneTestUtils( currentTime = { testScope.currentTime }, ) } + val configurationRepository: FakeConfigurationRepository by lazy { + FakeConfigurationRepository() + } + private val emergencyServicesRepository: EmergencyServicesRepository by lazy { + EmergencyServicesRepository( + applicationScope = applicationScope(), + resources = context.resources, + configurationRepository = configurationRepository, + ) + } + val telephonyRepository: FakeTelephonyRepository by lazy { FakeTelephonyRepository() } val communalRepository: FakeCommunalRepository by lazy { FakeCommunalRepository() } - private val communalWidgetRepository: FakeCommunalWidgetRepository by lazy { - FakeCommunalWidgetRepository() - } val keyguardRepository: FakeKeyguardRepository by lazy { FakeKeyguardRepository() } val powerRepository: FakePowerRepository by lazy { FakePowerRepository() } - private val userRepository: UserRepository by lazy { + val userRepository: UserRepository by lazy { FakeUserRepository().apply { val users = listOf(UserInfo(/* id= */ 0, "name", /* flags= */ 0)) setUserInfos(users) @@ -186,7 +206,7 @@ class SceneTestUtils( featureFlags = featureFlags, sceneContainerFlags = sceneContainerFlags, bouncerRepository = FakeKeyguardBouncerRepository(), - configurationRepository = FakeConfigurationRepository(), + configurationRepository = configurationRepository, shadeRepository = FakeShadeRepository(), sceneInteractorProvider = { sceneInteractor() }, powerInteractor = PowerInteractorFactory.create().powerInteractor, @@ -194,10 +214,10 @@ class SceneTestUtils( } fun communalInteractor(): CommunalInteractor { - return CommunalInteractor( - communalRepository = communalRepository, - widgetRepository = communalWidgetRepository, - ) + return CommunalInteractorFactory.create( + communalRepository = communalRepository, + ) + .communalInteractor } fun bouncerInteractor( @@ -220,6 +240,7 @@ class SceneTestUtils( fun bouncerViewModel( bouncerInteractor: BouncerInteractor, authenticationInteractor: AuthenticationInteractor, + actionButtonInteractor: BouncerActionButtonInteractor, users: List<UserViewModel> = createUsers(), ): BouncerViewModel { return BouncerViewModel( @@ -232,13 +253,16 @@ class SceneTestUtils( selectedUser = flowOf(users.first { it.isSelectionMarkerVisible }), users = flowOf(users), userSwitcherMenu = flowOf(createMenuActions()), - telephonyInteractor = - TelephonyInteractor( - repository = FakeTelephonyRepository(), - ), + actionButtonInteractor = actionButtonInteractor, ) } + fun telephonyInteractor( + repository: TelephonyRepository = telephonyRepository, + ): TelephonyInteractor { + return TelephonyInteractor(repository = repository) + } + fun falsingInteractor(collector: FalsingCollector = falsingCollector()): FalsingInteractor { return falsingInteractor ?: FalsingInteractor(collector).also { falsingInteractor = it } } @@ -288,6 +312,40 @@ class SceneTestUtils( } } + fun selectedUserInteractor(): SelectedUserInteractor { + return SelectedUserInteractor(userRepository, featureFlags) + } + + fun bouncerActionButtonInteractor( + mobileConnectionsRepository: MobileConnectionsRepository = mock(), + activityTaskManager: ActivityTaskManager = mock(), + telecomManager: TelecomManager? = null, + emergencyAffordanceManager: EmergencyAffordanceManager = + EmergencyAffordanceManager(context), + emergencyDialerIntentFactory: EmergencyDialerIntentFactory = + object : EmergencyDialerIntentFactory { + override fun invoke(): Intent = Intent() + }, + metricsLogger: MetricsLogger = mock(), + dozeLogger: DozeLogger = mock(), + ): BouncerActionButtonInteractor { + return BouncerActionButtonInteractor( + applicationContext = context, + backgroundDispatcher = testDispatcher, + repository = emergencyServicesRepository, + mobileConnectionsRepository = mobileConnectionsRepository, + telephonyInteractor = telephonyInteractor(), + authenticationInteractor = authenticationInteractor(), + selectedUserInteractor = selectedUserInteractor(), + activityTaskManager = activityTaskManager, + telecomManager = telecomManager, + emergencyAffordanceManager = emergencyAffordanceManager, + emergencyDialerIntentFactory = emergencyDialerIntentFactory, + metricsLogger = metricsLogger, + dozeLogger = dozeLogger, + ) + } + companion object { fun DomainLayerAuthenticationMethodModel.toDataLayer(): DataLayerAuthenticationMethodModel { return when (this) { diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/smartspace/data/repository/FakeSmartspaceRepository.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/smartspace/data/repository/FakeSmartspaceRepository.kt new file mode 100644 index 000000000000..c8013ef96fa7 --- /dev/null +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/smartspace/data/repository/FakeSmartspaceRepository.kt @@ -0,0 +1,21 @@ +package com.android.systemui.smartspace.data.repository + +import android.app.smartspace.SmartspaceTarget +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.MutableStateFlow + +class FakeSmartspaceRepository( + smartspaceRemoteViewsEnabled: Boolean = true, +) : SmartspaceRepository { + + override val isSmartspaceRemoteViewsEnabled = smartspaceRemoteViewsEnabled + + private val _lockscreenSmartspaceTargets: MutableStateFlow<List<SmartspaceTarget>> = + MutableStateFlow(emptyList()) + override val lockscreenSmartspaceTargets: Flow<List<SmartspaceTarget>> = + _lockscreenSmartspaceTargets + + fun setLockscreenSmartspaceTargets(targets: List<SmartspaceTarget>) { + _lockscreenSmartspaceTargets.value = targets + } +} diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/telephony/data/repository/FakeTelephonyRepository.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/telephony/data/repository/FakeTelephonyRepository.kt index 992ac62fe3c4..5cde3868199b 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/telephony/data/repository/FakeTelephonyRepository.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/telephony/data/repository/FakeTelephonyRepository.kt @@ -23,6 +23,7 @@ import dagger.Module import javax.inject.Inject import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow @SysUISingleton @@ -31,6 +32,9 @@ class FakeTelephonyRepository @Inject constructor() : TelephonyRepository { private val _callState = MutableStateFlow(0) override val callState: Flow<Int> = _callState.asStateFlow() + private val _isInCall = MutableStateFlow(false) + override val isInCall: StateFlow<Boolean> = _isInCall.asStateFlow() + override var hasTelephonyRadio: Boolean = true private set @@ -38,8 +42,12 @@ class FakeTelephonyRepository @Inject constructor() : TelephonyRepository { _callState.value = value } - fun setHasRadio(hasRadio: Boolean) { - this.hasTelephonyRadio = hasRadio + fun setIsInCall(isInCall: Boolean) { + _isInCall.value = isInCall + } + + fun setHasTelephonyRadio(hasTelephonyRadio: Boolean) { + this.hasTelephonyRadio = hasTelephonyRadio } } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/util/reference/FakeWeakReferenceFactory.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/util/reference/FakeWeakReferenceFactory.kt new file mode 100644 index 000000000000..f0a8fd0abf3d --- /dev/null +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/util/reference/FakeWeakReferenceFactory.kt @@ -0,0 +1,37 @@ +/* + * 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.reference + +import java.lang.ref.WeakReference + +class FakeWeakReferenceFactory : WeakReferenceFactory { + private val managedReferents = mutableListOf<WeakReference<*>>() + + override fun <T> create(referent: T): WeakReference<T> { + val weakRef = WeakReference(referent) + managedReferents.add(weakRef) + return weakRef + } + + /** + * Clears any [WeakReference] objects pointing to this object. If argument is null, clears all + * references. + */ + fun <T> clear(referent: T) { + managedReferents.filter { it.get() == referent }.forEach { it.clear() } + } +} diff --git a/proto/src/criticalevents/critical_event_log.proto b/proto/src/criticalevents/critical_event_log.proto index 25814eca9a85..9cda2672eab0 100644 --- a/proto/src/criticalevents/critical_event_log.proto +++ b/proto/src/criticalevents/critical_event_log.proto @@ -59,8 +59,11 @@ message CriticalEventProto { AppNotResponding anr = 4; JavaCrash java_crash = 5; NativeCrash native_crash = 6; + SystemServerStarted system_server_started = 7; } + message SystemServerStarted {} + message Watchdog { // The watchdog subject. // Required. diff --git a/ravenwood/Android.bp b/ravenwood/Android.bp index d0e442e7058d..ec12d2171a93 100644 --- a/ravenwood/Android.bp +++ b/ravenwood/Android.bp @@ -16,18 +16,20 @@ filegroup { visibility: ["//visibility:public"], } -// File that contains the standard command line arguments to hoststubgen. -filegroup { - name: "ravenwood-standard-options", - srcs: [ - "ravenwood-standard-options.txt", - ], +java_library { + name: "ravenwood-annotations-lib", + srcs: [":ravenwood-annotations"], + sdk_version: "core_current", + host_supported: true, visibility: ["//visibility:public"], } java_library { - name: "ravenwood-annotations-lib", - srcs: [":ravenwood-annotations"], + name: "ravenwood-junit", + srcs: ["junit-src/**/*.java"], + libs: [ + "junit", + ], sdk_version: "core_current", host_supported: true, visibility: ["//visibility:public"], diff --git a/ravenwood/TEST_MAPPING b/ravenwood/TEST_MAPPING new file mode 100644 index 000000000000..72eb665bee65 --- /dev/null +++ b/ravenwood/TEST_MAPPING @@ -0,0 +1,7 @@ +{ + "presubmit": [ + // Let's only run this one as a smoke test. + // TODO: Enable it once the infra knows how to run it. + // { "name": "CtsUtilTestCasesRavenwood" } + ] +} diff --git a/framework-minus-apex-ravenwood-policies.txt b/ravenwood/framework-minus-apex-ravenwood-policies.txt index 8e76fd22f99a..48c0a2de8f86 100644 --- a/framework-minus-apex-ravenwood-policies.txt +++ b/ravenwood/framework-minus-apex-ravenwood-policies.txt @@ -71,8 +71,9 @@ class android.util.proto.WireTypeMismatchException stubclass # Misc class android.util.Dumpable stubclass class android.util.DebugUtils stubclass -class android.util.UtilConfig stubclass +class android.util.MathUtils stubclass class android.util.Patterns stubclass +class android.util.UtilConfig stubclass # Internals class com.android.internal.util.ArrayUtils stubclass @@ -89,3 +90,26 @@ class com.android.internal.util.GrowingArrayUtils stubclass class com.android.internal.util.LineBreakBufferedWriter stubclass class com.android.internal.util.Preconditions stubclass class com.android.internal.util.StringPool stubclass + +# Parcel +class android.os.Parcel stubclass + method writeException (Ljava/lang/Exception;)V @writeException$ravenwood + method writeNoException ()V @writeNoException$ravenwood +class android.os.Parcel !com.android.hoststubgen.nativesubstitution.Parcel_host + +class android.os.Parcelable stubclass +class android.os.ParcelFormatException stubclass +class android.os.BadParcelableException stubclass +class android.os.BadTypeParcelableException stubclass + +# Binder: just enough to construct, no further functionality +class android.os.Binder stub + method <init> ()V stub + method <init> (Ljava/lang/String;)V stub + method isDirectlyHandlingTransaction ()Z stub + method isDirectlyHandlingTransactionNative ()Z @isDirectlyHandlingTransactionNative$ravenwood + method getNativeBBinderHolder ()J @getNativeBBinderHolder$ravenwood + +# Containers +class android.os.BaseBundle stubclass +class android.os.Bundle stubclass diff --git a/ravenwood/junit-src/android/platform/test/annotations/IgnoreUnderRavenwood.java b/ravenwood/junit-src/android/platform/test/annotations/IgnoreUnderRavenwood.java new file mode 100644 index 000000000000..0aac084dd4ce --- /dev/null +++ b/ravenwood/junit-src/android/platform/test/annotations/IgnoreUnderRavenwood.java @@ -0,0 +1,33 @@ +/* + * 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.platform.test.annotations; + +import java.lang.annotation.ElementType; +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(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface IgnoreUnderRavenwood { +} diff --git a/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodRule.java b/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodRule.java new file mode 100644 index 000000000000..a6b3f668efa6 --- /dev/null +++ b/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodRule.java @@ -0,0 +1,50 @@ +/* + * 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.platform.test.ravenwood; + +import android.platform.test.annotations.IgnoreUnderRavenwood; + +import org.junit.Assume; +import org.junit.rules.TestRule; +import org.junit.runner.Description; +import org.junit.runners.model.Statement; + +/** + * THIS RULE IS EXPERIMENTAL. REACH OUT TO g/ravenwood BEFORE USING IT, OR YOU HAVE ANY + * QUESTIONS ABOUT IT. + * + * @hide + */ +public class RavenwoodRule implements TestRule { + public boolean isUnderRavenwood() { + // TODO: give ourselves a better environment signal + return System.getProperty("java.class.path").contains("ravenwood"); + } + + @Override + public Statement apply(Statement base, Description description) { + return new Statement() { + @Override + public void evaluate() throws Throwable { + if (description.getAnnotation(IgnoreUnderRavenwood.class) != null) { + Assume.assumeFalse(isUnderRavenwood()); + } + base.evaluate(); + } + }; + } +} diff --git a/ravenwood/ravenwood-annotation-allowed-classes.txt b/ravenwood/ravenwood-annotation-allowed-classes.txt new file mode 100644 index 000000000000..0811f90a504c --- /dev/null +++ b/ravenwood/ravenwood-annotation-allowed-classes.txt @@ -0,0 +1,2 @@ +# Only classes listed here can use the Ravenwood annotations. + diff --git a/services/autofill/bugfixes.aconfig b/services/autofill/bugfixes.aconfig index b37bbd6ea27f..ab678d93c665 100644 --- a/services/autofill/bugfixes.aconfig +++ b/services/autofill/bugfixes.aconfig @@ -20,3 +20,10 @@ flag { description: "Mitigation for relayout issue" bug: "294330426" } + +flag { + name: "ignore_view_state_reset_to_empty" + namespace: "autofill" + description: "Mitigation for view state reset to empty causing no save dialog to show issue" + bug: "297976948" +} diff --git a/services/core/Android.bp b/services/core/Android.bp index a14f3fee5303..22693ab328c8 100644 --- a/services/core/Android.bp +++ b/services/core/Android.bp @@ -103,7 +103,7 @@ java_library_static { "android.hardware.power-java_static", ], srcs: [ - ":android.hardware.biometrics.face-V3-java-source", + ":android.hardware.biometrics.face-V4-java-source", ":android.hardware.tv.hdmi.connection-V1-java-source", ":android.hardware.tv.hdmi.earc-V1-java-source", ":statslog-art-java-gen", @@ -199,6 +199,7 @@ java_library_static { "biometrics_flags_lib", "am_flags_lib", "com_android_wm_shell_flags_lib", + "android.app.flags-aconfig-java" ], javac_shard_size: 50, javacflags: [ diff --git a/services/core/java/android/content/pm/PackageManagerInternal.java b/services/core/java/android/content/pm/PackageManagerInternal.java index 4f322203192f..065a447a7cd1 100644 --- a/services/core/java/android/content/pm/PackageManagerInternal.java +++ b/services/core/java/android/content/pm/PackageManagerInternal.java @@ -1421,7 +1421,7 @@ public abstract class PackageManagerInternal { @UserIdInt int userId); /** - * Sends the PACKAGE_RESTARTED broadcast on the package manager handler thread. + * Sends the PACKAGE_RESTARTED broadcast. */ public abstract void sendPackageRestartedBroadcast(@NonNull String packageName, int uid, @Intent.Flags int flags); @@ -1431,4 +1431,10 @@ public abstract class PackageManagerInternal { */ public abstract ParceledListSlice<PackageInstaller.SessionInfo> getHistoricalSessions( int userId); + + /** + * Sends the ACTION_PACKAGE_DATA_CLEARED broadcast. + */ + public abstract void sendPackageDataClearedBroadcast(@NonNull String packageName, + int uid, int userId, boolean isRestore, boolean isInstantApp); } diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java index 02235096ac15..15fc2dc15d02 100644 --- a/services/core/java/com/android/server/StorageManagerService.java +++ b/services/core/java/com/android/server/StorageManagerService.java @@ -61,7 +61,6 @@ import android.app.KeyguardManager; import android.app.PendingIntent; import android.app.admin.SecurityLog; import android.app.usage.StorageStatsManager; -import android.content.AttributionSource; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; @@ -2139,13 +2138,8 @@ class StorageManagerService extends IStorageManager.Stub | MATCH_DIRECT_BOOT_UNAWARE | MATCH_UNINSTALLED_PACKAGES | MATCH_ANY_USER, userId, Process.myUid())) { try { - final AttributionSource attributionSource = new AttributionSource.Builder(ai.uid) - .setPackageName(ai.packageName) - .build(); - boolean hasLegacy = - mIAppOpsService.checkOperationWithState( - OP_LEGACY_STORAGE, attributionSource.asState()) - == MODE_ALLOWED; + boolean hasLegacy = mIAppOpsService.checkOperation(OP_LEGACY_STORAGE, ai.uid, + ai.packageName) == MODE_ALLOWED; updateLegacyStorageApps(ai.packageName, ai.uid, hasLegacy); } catch (RemoteException e) { Slog.e(TAG, "Failed to check legacy op for package " + ai.packageName, e); @@ -4546,11 +4540,8 @@ class StorageManagerService extends IStorageManager.Stub // sharing the uid and allow same level of storage access for all packages even if // one of the packages has the appop granted. for (String uidPackageName : packagesForUid) { - final AttributionSource attributionSource = - new AttributionSource.Builder(uid).setPackageName(uidPackageName).build(); - if (mIAppOpsService.checkOperationWithState( - OP_REQUEST_INSTALL_PACKAGES, attributionSource.asState()) - == MODE_ALLOWED) { + if (mIAppOpsService.checkOperation( + OP_REQUEST_INSTALL_PACKAGES, uid, uidPackageName) == MODE_ALLOWED) { hasInstallOp = true; break; } @@ -4847,11 +4838,8 @@ class StorageManagerService extends IStorageManager.Stub @Override public boolean hasExternalStorageAccess(int uid, String packageName) { try { - final AttributionSource attributionSource = - new AttributionSource.Builder(uid).setPackageName(packageName).build(); - final int opMode = - mIAppOpsService.checkOperationWithState( - OP_MANAGE_EXTERNAL_STORAGE, attributionSource.asState()); + final int opMode = mIAppOpsService.checkOperation( + OP_MANAGE_EXTERNAL_STORAGE, uid, packageName); if (opMode == AppOpsManager.MODE_DEFAULT) { return mIPackageManager.checkUidPermission( MANAGE_EXTERNAL_STORAGE, uid) == PERMISSION_GRANTED; diff --git a/services/core/java/com/android/server/TEST_MAPPING b/services/core/java/com/android/server/TEST_MAPPING index afc0dd188c3c..cd9c53bb92b9 100644 --- a/services/core/java/com/android/server/TEST_MAPPING +++ b/services/core/java/com/android/server/TEST_MAPPING @@ -83,6 +83,9 @@ } ], "file_patterns": ["VpnManagerService\\.java"] + }, + { + "name": "FrameworksNetTests" } ], "presubmit-large": [ @@ -124,9 +127,6 @@ }, { "name": "CtsSuspendAppsTestCases" - }, - { - "name": "FrameworksNetTests" } ] } diff --git a/services/core/java/com/android/server/am/ActiveServices.java b/services/core/java/com/android/server/am/ActiveServices.java index 4bdb4da97144..5f1a7e7e8123 100644 --- a/services/core/java/com/android/server/am/ActiveServices.java +++ b/services/core/java/com/android/server/am/ActiveServices.java @@ -167,7 +167,6 @@ import android.compat.annotation.ChangeId; import android.compat.annotation.EnabledAfter; import android.compat.annotation.EnabledSince; import android.compat.annotation.Overridable; -import android.content.AttributionSource; import android.content.ComponentName; import android.content.ComponentName.WithComponentName; import android.content.Context; @@ -1101,12 +1100,8 @@ public final class ActiveServices { SystemClock.uptimeMillis()); // Use current time, not lastActivity. } } - final AttributionSource attributionSource = new AttributionSource.Builder(r.appInfo.uid) - .setPackageName(r.packageName) - .build(); - mAm.mAppOpsService.startOperationWithState(AppOpsManager.getToken(mAm.mAppOpsService), - AppOpsManager.OP_START_FOREGROUND, - attributionSource.asState(), + mAm.mAppOpsService.startOperation(AppOpsManager.getToken(mAm.mAppOpsService), + AppOpsManager.OP_START_FOREGROUND, r.appInfo.uid, r.packageName, null, true, false, null, false, AppOpsManager.ATTRIBUTION_FLAGS_NONE, AppOpsManager.ATTRIBUTION_CHAIN_ID_NONE); } @@ -2456,15 +2451,10 @@ public final class ActiveServices { stopProcStatsOp = false; } - final AttributionSource attributionSource = new AttributionSource - .Builder(r.appInfo.uid) - .setPackageName(r.packageName) - .build(); - mAm.mAppOpsService.startOperationWithState( + mAm.mAppOpsService.startOperation( AppOpsManager.getToken(mAm.mAppOpsService), - AppOpsManager.OP_START_FOREGROUND, attributionSource.asState(), - true, false, "", false, - AppOpsManager.ATTRIBUTION_FLAGS_NONE, + AppOpsManager.OP_START_FOREGROUND, r.appInfo.uid, r.packageName, + null, true, false, "", false, AppOpsManager.ATTRIBUTION_FLAGS_NONE, AppOpsManager.ATTRIBUTION_CHAIN_ID_NONE); registerAppOpCallbackLocked(r); mAm.updateForegroundServiceUsageStats(r.name, r.userId, true); @@ -2524,13 +2514,10 @@ public final class ActiveServices { if (alreadyStartedOp) { // If we had previously done a start op for direct foreground start, // we have cleared the flag so can now drop it. - final AttributionSource attributionSource = new AttributionSource - .Builder(r.appInfo.uid) - .setPackageName(r.packageName) - .build(); - mAm.mAppOpsService.finishOperationWithState( + mAm.mAppOpsService.finishOperation( AppOpsManager.getToken(mAm.mAppOpsService), - AppOpsManager.OP_START_FOREGROUND, attributionSource.asState()); + AppOpsManager.OP_START_FOREGROUND, r.appInfo.uid, r.packageName, + null); } } } else { @@ -2573,13 +2560,9 @@ public final class ActiveServices { SystemClock.uptimeMillis()); } } - final AttributionSource attributionSource = - new AttributionSource.Builder(r.appInfo.uid) - .setPackageName(r.packageName) - .build(); - mAm.mAppOpsService.finishOperationWithState( + mAm.mAppOpsService.finishOperation( AppOpsManager.getToken(mAm.mAppOpsService), - AppOpsManager.OP_START_FOREGROUND, attributionSource.asState()); + AppOpsManager.OP_START_FOREGROUND, r.appInfo.uid, r.packageName, null); unregisterAppOpCallbackLocked(r); logFGSStateChangeLocked(r, FOREGROUND_SERVICE_STATE_CHANGED__STATE__EXIT, @@ -5721,12 +5704,8 @@ public final class ActiveServices { SystemClock.uptimeMillis()); } } - final AttributionSource attributionSource = new AttributionSource - .Builder(r.appInfo.uid) - .setPackageName(r.packageName) - .build(); - mAm.mAppOpsService.finishOperationWithState(AppOpsManager.getToken(mAm.mAppOpsService), - AppOpsManager.OP_START_FOREGROUND, attributionSource.asState()); + mAm.mAppOpsService.finishOperation(AppOpsManager.getToken(mAm.mAppOpsService), + AppOpsManager.OP_START_FOREGROUND, r.appInfo.uid, r.packageName, null); mServiceFGAnrTimer.cancel(r); if (r.app != null) { Message msg = mAm.mHandler.obtainMessage( @@ -5791,13 +5770,9 @@ public final class ActiveServices { SystemClock.uptimeMillis()); } } - final AttributionSource attributionSource = new AttributionSource - .Builder(r.appInfo.uid) - .setPackageName(r.packageName) - .build(); - mAm.mAppOpsService.finishOperationWithState( + mAm.mAppOpsService.finishOperation( AppOpsManager.getToken(mAm.mAppOpsService), - AppOpsManager.OP_START_FOREGROUND, attributionSource.asState()); + AppOpsManager.OP_START_FOREGROUND, r.appInfo.uid, r.packageName, null); unregisterAppOpCallbackLocked(r); r.mFgsExitTime = SystemClock.uptimeMillis(); logFGSStateChangeLocked(r, @@ -8516,11 +8491,8 @@ public final class ActiveServices { mAm.mBatteryStatsService.noteServiceStartRunning(callingUid, callingPackage, cn.getClassName()); - final AttributionSource attributionSource = new AttributionSource.Builder(r.appInfo.uid) - .setPackageName(r.packageName) - .build(); - mAm.mAppOpsService.startOperationWithState(AppOpsManager.getToken(mAm.mAppOpsService), - AppOpsManager.OP_START_FOREGROUND, attributionSource.asState(), + mAm.mAppOpsService.startOperation(AppOpsManager.getToken(mAm.mAppOpsService), + AppOpsManager.OP_START_FOREGROUND, r.appInfo.uid, r.packageName, null, true, false, null, false, AppOpsManager.ATTRIBUTION_FLAGS_NONE, AppOpsManager.ATTRIBUTION_CHAIN_ID_NONE); registerAppOpCallbackLocked(r); diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 514be1586e42..b99a98fe6e8b 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -429,11 +429,10 @@ import com.android.internal.util.FastPrintWriter; import com.android.internal.util.FrameworkStatsLog; import com.android.internal.util.MemInfoReader; import com.android.internal.util.Preconditions; +import com.android.internal.util.function.HeptFunction; import com.android.internal.util.function.HexFunction; -import com.android.internal.util.function.NonaFunction; import com.android.internal.util.function.QuadFunction; import com.android.internal.util.function.QuintFunction; -import com.android.internal.util.function.TriFunction; import com.android.internal.util.function.UndecFunction; import com.android.server.AlarmManagerInternal; import com.android.server.BootReceiver; @@ -3152,11 +3151,8 @@ public class ActivityManagerService extends IActivityManager.Stub } private boolean hasUsageStatsPermission(String callingPackage, int callingUid, int callingPid) { - final AttributionSource attributionSource = new AttributionSource.Builder(callingUid) - .setPackageName(callingPackage) - .build(); - final int mode = mAppOpsService.noteOperationWithState(AppOpsManager.OP_GET_USAGE_STATS, - attributionSource.asState(), false, "", false).getOpMode(); + final int mode = mAppOpsService.noteOperation(AppOpsManager.OP_GET_USAGE_STATS, + callingUid, callingPackage, null, false, "", false).getOpMode(); if (mode == AppOpsManager.MODE_DEFAULT) { return checkPermission(Manifest.permission.PACKAGE_USAGE_STATS, callingPid, callingUid) == PackageManager.PERMISSION_GRANTED; @@ -3634,30 +3630,10 @@ public class ActivityManagerService extends IActivityManager.Stub } if (succeeded) { - final Intent intent = new Intent(Intent.ACTION_PACKAGE_DATA_CLEARED, - Uri.fromParts("package", packageName, null /* fragment */)); - intent.addFlags(Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND - | Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT); - intent.putExtra(Intent.EXTRA_UID, - (appInfo != null) ? appInfo.uid : INVALID_UID); - intent.putExtra(Intent.EXTRA_USER_HANDLE, resolvedUserId); - if (isRestore) { - intent.putExtra(Intent.EXTRA_IS_RESTORE, true); - } - if (isInstantApp) { - intent.putExtra(Intent.EXTRA_PACKAGE_NAME, packageName); - } - final int[] visibilityAllowList = mPackageManagerInt.getVisibilityAllowList( - packageName, resolvedUserId); - - broadcastIntentInPackage("android", null /* featureId */, - SYSTEM_UID, uid, pid, intent, null /* resolvedType */, - null /* resultToApp */, null /* resultTo */, 0 /* resultCode */, - null /* resultData */, null /* resultExtras */, - isInstantApp ? permission.ACCESS_INSTANT_APPS : null, - null /* bOptions */, false /* serialized */, false /* sticky */, - resolvedUserId, BackgroundStartPrivileges.NONE, - visibilityAllowList); + + mPackageManagerInt.sendPackageDataClearedBroadcast(packageName, + ((appInfo != null) ? appInfo.uid : INVALID_UID), resolvedUserId, + isRestore, isInstantApp); } if (observer != null) { @@ -4178,29 +4154,7 @@ public class ActivityManagerService extends IActivityManager.Stub flags = Intent.FLAG_RECEIVER_REGISTERED_ONLY | Intent.FLAG_RECEIVER_FOREGROUND; } - if (android.content.pm.Flags.stayStopped()) { - // Sent async using the PM handler, to maintain ordering with PACKAGE_UNSTOPPED - mPackageManagerInt.sendPackageRestartedBroadcast(packageName, - uid, flags); - } else { - Intent intent = new Intent(Intent.ACTION_PACKAGE_RESTARTED, - Uri.fromParts("package", packageName, null)); - intent.addFlags(flags); - final int userId = UserHandle.getUserId(uid); - final int[] broadcastAllowList = - getPackageManagerInternal().getVisibilityAllowList(packageName, userId); - intent.putExtra(Intent.EXTRA_UID, uid); - intent.putExtra(Intent.EXTRA_USER_HANDLE, userId); - broadcastIntentLocked(null /* callerApp */, null /* callerPackage */, - null /* callerFeatureId */, intent, null /* resolvedType */, - null /* resultToApp */, null /* resultTo */, - 0 /* resultCode */, null /* resultData */, null /* resultExtras */, - null /* requiredPermissions */, null /* excludedPermissions */, - null /* excludedPackages */, OP_NONE, null /* bOptions */, false /* ordered */, - false /* sticky */, MY_PID, SYSTEM_UID, Binder.getCallingUid(), - Binder.getCallingPid(), userId, BackgroundStartPrivileges.NONE, - broadcastAllowList, null /* filterExtrasForReceiver */); - } + mPackageManagerInt.sendPackageRestartedBroadcast(packageName, uid, flags); } private void cleanupDisabledPackageComponentsLocked( @@ -5938,18 +5892,9 @@ public class ActivityManagerService extends IActivityManager.Stub @Override public int noteOp(String op, int uid, String packageName) { // TODO moltmann: Allow to specify featureId - final AttributionSource attributionSource = new AttributionSource.Builder(uid) - .setPackageName(packageName) - .build(); - return mActivityManagerService - .mAppOpsService - .noteOperationWithState( - AppOpsManager.strOpToOp(op), - attributionSource.asState(), - false, - "", - false) - .getOpMode(); + return mActivityManagerService.mAppOpsService + .noteOperation(AppOpsManager.strOpToOp(op), uid, packageName, null, + false, "", false).getOpMode(); } @Override @@ -20163,26 +20108,20 @@ public class ActivityManagerService extends IActivityManager.Stub } @Override - public int checkOperation(int code, AttributionSource attributionSource, boolean raw, - TriFunction<Integer, AttributionSource, Boolean, Integer> superImpl) { - final int uid = attributionSource.getUid(); - + public int checkOperation(int code, int uid, String packageName, + String attributionTag, boolean raw, + QuintFunction<Integer, Integer, String, String, Boolean, Integer> superImpl) { if (uid == mTargetUid && isTargetOp(code)) { final int shellUid = UserHandle.getUid(UserHandle.getUserId(uid), Process.SHELL_UID); - final AttributionSource shellAttributionSource = - new AttributionSource.Builder(shellUid) - .setPackageName("com.android.shell") - .build(); - final long identity = Binder.clearCallingIdentity(); try { - return superImpl.apply(code, shellAttributionSource, raw); + return superImpl.apply(code, shellUid, "com.android.shell", null, raw); } finally { Binder.restoreCallingIdentity(identity); } } - return superImpl.apply(code, attributionSource, raw); + return superImpl.apply(code, uid, packageName, attributionTag, raw); } @Override @@ -20202,30 +20141,23 @@ public class ActivityManagerService extends IActivityManager.Stub } @Override - public SyncNotedAppOp noteOperation(int code, AttributionSource attributionSource, - boolean shouldCollectAsyncNotedOp, + public SyncNotedAppOp noteOperation(int code, int uid, @Nullable String packageName, + @Nullable String featureId, boolean shouldCollectAsyncNotedOp, @Nullable String message, boolean shouldCollectMessage, - @NonNull QuintFunction<Integer, AttributionSource, Boolean, String, Boolean, + @NonNull HeptFunction<Integer, Integer, String, String, Boolean, String, Boolean, SyncNotedAppOp> superImpl) { - final int uid = attributionSource.getUid(); - final String attributionTag = attributionSource.getAttributionTag(); if (uid == mTargetUid && isTargetOp(code)) { final int shellUid = UserHandle.getUid(UserHandle.getUserId(uid), Process.SHELL_UID); final long identity = Binder.clearCallingIdentity(); - final AttributionSource shellAttributionSource = - new AttributionSource.Builder(shellUid) - .setPackageName("com.android.shell") - .setAttributionTag(attributionTag) - .build(); try { - return superImpl.apply(code, shellAttributionSource, + return superImpl.apply(code, shellUid, "com.android.shell", featureId, shouldCollectAsyncNotedOp, message, shouldCollectMessage); } finally { Binder.restoreCallingIdentity(identity); } } - return superImpl.apply(code, attributionSource, shouldCollectAsyncNotedOp, + return superImpl.apply(code, uid, packageName, featureId, shouldCollectAsyncNotedOp, message, shouldCollectMessage); } @@ -20256,37 +20188,28 @@ public class ActivityManagerService extends IActivityManager.Stub } @Override - public SyncNotedAppOp startOperation(IBinder token, int code, - AttributionSource attributionSource, + public SyncNotedAppOp startOperation(IBinder token, int code, int uid, + @Nullable String packageName, @Nullable String attributionTag, boolean startIfModeDefault, boolean shouldCollectAsyncNotedOp, @Nullable String message, boolean shouldCollectMessage, @AttributionFlags int attributionFlags, int attributionChainId, - @NonNull NonaFunction<IBinder, Integer, AttributionSource, Boolean, + @NonNull UndecFunction<IBinder, Integer, Integer, String, String, Boolean, Boolean, String, Boolean, Integer, Integer, SyncNotedAppOp> superImpl) { - final int uid = attributionSource.getUid(); - final String attributionTag = attributionSource.getAttributionTag(); - if (uid == mTargetUid && isTargetOp(code)) { final int shellUid = UserHandle.getUid(UserHandle.getUserId(uid), Process.SHELL_UID); final long identity = Binder.clearCallingIdentity(); try { - final AttributionSource shellAttributionSource = - new AttributionSource.Builder(shellUid) - .setPackageName("com.android.shell") - .setAttributionTag(attributionTag) - .build(); - - return superImpl.apply(token, code, shellAttributionSource, - startIfModeDefault, shouldCollectAsyncNotedOp, message, + return superImpl.apply(token, code, shellUid, "com.android.shell", + attributionTag, startIfModeDefault, shouldCollectAsyncNotedOp, message, shouldCollectMessage, attributionFlags, attributionChainId); } finally { Binder.restoreCallingIdentity(identity); } } - return superImpl.apply(token, code, attributionSource, startIfModeDefault, - shouldCollectAsyncNotedOp, message, shouldCollectMessage, attributionFlags, - attributionChainId); + return superImpl.apply(token, code, uid, packageName, attributionTag, + startIfModeDefault, shouldCollectAsyncNotedOp, message, shouldCollectMessage, + attributionFlags, attributionChainId); } @Override diff --git a/services/core/java/com/android/server/am/AppPermissionTracker.java b/services/core/java/com/android/server/am/AppPermissionTracker.java index 947fcd38f5a0..18a91535a34c 100644 --- a/services/core/java/com/android/server/am/AppPermissionTracker.java +++ b/services/core/java/com/android/server/am/AppPermissionTracker.java @@ -37,7 +37,6 @@ import static com.android.server.am.BaseAppStateTracker.STATE_TYPE_PERMISSION; import android.annotation.NonNull; import android.annotation.Nullable; import android.app.AppOpsManager; -import android.content.AttributionSource; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager.OnPermissionsChangedListener; @@ -193,11 +192,7 @@ final class AppPermissionTracker extends BaseAppStateTracker<AppPermissionPolicy if (DEBUG_PERMISSION_TRACKER) { final IAppOpsService appOpsService = mInjector.getIAppOpsService(); try { - final AttributionSource attributionSource = new AttributionSource.Builder(uid) - .setPackageName(packageName) - .build(); - final int mode = - appOpsService.checkOperationWithState(op, attributionSource.asState()); + final int mode = appOpsService.checkOperation(op, uid, packageName); Slog.i(TAG, "onOpChanged: " + opToPublicName(op) + " " + UserHandle.formatUid(uid) + " " + packageName + " " + mode); @@ -312,11 +307,7 @@ final class AppPermissionTracker extends BaseAppStateTracker<AppPermissionPolicy final IAppOpsService appOpsService = mInjector.getIAppOpsService(); for (String pkg : packages) { try { - final AttributionSource attributionSource = - new AttributionSource.Builder(mUid).setPackageName(pkg).build(); - final int mode = - appOpsService.checkOperationWithState( - mAppOp, attributionSource.asState()); + final int mode = appOpsService.checkOperation(mAppOp, mUid, pkg); if (mode == AppOpsManager.MODE_ALLOWED) { mAppOpAllowed = true; return; diff --git a/services/core/java/com/android/server/am/SettingsToPropertiesMapper.java b/services/core/java/com/android/server/am/SettingsToPropertiesMapper.java index e6cdbb58a9fd..599d99854b26 100644 --- a/services/core/java/com/android/server/am/SettingsToPropertiesMapper.java +++ b/services/core/java/com/android/server/am/SettingsToPropertiesMapper.java @@ -166,6 +166,7 @@ public class SettingsToPropertiesMapper { "safety_center", "sensors", "system_performance", + "system_sw_usb", "test_suites", "text", "threadnetwork", diff --git a/services/core/java/com/android/server/appop/AppOpsService.java b/services/core/java/com/android/server/appop/AppOpsService.java index d6997daaa12b..052b0c2078d1 100644 --- a/services/core/java/com/android/server/appop/AppOpsService.java +++ b/services/core/java/com/android/server/appop/AppOpsService.java @@ -1143,32 +1143,22 @@ public class AppOpsService extends IAppOpsService.Stub { } }, RARELY_USED_PACKAGES_INITIALIZATION_DELAY_MILLIS); - getPackageManagerInternal() - .setExternalSourcesPolicy( - new PackageManagerInternal.ExternalSourcesPolicy() { - @Override - public int getPackageTrustedToInstallApps(String packageName, int uid) { - final AttributionSource attributionSource = - new AttributionSource.Builder(uid) - .setPackageName(packageName) - .build(); - int appOpMode = - checkOperationWithState( - AppOpsManager.OP_REQUEST_INSTALL_PACKAGES, - attributionSource.asState()); - switch (appOpMode) { - case AppOpsManager.MODE_ALLOWED: - return PackageManagerInternal.ExternalSourcesPolicy - .USER_TRUSTED; - case AppOpsManager.MODE_ERRORED: - return PackageManagerInternal.ExternalSourcesPolicy - .USER_BLOCKED; - default: - return PackageManagerInternal.ExternalSourcesPolicy - .USER_DEFAULT; - } - } - }); + getPackageManagerInternal().setExternalSourcesPolicy( + new PackageManagerInternal.ExternalSourcesPolicy() { + @Override + public int getPackageTrustedToInstallApps(String packageName, int uid) { + int appOpMode = checkOperation(AppOpsManager.OP_REQUEST_INSTALL_PACKAGES, + uid, packageName); + switch (appOpMode) { + case AppOpsManager.MODE_ALLOWED: + return PackageManagerInternal.ExternalSourcesPolicy.USER_TRUSTED; + case AppOpsManager.MODE_ERRORED: + return PackageManagerInternal.ExternalSourcesPolicy.USER_BLOCKED; + default: + return PackageManagerInternal.ExternalSourcesPolicy.USER_DEFAULT; + } + } + }); } @VisibleForTesting @@ -2544,41 +2534,22 @@ public class AppOpsService extends IAppOpsService.Stub { } } - /** @deprecated Use {@link #checkOperationWithStateRaw} instead. */ @Override public int checkOperationRaw(int code, int uid, String packageName, - @Nullable String attributionTag) { - final AttributionSource attributionSource = new AttributionSource.Builder(uid) - .setPackageName(packageName).setAttributionTag(attributionTag).build(); - return mCheckOpsDelegateDispatcher.checkOperation(code, attributionSource, true /*raw*/); - } - - @Override - public int checkOperationWithStateRaw(int code, AttributionSourceState attributionSourceState) { - final AttributionSource attributionSource = new AttributionSource(attributionSourceState); - return mCheckOpsDelegateDispatcher.checkOperation(code, attributionSource, true /*raw*/); + @Nullable String attributionTag) { + return mCheckOpsDelegateDispatcher.checkOperation(code, uid, packageName, attributionTag, + true /*raw*/); } - /** @deprecated Use {@link #checkOperationWithState} instead. */ @Override public int checkOperation(int code, int uid, String packageName) { - final AttributionSource attributionSource = new AttributionSource.Builder(uid) - .setPackageName(packageName) - .build(); - return mCheckOpsDelegateDispatcher.checkOperation(code, attributionSource, false /*raw*/); + return mCheckOpsDelegateDispatcher.checkOperation(code, uid, packageName, null, + false /*raw*/); } - @Override - public int checkOperationWithState(int code, AttributionSourceState attributionSourceState) { - final AttributionSource attributionSource = new AttributionSource(attributionSourceState); - return mCheckOpsDelegateDispatcher.checkOperation(code, attributionSource, false /*raw*/); - } - - private int checkOperationImpl(int code, AttributionSource attributionSource, boolean raw) { + private int checkOperationImpl(int code, int uid, String packageName, + @Nullable String attributionTag, boolean raw) { verifyIncomingOp(code); - final String packageName = attributionSource.getPackageName(); - final int uid = attributionSource.getUid(); - final String attributionTag = attributionSource.getAttributionTag(); if (!isIncomingPackageValid(packageName, UserHandle.getUserId(uid))) { return AppOpsManager.opToDefaultMode(code); } @@ -2643,10 +2614,7 @@ public class AppOpsService extends IAppOpsService.Stub { if (mode != AppOpsManager.MODE_ALLOWED) { return mode; } - final AttributionSource attributionSource = new AttributionSource.Builder(uid) - .setPackageName(packageName) - .build(); - return checkOperationWithState(code, attributionSource.asState()); + return checkOperation(code, uid, packageName); } @Override @@ -2790,38 +2758,17 @@ public class AppOpsService extends IAppOpsService.Stub { proxiedFlags, shouldCollectAsyncNotedOp, message, shouldCollectMessage); } - /** @deprecated Use {@link #noteOperationWithState} instead. */ @Override public SyncNotedAppOp noteOperation(int code, int uid, String packageName, String attributionTag, boolean shouldCollectAsyncNotedOp, String message, boolean shouldCollectMessage) { - final AttributionSource attributionSource = new AttributionSource.Builder(uid) - .setPackageName(packageName) - .setAttributionTag(attributionTag) - .build(); - return mCheckOpsDelegateDispatcher.noteOperation(code, attributionSource, - shouldCollectAsyncNotedOp, message, shouldCollectMessage); - } - - @Override - public SyncNotedAppOp noteOperationWithState( - int code, - AttributionSourceState attributionSourceState, - boolean shouldCollectAsyncNotedOp, - String message, - boolean shouldCollectMessage) { - final AttributionSource attributionSource = new AttributionSource(attributionSourceState); - return mCheckOpsDelegateDispatcher.noteOperation( - code, attributionSource, shouldCollectAsyncNotedOp, message, shouldCollectMessage); + return mCheckOpsDelegateDispatcher.noteOperation(code, uid, packageName, + attributionTag, shouldCollectAsyncNotedOp, message, shouldCollectMessage); } - private SyncNotedAppOp noteOperationImpl(int code, AttributionSource attributionSource, - boolean shouldCollectAsyncNotedOp, + private SyncNotedAppOp noteOperationImpl(int code, int uid, @Nullable String packageName, + @Nullable String attributionTag, boolean shouldCollectAsyncNotedOp, @Nullable String message, boolean shouldCollectMessage) { - final int uid = attributionSource.getUid(); - final String packageName = attributionSource.getPackageName(); - final String attributionTag = attributionSource.getAttributionTag(); - verifyIncomingUid(uid); verifyIncomingOp(code); if (!isIncomingPackageValid(packageName, UserHandle.getUserId(uid))) { @@ -3216,42 +3163,22 @@ public class AppOpsService extends IAppOpsService.Stub { } } - /** @deprecated Use {@link #startOperationWithState} instead. */ @Override public SyncNotedAppOp startOperation(IBinder token, int code, int uid, - @Nullable String packageName, @Nullable String attributionTag, - boolean startIfModeDefault, boolean shouldCollectAsyncNotedOp, - String message, boolean shouldCollectMessage, @AttributionFlags int attributionFlags, - int attributionChainId) { - final AttributionSource attributionSource = new AttributionSource.Builder(uid) - .setPackageName(packageName) - .setAttributionTag(attributionTag) - .build(); - return mCheckOpsDelegateDispatcher.startOperation(token, code, attributionSource, - startIfModeDefault, shouldCollectAsyncNotedOp, message, shouldCollectMessage, - attributionFlags, attributionChainId); - } - - @Override - public SyncNotedAppOp startOperationWithState(IBinder token, int code, - AttributionSourceState attributionSourceState, + @Nullable String packageName, @Nullable String attributionTag, boolean startIfModeDefault, boolean shouldCollectAsyncNotedOp, String message, boolean shouldCollectMessage, @AttributionFlags int attributionFlags, int attributionChainId) { - final AttributionSource attributionSource = new AttributionSource(attributionSourceState); - return mCheckOpsDelegateDispatcher.startOperation(token, code, attributionSource, - startIfModeDefault, shouldCollectAsyncNotedOp, message, + return mCheckOpsDelegateDispatcher.startOperation(token, code, uid, packageName, + attributionTag, startIfModeDefault, shouldCollectAsyncNotedOp, message, shouldCollectMessage, attributionFlags, attributionChainId); } - private SyncNotedAppOp startOperationImpl(@NonNull IBinder clientId, int code, - AttributionSource attributionSource, boolean startIfModeDefault, - boolean shouldCollectAsyncNotedOp, @NonNull String message, + private SyncNotedAppOp startOperationImpl(@NonNull IBinder clientId, int code, int uid, + @Nullable String packageName, @Nullable String attributionTag, + boolean startIfModeDefault, boolean shouldCollectAsyncNotedOp, @NonNull String message, boolean shouldCollectMessage, @AttributionFlags int attributionFlags, int attributionChainId) { - final String packageName = attributionSource.getPackageName(); - final int uid = attributionSource.getUid(); - final String attributionTag = attributionSource.getAttributionTag(); verifyIncomingUid(uid); verifyIncomingOp(code); if (!isIncomingPackageValid(packageName, UserHandle.getUserId(uid))) { @@ -3273,7 +3200,7 @@ public class AppOpsService extends IAppOpsService.Stub { int result = MODE_DEFAULT; if (code == OP_RECORD_AUDIO_HOTWORD || code == OP_RECEIVE_AMBIENT_TRIGGER_AUDIO || code == OP_RECORD_AUDIO_SANDBOXED) { - result = checkOperationWithState(OP_RECORD_AUDIO, attributionSource.asState()); + result = checkOperation(OP_RECORD_AUDIO, uid, packageName); // Check result if (result != AppOpsManager.MODE_ALLOWED) { return new SyncNotedAppOp(result, code, attributionTag, packageName); @@ -3281,7 +3208,7 @@ public class AppOpsService extends IAppOpsService.Stub { } // As a special case for OP_CAMERA_SANDBOXED. if (code == OP_CAMERA_SANDBOXED) { - result = checkOperationWithState(OP_CAMERA, attributionSource.asState()); + result = checkOperation(OP_CAMERA, uid, packageName); // Check result if (result != AppOpsManager.MODE_ALLOWED) { return new SyncNotedAppOp(result, code, attributionTag, packageName); @@ -3585,29 +3512,15 @@ public class AppOpsService extends IAppOpsService.Stub { packageName); } - /** @deprecated Use {@link #finishOperationWithState} instead. */ @Override public void finishOperation(IBinder clientId, int code, int uid, String packageName, String attributionTag) { - final AttributionSource attributionSource = new AttributionSource.Builder(uid) - .setPackageName(packageName) - .setAttributionTag(attributionTag) - .build(); - mCheckOpsDelegateDispatcher.finishOperation(clientId, code, attributionSource); - } - - @Override - public void finishOperationWithState(IBinder clientId, int code, - AttributionSourceState attributionSourceState) { - final AttributionSource attributionSource = new AttributionSource(attributionSourceState); - mCheckOpsDelegateDispatcher.finishOperation(clientId, code, attributionSource); + mCheckOpsDelegateDispatcher.finishOperation(clientId, code, uid, packageName, + attributionTag); } - private void finishOperationImpl(IBinder clientId, int code, - AttributionSource attributionSource) { - final String packageName = attributionSource.getPackageName(); - final int uid = attributionSource.getUid(); - final String attributionTag = attributionSource.getAttributionTag(); + private void finishOperationImpl(IBinder clientId, int code, int uid, String packageName, + String attributionTag) { verifyIncomingUid(uid); verifyIncomingOp(code); if (!isIncomingPackageValid(packageName, UserHandle.getUserId(uid))) { @@ -5190,13 +5103,8 @@ public class AppOpsService extends IAppOpsService.Stub { } if (shell.packageName != null) { - final AttributionSource shellAttributionSource = - new AttributionSource.Builder(shell.packageUid) - .setPackageName(shell.packageName) - .setAttributionTag(shell.attributionTag) - .build(); - shell.mInterface.startOperationWithState(shell.mToken, shell.op, - shellAttributionSource.asState(), true, true, + shell.mInterface.startOperation(shell.mToken, shell.op, shell.packageUid, + shell.packageName, shell.attributionTag, true, true, "appops start shell command", true, AppOpsManager.ATTRIBUTION_FLAG_ACCESSOR, ATTRIBUTION_CHAIN_ID_NONE); } else { @@ -5211,13 +5119,8 @@ public class AppOpsService extends IAppOpsService.Stub { } if (shell.packageName != null) { - final AttributionSource shellAttributionSource = - new AttributionSource.Builder(shell.packageUid) - .setPackageName(shell.packageName) - .setAttributionTag(shell.attributionTag) - .build(); - shell.mInterface.finishOperationWithState(shell.mToken, shell.op, - shellAttributionSource.asState()); + shell.mInterface.finishOperation(shell.mToken, shell.op, shell.packageUid, + shell.packageName, shell.attributionTag); } else { return -1; } @@ -6763,24 +6666,25 @@ public class AppOpsService extends IAppOpsService.Stub { return mCheckOpsDelegate; } - public int checkOperation(int code, AttributionSource attributionSource, boolean raw) { + public int checkOperation(int code, int uid, String packageName, + @Nullable String attributionTag, boolean raw) { if (mPolicy != null) { if (mCheckOpsDelegate != null) { - return mPolicy.checkOperation(code, attributionSource, raw, + return mPolicy.checkOperation(code, uid, packageName, attributionTag, raw, this::checkDelegateOperationImpl); } else { - return mPolicy.checkOperation(code, attributionSource, raw, + return mPolicy.checkOperation(code, uid, packageName, attributionTag, raw, AppOpsService.this::checkOperationImpl); } } else if (mCheckOpsDelegate != null) { - return checkDelegateOperationImpl(code, attributionSource, raw); + return checkDelegateOperationImpl(code, uid, packageName, attributionTag, raw); } - return checkOperationImpl(code, attributionSource, raw); + return checkOperationImpl(code, uid, packageName, attributionTag, raw); } - private int checkDelegateOperationImpl(int code, AttributionSource attributionSource, - boolean raw) { - return mCheckOpsDelegate.checkOperation(code, attributionSource, raw, + private int checkDelegateOperationImpl(int code, int uid, String packageName, + @Nullable String attributionTag, boolean raw) { + return mCheckOpsDelegate.checkOperation(code, uid, packageName, attributionTag, raw, AppOpsService.this::checkOperationImpl); } @@ -6805,32 +6709,32 @@ public class AppOpsService extends IAppOpsService.Stub { AppOpsService.this::checkAudioOperationImpl); } - public SyncNotedAppOp noteOperation(int code, AttributionSource attributionSource, - boolean shouldCollectAsyncNotedOp, String message, + public SyncNotedAppOp noteOperation(int code, int uid, String packageName, + String attributionTag, boolean shouldCollectAsyncNotedOp, String message, boolean shouldCollectMessage) { if (mPolicy != null) { if (mCheckOpsDelegate != null) { - return mPolicy.noteOperation(code, attributionSource, + return mPolicy.noteOperation(code, uid, packageName, attributionTag, shouldCollectAsyncNotedOp, message, shouldCollectMessage, this::noteDelegateOperationImpl); } else { - return mPolicy.noteOperation(code, attributionSource, + return mPolicy.noteOperation(code, uid, packageName, attributionTag, shouldCollectAsyncNotedOp, message, shouldCollectMessage, AppOpsService.this::noteOperationImpl); } } else if (mCheckOpsDelegate != null) { - return noteDelegateOperationImpl(code, attributionSource, shouldCollectAsyncNotedOp, - message, shouldCollectMessage); + return noteDelegateOperationImpl(code, uid, packageName, + attributionTag, shouldCollectAsyncNotedOp, message, shouldCollectMessage); } - return noteOperationImpl(code, attributionSource, + return noteOperationImpl(code, uid, packageName, attributionTag, shouldCollectAsyncNotedOp, message, shouldCollectMessage); } - private SyncNotedAppOp noteDelegateOperationImpl(int code, - AttributionSource attributionSource, + private SyncNotedAppOp noteDelegateOperationImpl(int code, int uid, + @Nullable String packageName, @Nullable String featureId, boolean shouldCollectAsyncNotedOp, @Nullable String message, boolean shouldCollectMessage) { - return mCheckOpsDelegate.noteOperation(code, attributionSource, + return mCheckOpsDelegate.noteOperation(code, uid, packageName, featureId, shouldCollectAsyncNotedOp, message, shouldCollectMessage, AppOpsService.this::noteOperationImpl); } @@ -6866,38 +6770,39 @@ public class AppOpsService extends IAppOpsService.Stub { AppOpsService.this::noteProxyOperationImpl); } - public SyncNotedAppOp startOperation(IBinder token, int code, - AttributionSource attributionSource, boolean startIfModeDefault, - boolean shouldCollectAsyncNotedOp, @Nullable String message, - boolean shouldCollectMessage, @AttributionFlags int attributionFlags, - int attributionChainId) { + public SyncNotedAppOp startOperation(IBinder token, int code, int uid, + @Nullable String packageName, @NonNull String attributionTag, + boolean startIfModeDefault, boolean shouldCollectAsyncNotedOp, + @Nullable String message, boolean shouldCollectMessage, + @AttributionFlags int attributionFlags, int attributionChainId) { if (mPolicy != null) { if (mCheckOpsDelegate != null) { - return mPolicy.startOperation(token, code, attributionSource, - startIfModeDefault, shouldCollectAsyncNotedOp, message, + return mPolicy.startOperation(token, code, uid, packageName, + attributionTag, startIfModeDefault, shouldCollectAsyncNotedOp, message, shouldCollectMessage, attributionFlags, attributionChainId, this::startDelegateOperationImpl); } else { - return mPolicy.startOperation(token, code, attributionSource, + return mPolicy.startOperation(token, code, uid, packageName, attributionTag, startIfModeDefault, shouldCollectAsyncNotedOp, message, shouldCollectMessage, attributionFlags, attributionChainId, AppOpsService.this::startOperationImpl); } } else if (mCheckOpsDelegate != null) { - return startDelegateOperationImpl(token, code, attributionSource, + return startDelegateOperationImpl(token, code, uid, packageName, attributionTag, startIfModeDefault, shouldCollectAsyncNotedOp, message, shouldCollectMessage, attributionFlags, attributionChainId); } - return startOperationImpl(token, code, attributionSource, + return startOperationImpl(token, code, uid, packageName, attributionTag, startIfModeDefault, shouldCollectAsyncNotedOp, message, shouldCollectMessage, attributionFlags, attributionChainId); } - private SyncNotedAppOp startDelegateOperationImpl(IBinder token, int code, - AttributionSource attributionSource, boolean startIfModeDefault, - boolean shouldCollectAsyncNotedOp, String message, boolean shouldCollectMessage, - @AttributionFlags int attributionFlags, int attributionChainId) { - return mCheckOpsDelegate.startOperation(token, code, attributionSource, + private SyncNotedAppOp startDelegateOperationImpl(IBinder token, int code, int uid, + @Nullable String packageName, @Nullable String attributionTag, + boolean startIfModeDefault, boolean shouldCollectAsyncNotedOp, String message, + boolean shouldCollectMessage, @AttributionFlags int attributionFlags, + int attributionChainId) { + return mCheckOpsDelegate.startOperation(token, code, uid, packageName, attributionTag, startIfModeDefault, shouldCollectAsyncNotedOp, message, shouldCollectMessage, attributionFlags, attributionChainId, AppOpsService.this::startOperationImpl); } @@ -6943,26 +6848,26 @@ public class AppOpsService extends IAppOpsService.Stub { attributionChainId, AppOpsService.this::startProxyOperationImpl); } - public void finishOperation(IBinder clientId, int code, - AttributionSource attributionSource) { + public void finishOperation(IBinder clientId, int code, int uid, String packageName, + String attributionTag) { if (mPolicy != null) { if (mCheckOpsDelegate != null) { - mPolicy.finishOperation(clientId, code, attributionSource, + mPolicy.finishOperation(clientId, code, uid, packageName, attributionTag, this::finishDelegateOperationImpl); } else { - mPolicy.finishOperation(clientId, code, attributionSource, + mPolicy.finishOperation(clientId, code, uid, packageName, attributionTag, AppOpsService.this::finishOperationImpl); } } else if (mCheckOpsDelegate != null) { - finishDelegateOperationImpl(clientId, code, attributionSource); + finishDelegateOperationImpl(clientId, code, uid, packageName, attributionTag); } else { - finishOperationImpl(clientId, code, attributionSource); + finishOperationImpl(clientId, code, uid, packageName, attributionTag); } } - private void finishDelegateOperationImpl(IBinder clientId, int code, - AttributionSource attributionSource) { - mCheckOpsDelegate.finishOperation(clientId, code, attributionSource, + private void finishDelegateOperationImpl(IBinder clientId, int code, int uid, + String packageName, String attributionTag) { + mCheckOpsDelegate.finishOperation(clientId, code, uid, packageName, attributionTag, AppOpsService.this::finishOperationImpl); } diff --git a/services/core/java/com/android/server/audio/AudioDeviceBroker.java b/services/core/java/com/android/server/audio/AudioDeviceBroker.java index 5d4f711b9432..b1706ed61e36 100644 --- a/services/core/java/com/android/server/audio/AudioDeviceBroker.java +++ b/services/core/java/com/android/server/audio/AudioDeviceBroker.java @@ -2747,5 +2747,4 @@ public class AudioDeviceBroker { void clearDeviceInventory() { mDeviceInventory.clearDeviceInventory(); } - } diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java index 99321c44931b..b2ee6101efcd 100644 --- a/services/core/java/com/android/server/audio/AudioService.java +++ b/services/core/java/com/android/server/audio/AudioService.java @@ -16,8 +16,8 @@ package com.android.server.audio; -import static android.app.BroadcastOptions.DELIVERY_GROUP_POLICY_MOST_RECENT; import static android.Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED; +import static android.app.BroadcastOptions.DELIVERY_GROUP_POLICY_MOST_RECENT; import static android.media.AudioDeviceInfo.TYPE_BLE_HEADSET; import static android.media.AudioDeviceInfo.TYPE_BLE_SPEAKER; import static android.media.AudioDeviceInfo.TYPE_BLUETOOTH_A2DP; @@ -29,7 +29,6 @@ import static android.media.AudioManager.DEVICE_OUT_BLUETOOTH_A2DP; import static android.media.AudioManager.RINGER_MODE_NORMAL; import static android.media.AudioManager.RINGER_MODE_SILENT; import static android.media.AudioManager.RINGER_MODE_VIBRATE; -import static android.media.AudioManager.STREAM_MUSIC; import static android.media.AudioManager.STREAM_SYSTEM; import static android.os.Process.FIRST_APPLICATION_UID; import static android.os.Process.INVALID_UID; @@ -409,7 +408,6 @@ public class AudioService extends IAudioService.Stub private static final int MSG_RESET_SPATIALIZER = 50; private static final int MSG_NO_LOG_FOR_PLAYER_I = 51; private static final int MSG_DISPATCH_PREFERRED_MIXER_ATTRIBUTES = 52; - private static final int MSG_LOWER_VOLUME_TO_RS1 = 53; private static final int MSG_CONFIGURATION_CHANGED = 54; private static final int MSG_BROADCAST_MASTER_MUTE = 55; @@ -2900,7 +2898,7 @@ public class AudioService extends IAudioService.Stub // IPC methods /////////////////////////////////////////////////////////////////////////// /** - * @see AudioManager#setPreferredDevicesForStrategy(AudioProductStrategy, AudioDeviceAttributes) + * @see AudioManager#setPreferredDeviceForStrategy(AudioProductStrategy, AudioDeviceAttributes) * @see AudioManager#setPreferredDevicesForStrategy(AudioProductStrategy, * List<AudioDeviceAttributes>) */ @@ -3536,7 +3534,7 @@ public class AudioService extends IAudioService.Stub return; } - mSoundDoseHelper.invalidatPendingVolumeCommand(); + mSoundDoseHelper.invalidatePendingVolumeCommand(); flags &= ~AudioManager.FLAG_FIXED_VOLUME; if (streamTypeAlias == AudioSystem.STREAM_MUSIC && isFixedVolumeDevice(device)) { @@ -4607,7 +4605,7 @@ public class AudioService extends IAudioService.Stub return; } - mSoundDoseHelper.invalidatPendingVolumeCommand(); + mSoundDoseHelper.invalidatePendingVolumeCommand(); oldIndex = streamState.getIndex(device); @@ -9544,10 +9542,6 @@ public class AudioService extends IAudioService.Stub onDispatchPreferredMixerAttributesChanged(msg.getData(), msg.arg1); break; - case MSG_LOWER_VOLUME_TO_RS1: - onLowerVolumeToRs1(); - break; - case MSG_CONFIGURATION_CHANGED: onConfigurationChanged(); break; @@ -9562,6 +9556,7 @@ public class AudioService extends IAudioService.Stub case SoundDoseHelper.MSG_PERSIST_MUSIC_ACTIVE_MS: case SoundDoseHelper.MSG_PERSIST_CSD_VALUES: case SoundDoseHelper.MSG_CSD_UPDATE_ATTENUATION: + case SoundDoseHelper.MSG_LOWER_VOLUME_TO_RS1: mSoundDoseHelper.handleMessage(msg); break; @@ -10946,31 +10941,11 @@ public class AudioService extends IAudioService.Stub } /*package*/ void postLowerVolumeToRs1() { - sendMsg(mAudioHandler, MSG_LOWER_VOLUME_TO_RS1, SENDMSG_QUEUE, + sendMsg(mAudioHandler, SoundDoseHelper.MSG_LOWER_VOLUME_TO_RS1, SENDMSG_QUEUE, // no params, no delay 0, 0, null, 0); } - /** - * Called when handling MSG_LOWER_VOLUME_TO_RS1 - */ - private void onLowerVolumeToRs1() { - final ArrayList<AudioDeviceAttributes> devices = getDevicesForAttributesInt( - new AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_MEDIA).build(), true); - final int nativeDeviceType; - final AudioDeviceAttributes ada; - if (!devices.isEmpty()) { - ada = devices.get(0); - nativeDeviceType = ada.getInternalType(); - } else { - nativeDeviceType = AudioSystem.DEVICE_OUT_USB_HEADSET; - ada = new AudioDeviceAttributes(AudioSystem.DEVICE_OUT_USB_HEADSET, ""); - } - final int index = mSoundDoseHelper.safeMediaVolumeIndex(nativeDeviceType); - setStreamVolumeWithAttributionInt(STREAM_MUSIC, index, /*flags*/ 0, ada, - "com.android.server.audio", "AudioService"); - } - @Override @android.annotation.EnforcePermission(MODIFY_AUDIO_SETTINGS_PRIVILEGED) public float getOutputRs2UpperBound() { diff --git a/services/core/java/com/android/server/audio/AudioServiceEvents.java b/services/core/java/com/android/server/audio/AudioServiceEvents.java index aac868f45fe3..21a7d31cf691 100644 --- a/services/core/java/com/android/server/audio/AudioServiceEvents.java +++ b/services/core/java/com/android/server/audio/AudioServiceEvents.java @@ -539,6 +539,8 @@ public class AudioServiceEvents { static final int DOSE_UPDATE = 1; static final int DOSE_REPEAT_5X = 2; static final int DOSE_ACCUMULATION_START = 3; + static final int LOWER_VOLUME_TO_RS1 = 4; + final int mEventType; final float mFloatValue; final long mLongValue; @@ -565,6 +567,10 @@ public class AudioServiceEvents { return new SoundDoseEvent(DOSE_ACCUMULATION_START, 0 /*ignored*/, 0 /*ignored*/); } + static SoundDoseEvent getLowerVolumeToRs1Event() { + return new SoundDoseEvent(LOWER_VOLUME_TO_RS1, 0 /*ignored*/, 0 /*ignored*/); + } + @Override public String eventToString() { switch (mEventType) { @@ -578,6 +584,8 @@ public class AudioServiceEvents { return "CSD reached 500%"; case DOSE_ACCUMULATION_START: return "CSD accumulating: RS2 entered"; + case LOWER_VOLUME_TO_RS1: + return "CSD lowering volume to RS1"; } return new StringBuilder("FIXME invalid event type:").append(mEventType).toString(); } diff --git a/services/core/java/com/android/server/audio/FadeConfigurations.java b/services/core/java/com/android/server/audio/FadeConfigurations.java new file mode 100644 index 000000000000..2e27c7697e82 --- /dev/null +++ b/services/core/java/com/android/server/audio/FadeConfigurations.java @@ -0,0 +1,180 @@ +/* + * 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.server.audio; + +import android.annotation.NonNull; +import android.media.AudioAttributes; +import android.media.AudioPlaybackConfiguration; +import android.media.VolumeShaper; +import android.util.Slog; + +import java.util.List; + +/** + * Class to encapsulate configurations used for fading players + */ +public final class FadeConfigurations { + public static final String TAG = "AS.FadeConfigurations"; + + private static final boolean DEBUG = PlaybackActivityMonitor.DEBUG; + + + /** duration of the fade out curve */ + private static final long DEFAULT_FADE_OUT_DURATION_MS = 2000; + /** + * delay after which a faded out player will be faded back in. This will be heard by the + * user only in the case of unmuting players that didn't respect audio focus and didn't + * stop/pause when their app lost focus. + * This is the amount of time between the app being notified of + * the focus loss (when its muted by the fade out), and the time fade in (to unmute) starts + */ + private static final long DEFAULT_DELAY_FADE_IN_OFFENDERS_MS = 2000; + + private static final List<Integer> DEFAULT_UNFADEABLE_PLAYER_TYPES = List.of( + AudioPlaybackConfiguration.PLAYER_TYPE_AAUDIO, + AudioPlaybackConfiguration.PLAYER_TYPE_JAM_SOUNDPOOL + ); + + private static final List<Integer> DEFAULT_UNFADEABLE_CONTENT_TYPES = List.of( + AudioAttributes.CONTENT_TYPE_SPEECH + ); + + private static final List<Integer> DEFAULT_FADEABLE_USAGES = List.of( + AudioAttributes.USAGE_GAME, + AudioAttributes.USAGE_MEDIA + ); + + private static final VolumeShaper.Configuration DEFAULT_FADEOUT_VSHAPE = + new VolumeShaper.Configuration.Builder() + .setId(PlaybackActivityMonitor.VOLUME_SHAPER_SYSTEM_FADEOUT_ID) + .setCurve(new float[]{0.f, 0.25f, 1.0f} /* times */, + new float[]{1.f, 0.65f, 0.0f} /* volumes */) + .setOptionFlags(VolumeShaper.Configuration.OPTION_FLAG_CLOCK_TIME) + .setDuration(DEFAULT_FADE_OUT_DURATION_MS) + .build(); + + private static final int INVALID_UID = -1; + + /** + * Query {@link android.media.AudioAttributes.AttributeUsage usages} that are allowed to + * fade + * @return list of {@link android.media.AudioAttributes.AttributeUsage} + */ + @NonNull + public List<Integer> getFadeableUsages() { + return DEFAULT_FADEABLE_USAGES; + } + + /** + * Query {@link android.media.AudioAttributes.AttributeContentType content types} that are + * exempted from fade enforcement + * @return list of {@link android.media.AudioAttributes.AttributeContentType} + */ + @NonNull + public List<Integer> getUnfadeableContentTypes() { + return DEFAULT_UNFADEABLE_CONTENT_TYPES; + } + + /** + * Query {@link android.media.AudioPlaybackConfiguration.PlayerType player types} that are + * exempted from fade enforcement + * @return list of {@link android.media.AudioPlaybackConfiguration.PlayerType} + */ + @NonNull + public List<Integer> getUnfadeablePlayerTypes() { + return DEFAULT_UNFADEABLE_PLAYER_TYPES; + } + + /** + * Get the {@link android.media.VolumeShaper.Configuration} configuration to be applied + * for the fade-out + * @param aa The {@link android.media.AudioAttributes} + * @return {@link android.media.VolumeShaper.Configuration} for the + * {@link android.media.AudioAttributes.AttributeUsage} or default volume shaper if not + * configured + */ + @NonNull + public VolumeShaper.Configuration getFadeOutVolumeShaperConfig(@NonNull AudioAttributes aa) { + return DEFAULT_FADEOUT_VSHAPE; + } + + /** + * Get the duration to fade out a player of type usage + * @param aa The {@link android.media.AudioAttributes} + * @return duration in milliseconds for the + * {@link android.media.AudioAttributes} or default duration if not configured + */ + public long getFadeOutDuration(@NonNull AudioAttributes aa) { + if (!isFadeable(aa, INVALID_UID, AudioPlaybackConfiguration.PLAYER_TYPE_UNKNOWN)) { + return 0; + } + return DEFAULT_FADE_OUT_DURATION_MS; + } + + /** + * Get the delay to fade in offending players that do not stop after losing audio focus. + * @param aa The {@link android.media.AudioAttributes} + * @return delay in milliseconds for the + * {@link android.media.AudioAttributes.Attribute} or default delay if not configured + */ + public long getDelayFadeInOffenders(@NonNull AudioAttributes aa) { + return DEFAULT_DELAY_FADE_IN_OFFENDERS_MS; + } + + /** + * Check if it is allowed to fade for the given {@link android.media.AudioAttributes}, + * client uid and {@link android.media.AudioPlaybackConfiguration.PlayerType} config. + * @param aa The {@link android.media.AudioAttributes} + * @param uid The uid of the client owning the player + * @param playerType The {@link android.media.AudioPlaybackConfiguration.PlayerType} + * @return {@code true} if it the config is fadeable and {@code false} otherwise + */ + public boolean isFadeable(@NonNull AudioAttributes aa, int uid, + @AudioPlaybackConfiguration.PlayerType int playerType) { + if (isPlayerTypeUnfadeable(playerType)) { + if (DEBUG) { + Slog.i(TAG, "not fadeable: player type:" + playerType); + } + return false; + } + if (isContentTypeUnfadeable(aa.getContentType())) { + if (DEBUG) { + Slog.i(TAG, "not fadeable: content type:" + aa.getContentType()); + } + return false; + } + if (!isUsageFadeable(aa.getUsage())) { + if (DEBUG) { + Slog.i(TAG, "not fadeable: usage:" + aa.getUsage()); + } + return false; + } + return true; + } + + private boolean isUsageFadeable(int usage) { + return getFadeableUsages().contains(usage); + } + + private boolean isContentTypeUnfadeable(int contentType) { + return getUnfadeableContentTypes().contains(contentType); + } + + private boolean isPlayerTypeUnfadeable(int playerType) { + return getUnfadeablePlayerTypes().contains(playerType); + } +} diff --git a/services/core/java/com/android/server/audio/FadeOutManager.java b/services/core/java/com/android/server/audio/FadeOutManager.java index 5f6f4b125710..1171f97533c7 100644 --- a/services/core/java/com/android/server/audio/FadeOutManager.java +++ b/services/core/java/com/android/server/audio/FadeOutManager.java @@ -21,66 +21,53 @@ import android.media.AudioAttributes; import android.media.AudioManager; import android.media.AudioPlaybackConfiguration; import android.media.VolumeShaper; -import android.util.Log; +import android.util.Slog; +import android.util.SparseArray; -import com.android.internal.util.ArrayUtils; +import com.android.internal.annotations.GuardedBy; import com.android.server.utils.EventLogger; import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashMap; +import java.util.Objects; /** * Class to handle fading out players */ public final class FadeOutManager { - public static final String TAG = "AudioService.FadeOutManager"; - - /** duration of the fade out curve */ - /*package*/ static final long FADE_OUT_DURATION_MS = 2000; - /** - * delay after which a faded out player will be faded back in. This will be heard by the user - * only in the case of unmuting players that didn't respect audio focus and didn't stop/pause - * when their app lost focus. - * This is the amount of time between the app being notified of - * the focus loss (when its muted by the fade out), and the time fade in (to unmute) starts - */ - /*package*/ static final long DELAY_FADE_IN_OFFENDERS_MS = 2000; + public static final String TAG = "AS.FadeOutManager"; private static final boolean DEBUG = PlaybackActivityMonitor.DEBUG; - - private static final VolumeShaper.Configuration FADEOUT_VSHAPE = - new VolumeShaper.Configuration.Builder() - .setId(PlaybackActivityMonitor.VOLUME_SHAPER_SYSTEM_FADEOUT_ID) - .setCurve(new float[]{0.f, 0.25f, 1.0f} /* times */, - new float[]{1.f, 0.65f, 0.0f} /* volumes */) - .setOptionFlags(VolumeShaper.Configuration.OPTION_FLAG_CLOCK_TIME) - .setDuration(FADE_OUT_DURATION_MS) - .build(); private static final VolumeShaper.Operation PLAY_CREATE_IF_NEEDED = new VolumeShaper.Operation.Builder(VolumeShaper.Operation.PLAY) .createIfNeeded() .build(); - private static final int[] UNFADEABLE_PLAYER_TYPES = { - AudioPlaybackConfiguration.PLAYER_TYPE_AAUDIO, - AudioPlaybackConfiguration.PLAYER_TYPE_JAM_SOUNDPOOL, - }; - - private static final int[] UNFADEABLE_CONTENT_TYPES = { - AudioAttributes.CONTENT_TYPE_SPEECH, - }; - - private static final int[] FADEABLE_USAGES = { - AudioAttributes.USAGE_GAME, - AudioAttributes.USAGE_MEDIA, - }; - // like a PLAY_CREATE_IF_NEEDED operation but with a skip to the end of the ramp private static final VolumeShaper.Operation PLAY_SKIP_RAMP = new VolumeShaper.Operation.Builder(PLAY_CREATE_IF_NEEDED).setXOffset(1.0f).build(); + private final Object mLock = new Object(); + + /** + * Map of uid (key) to faded out apps (value) + */ + @GuardedBy("mLock") + private final SparseArray<FadedOutApp> mUidToFadedAppsMap = new SparseArray<>(); + + @GuardedBy("mLock") + private FadeConfigurations mFadeConfigurations; + + public FadeOutManager() { + mFadeConfigurations = new FadeConfigurations(); + } + + public FadeOutManager(FadeConfigurations fadeConfigurations) { + mFadeConfigurations = Objects.requireNonNull(fadeConfigurations, + "Fade configurations can not be null"); + } // TODO explore whether a shorter fade out would be a better UX instead of not fading out at all // (legacy behavior) @@ -88,73 +75,71 @@ public final class FadeOutManager { * Determine whether the focus request would trigger a fade out, given the parameters of the * requester and those of the focus loser * @param requester the parameters for the focus request - * @return true if there can be a fade out over the requester starting to play + * @return {@code true} if there can be a fade out over the requester starting to play */ - static boolean canCauseFadeOut(@NonNull FocusRequester requester, - @NonNull FocusRequester loser) { + boolean canCauseFadeOut(@NonNull FocusRequester requester, @NonNull FocusRequester loser) { if (requester.getAudioAttributes().getContentType() == AudioAttributes.CONTENT_TYPE_SPEECH) { - if (DEBUG) { Log.i(TAG, "not fading out: new focus is for speech"); } + if (DEBUG) { + Slog.i(TAG, "not fading out: new focus is for speech"); + } return false; } if ((loser.getGrantFlags() & AudioManager.AUDIOFOCUS_FLAG_PAUSES_ON_DUCKABLE_LOSS) != 0) { - if (DEBUG) { Log.i(TAG, "not fading out: loser has PAUSES_ON_DUCKABLE_LOSS"); } + if (DEBUG) { + Slog.i(TAG, "not fading out: loser has PAUSES_ON_DUCKABLE_LOSS"); + } return false; } - return true; } /** * Evaluates whether the player associated with this configuration can and should be faded out * @param apc the configuration of the player - * @return true if player type and AudioAttributes are compatible with fade out + * @return {@code true} if player type and AudioAttributes are compatible with fade out */ - static boolean canBeFadedOut(@NonNull AudioPlaybackConfiguration apc) { - if (ArrayUtils.contains(UNFADEABLE_PLAYER_TYPES, apc.getPlayerType())) { - if (DEBUG) { Log.i(TAG, "not fading: player type:" + apc.getPlayerType()); } - return false; - } - if (ArrayUtils.contains(UNFADEABLE_CONTENT_TYPES, - apc.getAudioAttributes().getContentType())) { - if (DEBUG) { - Log.i(TAG, "not fading: content type:" - + apc.getAudioAttributes().getContentType()); - } - return false; - } - if (!ArrayUtils.contains(FADEABLE_USAGES, apc.getAudioAttributes().getUsage())) { - if (DEBUG) { - Log.i(TAG, "not fading: usage:" + apc.getAudioAttributes().getUsage()); - } - return false; + boolean canBeFadedOut(@NonNull AudioPlaybackConfiguration apc) { + synchronized (mLock) { + return mFadeConfigurations.isFadeable(apc.getAudioAttributes(), apc.getClientUid(), + apc.getPlayerType()); } - return true; } - static long getFadeOutDurationOnFocusLossMillis(AudioAttributes aa) { - if (ArrayUtils.contains(UNFADEABLE_CONTENT_TYPES, aa.getContentType())) { - return 0; - } - if (!ArrayUtils.contains(FADEABLE_USAGES, aa.getUsage())) { - return 0; + /** + * Get the duration to fade-out after losing audio focus + * @param aa The {@link android.media.AudioAttributes} of the player + * @return duration in milliseconds + */ + long getFadeOutDurationOnFocusLossMillis(@NonNull AudioAttributes aa) { + synchronized (mLock) { + return mFadeConfigurations.getFadeOutDuration(aa); } - return FADE_OUT_DURATION_MS; } /** - * Map of uid (key) to faded out apps (value) + * Get the delay to fade-in the offending players that do not stop after losing audio focus + * @param aa The {@link android.media.AudioAttributes} + * @return duration in milliseconds */ - private final HashMap<Integer, FadedOutApp> mFadedApps = new HashMap<Integer, FadedOutApp>(); - - synchronized void fadeOutUid(int uid, ArrayList<AudioPlaybackConfiguration> players) { - Log.i(TAG, "fadeOutUid() uid:" + uid); - if (!mFadedApps.containsKey(uid)) { - mFadedApps.put(uid, new FadedOutApp(uid)); + long getFadeInDelayForOffendersMillis(@NonNull AudioAttributes aa) { + synchronized (mLock) { + return mFadeConfigurations.getDelayFadeInOffenders(aa); } - final FadedOutApp fa = mFadedApps.get(uid); - for (AudioPlaybackConfiguration apc : players) { - fa.addFade(apc, false /*skipRamp*/); + } + + void fadeOutUid(int uid, ArrayList<AudioPlaybackConfiguration> players) { + Slog.i(TAG, "fadeOutUid() uid:" + uid); + synchronized (mLock) { + if (!mUidToFadedAppsMap.contains(uid)) { + mUidToFadedAppsMap.put(uid, new FadedOutApp(uid)); + } + final FadedOutApp fa = mUidToFadedAppsMap.get(uid); + for (AudioPlaybackConfiguration apc : players) { + final VolumeShaper.Configuration volShaper = + mFadeConfigurations.getFadeOutVolumeShaperConfig(apc.getAudioAttributes()); + fa.addFade(apc, /* skipRamp= */ false, volShaper); + } } } @@ -163,49 +148,82 @@ public final class FadeOutManager { * @param uid the uid for the app to unfade out * @param players map of current available players (so we can get an APC from piid) */ - synchronized void unfadeOutUid(int uid, HashMap<Integer, AudioPlaybackConfiguration> players) { - Log.i(TAG, "unfadeOutUid() uid:" + uid); - final FadedOutApp fa = mFadedApps.remove(uid); - if (fa == null) { - return; + void unfadeOutUid(int uid, HashMap<Integer, AudioPlaybackConfiguration> players) { + Slog.i(TAG, "unfadeOutUid() uid:" + uid); + synchronized (mLock) { + final FadedOutApp fa = mUidToFadedAppsMap.get(uid); + if (fa == null) { + return; + } + mUidToFadedAppsMap.remove(uid); + fa.removeUnfadeAll(players); } - fa.removeUnfadeAll(players); } // pre-condition: apc.getPlayerState() == AudioPlaybackConfiguration.PLAYER_STATE_STARTED // see {@link PlaybackActivityMonitor#playerEvent} - synchronized void checkFade(@NonNull AudioPlaybackConfiguration apc) { + void checkFade(@NonNull AudioPlaybackConfiguration apc) { if (DEBUG) { - Log.v(TAG, "checkFade() player piid:" + Slog.v(TAG, "checkFade() player piid:" + apc.getPlayerInterfaceId() + " uid:" + apc.getClientUid()); } - final FadedOutApp fa = mFadedApps.get(apc.getClientUid()); - if (fa == null) { - return; + + synchronized (mLock) { + final VolumeShaper.Configuration volShaper = + mFadeConfigurations.getFadeOutVolumeShaperConfig(apc.getAudioAttributes()); + final FadedOutApp fa = mUidToFadedAppsMap.get(apc.getClientUid()); + if (fa == null) { + return; + } + fa.addFade(apc, /* skipRamp= */ true, volShaper); } - fa.addFade(apc, true); } /** * Remove the player from the list of faded out players because it has been released * @param apc the released player */ - synchronized void removeReleased(@NonNull AudioPlaybackConfiguration apc) { + void removeReleased(@NonNull AudioPlaybackConfiguration apc) { final int uid = apc.getClientUid(); if (DEBUG) { - Log.v(TAG, "removedReleased() player piid: " + Slog.v(TAG, "removedReleased() player piid: " + apc.getPlayerInterfaceId() + " uid:" + uid); } - final FadedOutApp fa = mFadedApps.get(uid); - if (fa == null) { - return; + synchronized (mLock) { + final FadedOutApp fa = mUidToFadedAppsMap.get(uid); + if (fa == null) { + return; + } + fa.removeReleased(apc); } - fa.removeReleased(apc); } - synchronized void dump(PrintWriter pw) { - for (FadedOutApp da : mFadedApps.values()) { - da.dump(pw); + /** + * Check if uid is currently faded out + * @param uid Client id + * @return {@code true} if uid is currently faded out. Othwerwise, {@code false}. + */ + boolean isUidFadedOut(int uid) { + synchronized (mLock) { + return mUidToFadedAppsMap.contains(uid); + } + } + + /** + * Update fade configurations used for player fade operations + * @param fadeConfigurations set of configs that define fade properties + */ + void setFadeConfigurations(@NonNull FadeConfigurations fadeConfigurations) { + synchronized (mLock) { + mFadeConfigurations = fadeConfigurations; + } + } + + void dump(PrintWriter pw) { + synchronized (mLock) { + for (int index = 0; index < mUidToFadedAppsMap.size(); index++) { + mUidToFadedAppsMap.valueAt(index).dump(pw); + } } } @@ -215,7 +233,8 @@ public final class FadeOutManager { */ private static final class FadedOutApp { private final int mUid; - private final ArrayList<Integer> mFadedPlayers = new ArrayList<Integer>(); + // key -> piid; value -> volume shaper config applied + private final SparseArray<VolumeShaper.Configuration> mFadedPlayers = new SparseArray<>(); FadedOutApp(int uid) { mUid = uid; @@ -223,8 +242,9 @@ public final class FadeOutManager { void dump(PrintWriter pw) { pw.print("\t uid:" + mUid + " piids:"); - for (int piid : mFadedPlayers) { - pw.print(" " + piid); + for (int index = 0; index < mFadedPlayers.size(); index++) { + pw.print("piid: " + mFadedPlayers.keyAt(index) + " Volume shaper: " + + mFadedPlayers.valueAt(index)); } pw.println(""); } @@ -233,48 +253,60 @@ public final class FadeOutManager { * Add this player to the list of faded out players and apply the fade * @param apc a config that satisfies * apc.getPlayerState() == AudioPlaybackConfiguration.PLAYER_STATE_STARTED - * @param skipRamp true if the player should be directly into the end of ramp state. - * This value would for instance be false when adding players at the start of a fade. + * @param skipRamp {@code true} if the player should be directly into the end of ramp state. + * This value would for instance be {@code false} when adding players at the start + * of a fade. */ - void addFade(@NonNull AudioPlaybackConfiguration apc, boolean skipRamp) { - final int piid = new Integer(apc.getPlayerInterfaceId()); - if (mFadedPlayers.contains(piid)) { + void addFade(@NonNull AudioPlaybackConfiguration apc, boolean skipRamp, + @NonNull VolumeShaper.Configuration volShaper) { + final int piid = Integer.valueOf(apc.getPlayerInterfaceId()); + + // positive index return implies player is already faded + if (mFadedPlayers.indexOfKey(piid) >= 0) { if (DEBUG) { - Log.v(TAG, "player piid:" + piid + " already faded out"); + Slog.v(TAG, "player piid:" + piid + " already faded out"); } return; } - try { - PlaybackActivityMonitor.sEventLogger.enqueue( - (new PlaybackActivityMonitor.FadeOutEvent(apc, skipRamp)).printLog(TAG)); - apc.getPlayerProxy().applyVolumeShaper( - FADEOUT_VSHAPE, - skipRamp ? PLAY_SKIP_RAMP : PLAY_CREATE_IF_NEEDED); - mFadedPlayers.add(piid); - } catch (Exception e) { - Log.e(TAG, "Error fading out player piid:" + piid - + " uid:" + apc.getClientUid(), e); + if (apc.getPlayerProxy() != null) { + try { + PlaybackActivityMonitor.sEventLogger.enqueue( + (new PlaybackActivityMonitor.FadeOutEvent(apc, skipRamp)).printLog( + TAG)); + apc.getPlayerProxy().applyVolumeShaper(volShaper, + skipRamp ? PLAY_SKIP_RAMP : PLAY_CREATE_IF_NEEDED); + mFadedPlayers.put(piid, volShaper); + } catch (Exception e) { + Slog.e(TAG, "Error fading out player piid:" + piid + + " uid:" + apc.getClientUid(), e); + } + } else { + if (DEBUG) { + Slog.v(TAG, "Error fading out player piid:" + piid + + ", player not found for uid " + mUid); + } } } void removeUnfadeAll(HashMap<Integer, AudioPlaybackConfiguration> players) { - for (int piid : mFadedPlayers) { + for (int index = 0; index < mFadedPlayers.size(); index++) { + int piid = mFadedPlayers.keyAt(index); final AudioPlaybackConfiguration apc = players.get(piid); - if (apc != null) { + if ((apc != null) && (apc.getPlayerProxy() != null)) { + final VolumeShaper.Configuration volShaper = mFadedPlayers.valueAt(index); try { PlaybackActivityMonitor.sEventLogger.enqueue( (new EventLogger.StringEvent("unfading out piid:" + piid)).printLog(TAG)); - apc.getPlayerProxy().applyVolumeShaper( - FADEOUT_VSHAPE, + apc.getPlayerProxy().applyVolumeShaper(volShaper, VolumeShaper.Operation.REVERSE); } catch (Exception e) { - Log.e(TAG, "Error unfading out player piid:" + piid + " uid:" + mUid, e); + Slog.e(TAG, "Error unfading out player piid:" + piid + " uid:" + mUid, e); } } else { // this piid was in the list of faded players, but wasn't found if (DEBUG) { - Log.v(TAG, "Error unfading out player piid:" + piid + Slog.v(TAG, "Error unfading out player piid:" + piid + ", player not found for uid " + mUid); } } @@ -283,7 +315,7 @@ public final class FadeOutManager { } void removeReleased(@NonNull AudioPlaybackConfiguration apc) { - mFadedPlayers.remove(new Integer(apc.getPlayerInterfaceId())); + mFadedPlayers.delete(Integer.valueOf(apc.getPlayerInterfaceId())); } } } diff --git a/services/core/java/com/android/server/audio/FocusRequester.java b/services/core/java/com/android/server/audio/FocusRequester.java index 010d5f41bc7d..00c04ff12c89 100644 --- a/services/core/java/com/android/server/audio/FocusRequester.java +++ b/services/core/java/com/android/server/audio/FocusRequester.java @@ -495,7 +495,8 @@ public class FocusRequester { // will be dispatched later, it is now in limbo mode mFocusLossFadeLimbo = true; mFocusController.postDelayedLossAfterFade(this, - FadeOutManager.FADE_OUT_DURATION_MS); + mFocusController.getFadeOutDurationOnFocusLossMillis( + this.getAudioAttributes())); return true; } } diff --git a/services/core/java/com/android/server/audio/MediaFocusControl.java b/services/core/java/com/android/server/audio/MediaFocusControl.java index 65f6c9b8d459..58f5d5e21cf0 100644 --- a/services/core/java/com/android/server/audio/MediaFocusControl.java +++ b/services/core/java/com/android/server/audio/MediaFocusControl.java @@ -94,7 +94,7 @@ public class MediaFocusControl implements PlayerFocusEnforcer { private final Context mContext; private final AppOpsManager mAppOps; - private PlayerFocusEnforcer mFocusEnforcer; // never null + private final @NonNull PlayerFocusEnforcer mFocusEnforcer; private boolean mMultiAudioFocusEnabled = false; private boolean mRingOrCallActive = false; @@ -128,7 +128,8 @@ public class MediaFocusControl implements PlayerFocusEnforcer { * @return the fade out duration in ms */ public long getFocusFadeOutDurationForTest() { - return FadeOutManager.FADE_OUT_DURATION_MS; + return getFadeOutDurationMillis( + new AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_MEDIA).build()); } /** @@ -137,7 +138,8 @@ public class MediaFocusControl implements PlayerFocusEnforcer { * @return the time gap after a fade out completion on focus loss, and fade in start in ms */ public long getFocusUnmuteDelayAfterFadeOutForTest() { - return FadeOutManager.DELAY_FADE_IN_OFFENDERS_MS; + return getFadeInDelayForOffendersMillis( + new AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_MEDIA).build()); } //================================================================= @@ -178,6 +180,21 @@ public class MediaFocusControl implements PlayerFocusEnforcer { mFocusEnforcer.forgetUid(uid); } + @Override + public long getFadeOutDurationMillis(@NonNull AudioAttributes aa) { + if (aa == null) { + return 0; + } + return mFocusEnforcer.getFadeOutDurationMillis(aa); + } + + @Override + public long getFadeInDelayForOffendersMillis(@NonNull AudioAttributes aa) { + if (aa == null) { + return 0; + } + return mFocusEnforcer.getFadeInDelayForOffendersMillis(aa); + } //========================================================================================== // AudioFocus //========================================================================================== @@ -1401,7 +1418,7 @@ public class MediaFocusControl implements PlayerFocusEnforcer { if (!ENFORCE_FADEOUT_FOR_FOCUS_LOSS) { return 0; } - return FadeOutManager.getFadeOutDurationOnFocusLossMillis(aa); + return getFadeOutDurationMillis(aa); } private void dumpMultiAudioFocus(PrintWriter pw) { @@ -1423,14 +1440,14 @@ public class MediaFocusControl implements PlayerFocusEnforcer { Log.v(TAG, "postDelayedLossAfterFade loser=" + focusLoser.getPackageName()); } mFocusHandler.sendMessageDelayed( - mFocusHandler.obtainMessage(MSG_L_FOCUS_LOSS_AFTER_FADE, focusLoser), - FadeOutManager.FADE_OUT_DURATION_MS); + mFocusHandler.obtainMessage(MSG_L_FOCUS_LOSS_AFTER_FADE, focusLoser), delayMs); } - private void postForgetUidLater(int uid) { + private void postForgetUidLater(FocusRequester focusRequester) { mFocusHandler.sendMessageDelayed( - mFocusHandler.obtainMessage(MSL_L_FORGET_UID, new ForgetFadeUidInfo(uid)), - FadeOutManager.DELAY_FADE_IN_OFFENDERS_MS); + mFocusHandler.obtainMessage(MSL_L_FORGET_UID, + new ForgetFadeUidInfo(focusRequester.getClientUid())), + getFadeInDelayForOffendersMillis(focusRequester.getAudioAttributes())); } //================================================================= @@ -1466,7 +1483,7 @@ public class MediaFocusControl implements PlayerFocusEnforcer { if (loser.isInFocusLossLimbo()) { loser.dispatchFocusChange(AudioManager.AUDIOFOCUS_LOSS); loser.release(); - postForgetUidLater(loser.getClientUid()); + postForgetUidLater(loser); } } break; diff --git a/services/core/java/com/android/server/audio/PlaybackActivityMonitor.java b/services/core/java/com/android/server/audio/PlaybackActivityMonitor.java index 54fa6fbc3bfd..bc9b9b4b1c88 100644 --- a/services/core/java/com/android/server/audio/PlaybackActivityMonitor.java +++ b/services/core/java/com/android/server/audio/PlaybackActivityMonitor.java @@ -156,6 +156,8 @@ public final class PlaybackActivityMonitor private final int mMaxAlarmVolume; private int mPrivilegedAlarmActiveCount = 0; private final Consumer<AudioDeviceAttributes> mMuteAwaitConnectionTimeoutCb; + private final FadeOutManager mFadeOutManager; + PlaybackActivityMonitor(Context context, int maxAlarmVolume, Consumer<AudioDeviceAttributes> muteTimeoutCallback) { @@ -165,6 +167,7 @@ public final class PlaybackActivityMonitor AudioPlaybackConfiguration.sPlayerDeathMonitor = this; mMuteAwaitConnectionTimeoutCb = muteTimeoutCallback; initEventHandler(); + mFadeOutManager = new FadeOutManager(new FadeConfigurations()); } //================================================================= @@ -390,7 +393,7 @@ public final class PlaybackActivityMonitor if (change) { if (event == AudioPlaybackConfiguration.PLAYER_STATE_STARTED) { mDuckingManager.checkDuck(apc); - mFadingManager.checkFade(apc); + mFadeOutManager.checkFade(apc); } if (doNotLog) { // do not dispatch events for "ignored" players @@ -473,7 +476,7 @@ public final class PlaybackActivityMonitor "releasing player piid:" + piid)); mPlayers.remove(new Integer(piid)); mDuckingManager.removeReleased(apc); - mFadingManager.removeReleased(apc); + mFadeOutManager.removeReleased(apc); mMutedPlayersAwaitingConnection.remove(Integer.valueOf(piid)); checkVolumeForPrivilegedAlarm(apc, AudioPlaybackConfiguration.PLAYER_STATE_RELEASED); change = apc.handleStateEvent(AudioPlaybackConfiguration.PLAYER_STATE_RELEASED, @@ -643,7 +646,7 @@ public final class PlaybackActivityMonitor mDuckingManager.dump(pw); // faded out players pw.println("\n faded out players piids:"); - mFadingManager.dump(pw); + mFadeOutManager.dump(pw); // players muted due to the device ringing or being in a call pw.print("\n muted player piids due to call/ring:"); for (int piid : mMutedPlayers) { @@ -823,7 +826,7 @@ public final class PlaybackActivityMonitor if (DEBUG) { Log.v(TAG, "unduckPlayers: uids winner=" + winner.getClientUid()); } synchronized (mPlayerLock) { mDuckingManager.unduckUid(winner.getClientUid(), mPlayers); - mFadingManager.unfadeOutUid(winner.getClientUid(), mPlayers); + mFadeOutManager.unfadeOutUid(winner.getClientUid(), mPlayers); } } @@ -892,8 +895,6 @@ public final class PlaybackActivityMonitor } } - private final FadeOutManager mFadingManager = new FadeOutManager(); - /** * * @param winner the new non-transient focus owner @@ -914,7 +915,7 @@ public final class PlaybackActivityMonitor if (DEBUG) { Log.v(TAG, "no players to fade out"); } return false; } - if (!FadeOutManager.canCauseFadeOut(winner, loser)) { + if (!mFadeOutManager.canCauseFadeOut(winner, loser)) { return false; } // check if this UID needs to be faded out (return false if not), and gather list of @@ -928,7 +929,7 @@ public final class PlaybackActivityMonitor && loser.hasSameUid(apc.getClientUid()) && apc.getPlayerState() == AudioPlaybackConfiguration.PLAYER_STATE_STARTED) { - if (!FadeOutManager.canBeFadedOut(apc)) { + if (!mFadeOutManager.canBeFadedOut(apc)) { // the player is not eligible to be faded out, bail Log.v(TAG, "not fading out player " + apc.getPlayerInterfaceId() + " uid:" + apc.getClientUid() + " pid:" + apc.getClientPid() @@ -943,7 +944,7 @@ public final class PlaybackActivityMonitor } } if (loserHasActivePlayers) { - mFadingManager.fadeOutUid(loser.getClientUid(), apcsToFadeOut); + mFadeOutManager.fadeOutUid(loser.getClientUid(), apcsToFadeOut); } } @@ -956,10 +957,20 @@ public final class PlaybackActivityMonitor synchronized (mPlayerLock) { players = (HashMap<Integer, AudioPlaybackConfiguration>) mPlayers.clone(); } - mFadingManager.unfadeOutUid(uid, players); + mFadeOutManager.unfadeOutUid(uid, players); mDuckingManager.unduckUid(uid, players); } + @Override + public long getFadeOutDurationMillis(@NonNull AudioAttributes aa) { + return mFadeOutManager.getFadeOutDurationOnFocusLossMillis(aa); + } + + @Override + public long getFadeInDelayForOffendersMillis(@NonNull AudioAttributes aa) { + return mFadeOutManager.getFadeInDelayForOffendersMillis(aa); + } + //================================================================= // Track playback activity listeners diff --git a/services/core/java/com/android/server/audio/PlayerFocusEnforcer.java b/services/core/java/com/android/server/audio/PlayerFocusEnforcer.java index fb72ac282e8d..f1d42f3571a9 100644 --- a/services/core/java/com/android/server/audio/PlayerFocusEnforcer.java +++ b/services/core/java/com/android/server/audio/PlayerFocusEnforcer.java @@ -17,6 +17,7 @@ package com.android.server.audio; import android.annotation.NonNull; +import android.media.AudioAttributes; public interface PlayerFocusEnforcer { @@ -64,4 +65,18 @@ public interface PlayerFocusEnforcer { * @param uid */ void forgetUid(int uid); + + /** + * Get the fade out duration currently active for the given usage + * @param aa The {@link android.media.AudioAttributes} + * @return fade out duration in milliseconds + */ + long getFadeOutDurationMillis(@NonNull AudioAttributes aa); + + /** + * Returns the delay to fade-in the offending players + * @param aa The {@link android.media.AudioAttributes} + * @return delay in milliseconds + */ + long getFadeInDelayForOffendersMillis(@NonNull AudioAttributes aa); }
\ No newline at end of file diff --git a/services/core/java/com/android/server/audio/SoundDoseHelper.java b/services/core/java/com/android/server/audio/SoundDoseHelper.java index d65c7c2c526d..793752f3a1be 100644 --- a/services/core/java/com/android/server/audio/SoundDoseHelper.java +++ b/services/core/java/com/android/server/audio/SoundDoseHelper.java @@ -18,6 +18,7 @@ package com.android.server.audio; import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_HEADPHONES; import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_UNKNOWN; +import static android.media.AudioManager.STREAM_MUSIC; import static com.android.server.audio.AudioService.MAX_STREAM_VOLUME; import static com.android.server.audio.AudioService.MIN_STREAM_VOLUME; @@ -31,6 +32,8 @@ import android.app.AlarmManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; +import android.media.AudioAttributes; +import android.media.AudioDeviceAttributes; import android.media.AudioManager; import android.media.AudioSystem; import android.media.ISoundDose; @@ -115,6 +118,9 @@ public class SoundDoseHelper { /*package*/ static final int MSG_PERSIST_CSD_VALUES = SAFE_MEDIA_VOLUME_MSG_START + 5; /*package*/ static final int MSG_CSD_UPDATE_ATTENUATION = SAFE_MEDIA_VOLUME_MSG_START + 6; + /*package*/ static final int MSG_LOWER_VOLUME_TO_RS1 = SAFE_MEDIA_VOLUME_MSG_START + 7; + + private static final int UNSAFE_VOLUME_MUSIC_ACTIVE_MS_MAX = (20 * 3600 * 1000); // 20 hours private static final int MOMENTARY_EXPOSURE_TIMEOUT_MS = (20 * 3600 * 1000); // 20 hours @@ -774,7 +780,7 @@ public class SoundDoseHelper { return mSafeMediaVolumeDevices.get(device, SAFE_MEDIA_VOLUME_UNINITIALIZED) >= 0; } - /*package*/ void invalidatPendingVolumeCommand() { + /*package*/ void invalidatePendingVolumeCommand() { synchronized (mSafeMediaVolumeStateLock) { mPendingVolumeCommand = null; } @@ -808,6 +814,9 @@ public class SoundDoseHelper { updateDoseAttenuation(streamState.getIndex(device), device, streamState.getStreamType(), isAbsoluteVolume); break; + case MSG_LOWER_VOLUME_TO_RS1: + onLowerVolumeToRs1(); + break; default: Log.e(TAG, "Unexpected msg to handle: " + msg.what); break; @@ -1272,6 +1281,25 @@ public class SoundDoseHelper { return value; } + /** Called when handling MSG_LOWER_VOLUME_TO_RS1 */ + private void onLowerVolumeToRs1() { + mLogger.enqueue(SoundDoseEvent.getLowerVolumeToRs1Event()); + final ArrayList<AudioDeviceAttributes> devices = mAudioService.getDevicesForAttributesInt( + new AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_MEDIA).build(), true); + final int nativeDeviceType; + final AudioDeviceAttributes ada; + if (!devices.isEmpty()) { + ada = devices.get(0); + nativeDeviceType = ada.getInternalType(); + } else { + nativeDeviceType = AudioSystem.DEVICE_OUT_USB_HEADSET; + ada = new AudioDeviceAttributes(AudioSystem.DEVICE_OUT_USB_HEADSET, ""); + } + final int index = safeMediaVolumeIndex(nativeDeviceType); + mAudioService.setStreamVolumeWithAttributionInt(STREAM_MUSIC, index / 10, /*flags*/ 0, ada, + mContext.getOpPackageName(), /*attributionTag=*/null); + } + // StreamVolumeCommand contains the information needed to defer the process of // setStreamVolume() in case the user has to acknowledge the safe volume warning message. private static class StreamVolumeCommand { diff --git a/services/core/java/com/android/server/biometrics/sensors/face/aidl/AidlSession.java b/services/core/java/com/android/server/biometrics/sensors/face/aidl/AidlSession.java index 858bb864d4db..e70e25aebe9b 100644 --- a/services/core/java/com/android/server/biometrics/sensors/face/aidl/AidlSession.java +++ b/services/core/java/com/android/server/biometrics/sensors/face/aidl/AidlSession.java @@ -75,4 +75,11 @@ public class AidlSession { public boolean hasContextMethods() { return mHalInterfaceVersion >= 2; } + + /** + * If this backend implements enroll methods with an {@link android.view.Surface}. + */ + public boolean supportsFaceEnrollOptions() { + return mHalInterfaceVersion >= 4; + } } diff --git a/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceEnrollClient.java b/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceEnrollClient.java index dbed1f7a8f9d..0af6e40434ef 100644 --- a/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceEnrollClient.java +++ b/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceEnrollClient.java @@ -22,6 +22,7 @@ import android.content.Context; import android.hardware.biometrics.BiometricFaceConstants; import android.hardware.biometrics.common.ICancellationSignal; import android.hardware.biometrics.face.EnrollmentType; +import android.hardware.biometrics.face.FaceEnrollOptions; import android.hardware.biometrics.face.Feature; import android.hardware.biometrics.face.IFace; import android.hardware.common.NativeHandle; @@ -201,9 +202,21 @@ public class FaceEnrollClient extends EnrollClient<AidlSession> { if (session.hasContextMethods()) { final OperationContextExt opContext = getOperationContext(); - final ICancellationSignal cancel = session.getSession().enrollWithContext( - hat, EnrollmentType.DEFAULT, features, mHwPreviewHandle, - opContext.toAidlContext()); + ICancellationSignal cancel; + if (session.supportsFaceEnrollOptions()) { + FaceEnrollOptions options = new FaceEnrollOptions(); + options.hardwareAuthToken = hat; + options.enrollmentType = EnrollmentType.DEFAULT; + options.features = features; + options.nativeHandlePreview = null; + options.context = opContext.toAidlContext(); + options.surfacePreview = mPreviewSurface; + cancel = session.getSession().enrollWithOptions(options); + } else { + cancel = session.getSession().enrollWithContext( + hat, EnrollmentType.DEFAULT, features, mHwPreviewHandle, + opContext.toAidlContext()); + } getBiometricContext().subscribe(opContext, ctx -> { try { session.getSession().onContextChanged(ctx); diff --git a/services/core/java/com/android/server/biometrics/sensors/face/aidl/TestHal.java b/services/core/java/com/android/server/biometrics/sensors/face/aidl/TestHal.java index 4fc2e22cfae3..092371193e98 100644 --- a/services/core/java/com/android/server/biometrics/sensors/face/aidl/TestHal.java +++ b/services/core/java/com/android/server/biometrics/sensors/face/aidl/TestHal.java @@ -20,6 +20,7 @@ import android.hardware.biometrics.common.ICancellationSignal; import android.hardware.biometrics.common.OperationContext; import android.hardware.biometrics.face.EnrollmentStageConfig; import android.hardware.biometrics.face.Error; +import android.hardware.biometrics.face.FaceEnrollOptions; import android.hardware.biometrics.face.IFace; import android.hardware.biometrics.face.ISession; import android.hardware.biometrics.face.ISessionCallback; @@ -212,6 +213,12 @@ public class TestHal extends IFace.Stub { public void onContextChanged(OperationContext context) { Slog.w(TAG, "onContextChanged"); } + + @Override + public ICancellationSignal enrollWithOptions(FaceEnrollOptions options) { + return enroll(options.hardwareAuthToken, options.enrollmentType, options.features, + options.nativeHandlePreview); + } }; } } diff --git a/services/core/java/com/android/server/biometrics/sensors/face/hidl/AidlToHidlAdapter.java b/services/core/java/com/android/server/biometrics/sensors/face/hidl/AidlToHidlAdapter.java index eecf44b92918..489b213677dd 100644 --- a/services/core/java/com/android/server/biometrics/sensors/face/hidl/AidlToHidlAdapter.java +++ b/services/core/java/com/android/server/biometrics/sensors/face/hidl/AidlToHidlAdapter.java @@ -23,6 +23,7 @@ import android.hardware.biometrics.BiometricFaceConstants; import android.hardware.biometrics.common.ICancellationSignal; import android.hardware.biometrics.common.OperationContext; import android.hardware.biometrics.face.EnrollmentStageConfig; +import android.hardware.biometrics.face.FaceEnrollOptions; import android.hardware.biometrics.face.ISession; import android.hardware.biometrics.face.V1_0.IBiometricsFace; import android.hardware.biometrics.face.V1_0.OptionalBool; @@ -344,4 +345,10 @@ public class AidlToHidlAdapter implements ISession { return null; } } + + @Override + public ICancellationSignal enrollWithOptions(FaceEnrollOptions options) { + //Unsupported in HIDL + return null; + } } diff --git a/services/core/java/com/android/server/criticalevents/CriticalEventLog.java b/services/core/java/com/android/server/criticalevents/CriticalEventLog.java index ab480e8e8852..08143759fab4 100644 --- a/services/core/java/com/android/server/criticalevents/CriticalEventLog.java +++ b/services/core/java/com/android/server/criticalevents/CriticalEventLog.java @@ -31,6 +31,7 @@ import com.android.server.criticalevents.nano.CriticalEventProto.AppNotRespondin import com.android.server.criticalevents.nano.CriticalEventProto.HalfWatchdog; import com.android.server.criticalevents.nano.CriticalEventProto.JavaCrash; import com.android.server.criticalevents.nano.CriticalEventProto.NativeCrash; +import com.android.server.criticalevents.nano.CriticalEventProto.SystemServerStarted; import com.android.server.criticalevents.nano.CriticalEventProto.Watchdog; import java.io.File; @@ -141,6 +142,13 @@ public class CriticalEventLog { return System.currentTimeMillis(); } + /** Logs when system server started. */ + public void logSystemServerStarted() { + CriticalEventProto event = new CriticalEventProto(); + event.setSystemServerStarted(new SystemServerStarted()); + log(event); + } + /** Logs a watchdog. */ public void logWatchdog(String subject, UUID uuid) { Watchdog watchdog = new Watchdog(); diff --git a/services/core/java/com/android/server/display/DisplayManagerService.java b/services/core/java/com/android/server/display/DisplayManagerService.java index 36fc4aa0524d..eae153cb8aeb 100644 --- a/services/core/java/com/android/server/display/DisplayManagerService.java +++ b/services/core/java/com/android/server/display/DisplayManagerService.java @@ -102,11 +102,11 @@ import android.media.projection.IMediaProjection; import android.media.projection.IMediaProjectionManager; import android.net.Uri; import android.os.Binder; -import android.os.Build; import android.os.Handler; import android.os.HandlerExecutor; import android.os.IBinder; import android.os.IBinder.DeathRecipient; +import android.os.IThermalService; import android.os.Looper; import android.os.Message; import android.os.PowerManager; @@ -241,9 +241,6 @@ public final class DisplayManagerService extends SystemService { private static final String PROP_DEFAULT_DISPLAY_TOP_INSET = "persist.sys.displayinset.top"; - @VisibleForTesting - static final String ENABLE_ON_CONNECT = - "persist.sys.display.enable_on_connect.external"; private static final long WAIT_FOR_DEFAULT_DISPLAY_TIMEOUT = 10000; // This value needs to be in sync with the threshold // in RefreshRateConfigs::getFrameRateDivisor. @@ -266,6 +263,7 @@ public final class DisplayManagerService extends SystemService { private final DisplayManagerHandler mHandler; private final Handler mUiHandler; private final DisplayModeDirector mDisplayModeDirector; + private final ExternalDisplayPolicy mExternalDisplayPolicy; private WindowManagerInternal mWindowManagerInternal; private InputManagerInternal mInputManagerInternal; private ActivityManagerInternal mActivityManagerInternal; @@ -598,6 +596,7 @@ public final class DisplayManagerService extends SystemService { mConfigParameterProvider = new DeviceConfigParameterProvider(DeviceConfigInterface.REAL); mExtraDisplayLoggingPackageName = DisplayProperties.debug_vri_package().orElse(null); mExtraDisplayEventLogging = !TextUtils.isEmpty(mExtraDisplayLoggingPackageName); + mExternalDisplayPolicy = new ExternalDisplayPolicy(new ExternalDisplayPolicyInjector()); } public void setupSchedulerPolicies() { @@ -667,6 +666,7 @@ public final class DisplayManagerService extends SystemService { mDisplayModeDirector.onBootCompleted(); mLogicalDisplayMapper.onBootCompleted(); mDisplayNotificationManager.onBootCompleted(); + mExternalDisplayPolicy.onBootCompleted(); } } @@ -1947,17 +1947,12 @@ public final class DisplayManagerService extends SystemService { } setupLogicalDisplay(display); - // TODO(b/292196201) Remove when the display can be disabled before DPC is created. - if (display.getDisplayInfoLocked().type == Display.TYPE_EXTERNAL) { - if ((Build.IS_ENG || Build.IS_USERDEBUG) - && SystemProperties.getBoolean(ENABLE_ON_CONNECT, false)) { - Slog.w(TAG, "External display is enabled by default, bypassing user consent."); - } else { - display.setEnabledLocked(false); - } - } - sendDisplayEventLocked(display, DisplayManagerGlobal.EVENT_DISPLAY_CONNECTED); + if (ExternalDisplayPolicy.isExternalDisplay(display)) { + mExternalDisplayPolicy.handleExternalDisplayConnectedLocked(display); + } else { + sendDisplayEventLocked(display, DisplayManagerGlobal.EVENT_DISPLAY_CONNECTED); + } updateLogicalDisplayState(display); } @@ -3248,7 +3243,14 @@ public final class DisplayManagerService extends SystemService { void enableConnectedDisplay(int displayId, boolean enabled) { synchronized (mSyncRoot) { - mLogicalDisplayMapper.setDisplayEnabledLocked(displayId, enabled); + final var logicalDisplay = mLogicalDisplayMapper.getDisplayLocked(displayId); + if (logicalDisplay == null) { + Slog.w(TAG, "enableConnectedDisplay: Can not find displayId=" + displayId); + } else if (ExternalDisplayPolicy.isExternalDisplay(logicalDisplay)) { + mExternalDisplayPolicy.setExternalDisplayEnabledLocked(logicalDisplay, enabled); + } else { + mLogicalDisplayMapper.setDisplayEnabledLocked(logicalDisplay, enabled); + } } } @@ -4470,22 +4472,12 @@ public final class DisplayManagerService extends SystemService { @EnforcePermission(MANAGE_DISPLAYS) public void enableConnectedDisplay(int displayId) { enableConnectedDisplay_enforcePermission(); - if (!mFlags.isConnectedDisplayManagementEnabled()) { - Slog.w(TAG, "External display management is not enabled on your device: " - + "cannot enable display."); - return; - } DisplayManagerService.this.enableConnectedDisplay(displayId, true); } @EnforcePermission(MANAGE_DISPLAYS) public void disableConnectedDisplay(int displayId) { disableConnectedDisplay_enforcePermission(); - if (!mFlags.isConnectedDisplayManagementEnabled()) { - Slog.w(TAG, "External display management is not enabled on your device: " - + "cannot disable display."); - return; - } DisplayManagerService.this.enableConnectedDisplay(displayId, false); } } @@ -5043,4 +5035,73 @@ public final class DisplayManagerService extends SystemService { */ long uptimeMillis(); } + + /** + * Implements necessary functionality for {@link ExternalDisplayPolicy} + */ + private class ExternalDisplayPolicyInjector implements ExternalDisplayPolicy.Injector { + /** + * Sends event for the display. + */ + @Override + public void sendExternalDisplayEventLocked(@NonNull final LogicalDisplay display, + @DisplayEvent int event) { + sendDisplayEventLocked(display, event); + } + + /** + * Gets thermal service + */ + @Override + @Nullable + public IThermalService getThermalService() { + return IThermalService.Stub.asInterface(ServiceManager.getService( + Context.THERMAL_SERVICE)); + } + + /** + * @return display manager flags. + */ + @Override + @NonNull + public DisplayManagerFlags getFlags() { + return mFlags; + } + + /** + * @return Logical display mapper. + */ + @Override + @NonNull + public LogicalDisplayMapper getLogicalDisplayMapper() { + return mLogicalDisplayMapper; + } + + /** + * @return Sync root, for synchronization on this object across display manager. + */ + @Override + @NonNull + public SyncRoot getSyncRoot() { + return mSyncRoot; + } + + /** + * Notification manager for display manager + */ + @Override + @NonNull + public DisplayNotificationManager getDisplayNotificationManager() { + return mDisplayNotificationManager; + } + + /** + * Handler to use for notification sending to avoid requiring POST_NOTIFICATION permission. + */ + @Override + @NonNull + public Handler getHandler() { + return mHandler; + } + } } diff --git a/services/core/java/com/android/server/display/ExternalDisplayPolicy.java b/services/core/java/com/android/server/display/ExternalDisplayPolicy.java new file mode 100644 index 000000000000..dbe1e14f683f --- /dev/null +++ b/services/core/java/com/android/server/display/ExternalDisplayPolicy.java @@ -0,0 +1,298 @@ +/* + * 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.server.display; + +import static android.hardware.display.DisplayManagerGlobal.EVENT_DISPLAY_CONNECTED; +import static android.os.Temperature.THROTTLING_CRITICAL; +import static android.os.Temperature.THROTTLING_NONE; +import static android.view.Display.TYPE_EXTERNAL; + +import android.annotation.NonNull; +import android.annotation.Nullable; +import android.hardware.display.DisplayManagerGlobal; +import android.hardware.display.DisplayManagerGlobal.DisplayEvent; +import android.os.Build; +import android.os.Handler; +import android.os.IThermalEventListener; +import android.os.IThermalService; +import android.os.RemoteException; +import android.os.SystemProperties; +import android.os.Temperature; +import android.os.Temperature.ThrottlingStatus; +import android.util.Slog; + +import com.android.internal.annotations.GuardedBy; +import com.android.internal.annotations.VisibleForTesting; +import com.android.server.display.DisplayManagerService.SyncRoot; +import com.android.server.display.feature.DisplayManagerFlags; +import com.android.server.display.notifications.DisplayNotificationManager; +import com.android.server.display.utils.DebugUtils; + +/** + * Listens for Skin thermal sensor events, disables external displays if thermal status becomes + * equal or above {@link android.os.Temperature#THROTTLING_CRITICAL}, enables external displays if + * status goes below {@link android.os.Temperature#THROTTLING_CRITICAL}. + */ +class ExternalDisplayPolicy { + private static final String TAG = "ExternalDisplayPolicy"; + + // To enable these logs, run: + // 'adb shell setprop persist.log.tag.ExternalDisplayPolicy DEBUG && adb reboot' + private static final boolean DEBUG = DebugUtils.isDebuggable(TAG); + + @VisibleForTesting + static final String ENABLE_ON_CONNECT = "persist.sys.display.enable_on_connect.external"; + + static boolean isExternalDisplay(@NonNull final LogicalDisplay logicalDisplay) { + return logicalDisplay.getDisplayInfoLocked().type == TYPE_EXTERNAL; + } + + /** + * Injector interface for {@link ExternalDisplayPolicy} + */ + interface Injector { + void sendExternalDisplayEventLocked(@NonNull LogicalDisplay display, + @DisplayEvent int event); + + @NonNull + LogicalDisplayMapper getLogicalDisplayMapper(); + + @NonNull + SyncRoot getSyncRoot(); + + @Nullable + IThermalService getThermalService(); + + @NonNull + DisplayManagerFlags getFlags(); + + @NonNull + DisplayNotificationManager getDisplayNotificationManager(); + + @NonNull + Handler getHandler(); + } + + @NonNull + private final Injector mInjector; + @NonNull + private final LogicalDisplayMapper mLogicalDisplayMapper; + @NonNull + private final SyncRoot mSyncRoot; + @NonNull + private final DisplayManagerFlags mFlags; + @NonNull + private final DisplayNotificationManager mDisplayNotificationManager; + @NonNull + private final Handler mHandler; + @ThrottlingStatus + private volatile int mStatus = THROTTLING_NONE; + + ExternalDisplayPolicy(@NonNull final Injector injector) { + mInjector = injector; + mLogicalDisplayMapper = mInjector.getLogicalDisplayMapper(); + mSyncRoot = mInjector.getSyncRoot(); + mFlags = mInjector.getFlags(); + mDisplayNotificationManager = mInjector.getDisplayNotificationManager(); + mHandler = mInjector.getHandler(); + } + + /** + * Starts listening for temperature changes. + */ + void onBootCompleted() { + if (!mFlags.isConnectedDisplayManagementEnabled()) { + if (DEBUG) { + Slog.d(TAG, "External display management is not enabled on your device:" + + " cannot register thermal listener."); + } + return; + } + + if (!mFlags.isConnectedDisplayErrorHandlingEnabled()) { + if (DEBUG) { + Slog.d(TAG, "ConnectedDisplayErrorHandlingEnabled is not enabled on your device:" + + " cannot register thermal listener."); + } + return; + } + + if (!registerThermalServiceListener(new SkinThermalStatusObserver())) { + Slog.e(TAG, "Failed to register thermal listener"); + } + } + + /** + * Checks the display type is external, and if it is external then enables/disables it. + */ + void setExternalDisplayEnabledLocked(@NonNull final LogicalDisplay logicalDisplay, + final boolean enabled) { + if (!isExternalDisplay(logicalDisplay)) { + Slog.e(TAG, "setExternalDisplayEnabledLocked called for non external display"); + return; + } + + if (!mFlags.isConnectedDisplayManagementEnabled()) { + if (DEBUG) { + Slog.d(TAG, "setExternalDisplayEnabledLocked: External display management is not" + + " enabled on your device, cannot enable/disable display."); + } + return; + } + + if (enabled && !isExternalDisplayAllowed()) { + Slog.w(TAG, "setExternalDisplayEnabledLocked: External display can not be enabled" + + " because it is currently not allowed."); + mHandler.post(mDisplayNotificationManager::onHighTemperatureExternalDisplayNotAllowed); + return; + } + + mLogicalDisplayMapper.setDisplayEnabledLocked(logicalDisplay, enabled); + } + + /** + * Upon external display became available check if external displays allowed, this display + * is disabled and then sends {@link DisplayManagerGlobal#EVENT_DISPLAY_CONNECTED} to allow + * user to decide how to use this display. + */ + void handleExternalDisplayConnectedLocked(@NonNull final LogicalDisplay logicalDisplay) { + if (!isExternalDisplay(logicalDisplay)) { + Slog.e(TAG, "handleExternalDisplayConnectedLocked called for non-external display"); + return; + } + + if (!mFlags.isConnectedDisplayManagementEnabled()) { + if (DEBUG) { + Slog.d(TAG, "handleExternalDisplayConnectedLocked connected display management" + + " flag is off"); + } + return; + } + + if ((Build.IS_ENG || Build.IS_USERDEBUG) + && SystemProperties.getBoolean(ENABLE_ON_CONNECT, false)) { + Slog.w(TAG, "External display is enabled by default, bypassing user consent."); + mInjector.sendExternalDisplayEventLocked(logicalDisplay, EVENT_DISPLAY_CONNECTED); + return; + } else { + // As external display is enabled by default, need to disable it now. + // TODO(b/292196201) Remove when the display can be disabled before DPC is created. + logicalDisplay.setEnabledLocked(false); + } + + if (!isExternalDisplayAllowed()) { + Slog.w(TAG, "handleExternalDisplayConnectedLocked: External display can not be used" + + " because it is currently not allowed."); + mDisplayNotificationManager.onHighTemperatureExternalDisplayNotAllowed(); + return; + } + + mInjector.sendExternalDisplayEventLocked(logicalDisplay, EVENT_DISPLAY_CONNECTED); + + if (DEBUG) { + Slog.d(TAG, "handleExternalDisplayConnectedLocked complete" + + " displayId=" + logicalDisplay.getDisplayIdLocked()); + } + } + + @GuardedBy("mSyncRoot") + private void disableExternalDisplayLocked(@NonNull final LogicalDisplay logicalDisplay) { + if (!isExternalDisplay(logicalDisplay)) { + return; + } + + if (!mFlags.isConnectedDisplayManagementEnabled()) { + Slog.e(TAG, "disableExternalDisplayLocked shouldn't be called when the" + + " connected display management flag is off"); + return; + } + + if (!mFlags.isConnectedDisplayErrorHandlingEnabled()) { + if (DEBUG) { + Slog.d(TAG, "disableExternalDisplayLocked shouldn't be called when the" + + " error handling flag is off"); + } + return; + } + + if (!logicalDisplay.isEnabledLocked()) { + if (DEBUG) { + Slog.d(TAG, "disableExternalDisplayLocked is not allowed:" + + " displayId=" + logicalDisplay.getDisplayIdLocked() + + " isEnabledLocked=false"); + } + return; + } + + if (!isExternalDisplayAllowed()) { + Slog.w(TAG, "External display is currently not allowed and is getting disabled."); + mDisplayNotificationManager.onHighTemperatureExternalDisplayNotAllowed(); + } + + mLogicalDisplayMapper.setDisplayEnabledLocked(logicalDisplay, /*enabled=*/ false); + + if (DEBUG) { + Slog.d(TAG, "disableExternalDisplayLocked complete" + + " displayId=" + logicalDisplay.getDisplayIdLocked()); + } + } + + /** + * @return whether external displays use is currently allowed. + */ + @VisibleForTesting + boolean isExternalDisplayAllowed() { + return mStatus < THROTTLING_CRITICAL; + } + + private boolean registerThermalServiceListener( + @NonNull final IThermalEventListener.Stub listener) { + final var thermalService = mInjector.getThermalService(); + if (thermalService == null) { + Slog.w(TAG, "Could not observe thermal status. Service not available"); + return false; + } + try { + thermalService.registerThermalEventListenerWithType(listener, Temperature.TYPE_SKIN); + } catch (RemoteException e) { + Slog.e(TAG, "Failed to register thermal status listener", e); + return false; + } + if (DEBUG) { + Slog.d(TAG, "registerThermalServiceListener complete."); + } + return true; + } + + private void disableExternalDisplays() { + synchronized (mSyncRoot) { + mLogicalDisplayMapper.forEachLocked(this::disableExternalDisplayLocked); + } + } + + private final class SkinThermalStatusObserver extends IThermalEventListener.Stub { + @Override + public void notifyThrottling(@NonNull final Temperature temp) { + @ThrottlingStatus final int newStatus = temp.getStatus(); + final var previousStatus = mStatus; + mStatus = newStatus; + if (THROTTLING_CRITICAL > previousStatus && THROTTLING_CRITICAL <= newStatus) { + disableExternalDisplays(); + } + } + } +} diff --git a/services/core/java/com/android/server/display/LogicalDisplayMapper.java b/services/core/java/com/android/server/display/LogicalDisplayMapper.java index f3425d2e2136..115111a4afa3 100644 --- a/services/core/java/com/android/server/display/LogicalDisplayMapper.java +++ b/services/core/java/com/android/server/display/LogicalDisplayMapper.java @@ -1255,16 +1255,11 @@ class LogicalDisplayMapper implements DisplayDeviceRepository.Listener { return null; } - void setDisplayEnabledLocked(int displayId, boolean enabled) { - LogicalDisplay display = getDisplayLocked(displayId); - if (display == null) { - Slog.w(TAG, "Cannot find display " + displayId); - return; - } + void setDisplayEnabledLocked(@NonNull LogicalDisplay display, boolean enabled) { boolean isEnabled = display.isEnabledLocked(); if (isEnabled == enabled) { Slog.w(TAG, "Display is already " + (isEnabled ? "enabled" : "disabled") + ": " - + displayId); + + display.getDisplayIdLocked()); return; } setEnabledLocked(display, enabled); diff --git a/services/core/java/com/android/server/display/notifications/DisplayNotificationManager.java b/services/core/java/com/android/server/display/notifications/DisplayNotificationManager.java index 5cdef38cd45c..f57bf295a34e 100644 --- a/services/core/java/com/android/server/display/notifications/DisplayNotificationManager.java +++ b/services/core/java/com/android/server/display/notifications/DisplayNotificationManager.java @@ -17,6 +17,7 @@ package com.android.server.display.notifications; import static android.app.Notification.COLOR_DEFAULT; + import static com.android.internal.notification.SystemNotificationChannels.ALERTS; import android.annotation.Nullable; @@ -112,7 +113,8 @@ public class DisplayNotificationManager implements ConnectedDisplayUsbErrorsDete sendErrorNotification(createErrorNotification( R.string.connected_display_unavailable_notification_title, - R.string.connected_display_unavailable_notification_content)); + R.string.connected_display_unavailable_notification_content, + R.drawable.usb_cable_unknown_issue)); } /** @@ -129,7 +131,8 @@ public class DisplayNotificationManager implements ConnectedDisplayUsbErrorsDete sendErrorNotification(createErrorNotification( R.string.connected_display_cable_dont_support_displays_notification_title, - R.string.connected_display_cable_dont_support_displays_notification_content)); + R.string.connected_display_cable_dont_support_displays_notification_content, + R.drawable.usb_cable_unknown_issue)); } /** @@ -144,7 +147,24 @@ public class DisplayNotificationManager implements ConnectedDisplayUsbErrorsDete sendErrorNotification(createErrorNotification( R.string.connected_display_unavailable_notification_title, - R.string.connected_display_unavailable_notification_content)); + R.string.connected_display_unavailable_notification_content, + R.drawable.usb_cable_unknown_issue)); + } + + /** + * Send notification about high temperature preventing usage of the external display. + */ + public void onHighTemperatureExternalDisplayNotAllowed() { + if (!mConnectedDisplayErrorHandlingEnabled) { + Slog.d(TAG, "onHighTemperatureExternalDisplayNotAllowed:" + + " mConnectedDisplayErrorHandlingEnabled is false"); + return; + } + + sendErrorNotification(createErrorNotification( + R.string.connected_display_unavailable_notification_title, + R.string.connected_display_thermally_unavailable_notification_content, + R.drawable.ic_thermostat_notification)); } /** @@ -176,7 +196,8 @@ public class DisplayNotificationManager implements ConnectedDisplayUsbErrorsDete /** * @return a newly built notification about an issue with connected display. */ - private Notification createErrorNotification(final int titleId, final int messageId) { + private Notification createErrorNotification(final int titleId, final int messageId, + final int icon) { final Resources resources = mContext.getResources(); final CharSequence title = resources.getText(titleId); final CharSequence message = resources.getText(messageId); @@ -190,7 +211,7 @@ public class DisplayNotificationManager implements ConnectedDisplayUsbErrorsDete return new Notification.Builder(mContext, ALERTS) .setGroup(NOTIFICATION_GROUP_NAME) - .setSmallIcon(R.drawable.usb_cable_unknown_issue) + .setSmallIcon(icon) .setWhen(0) .setTimeoutAfter(NOTIFICATION_TIMEOUT_MILLISEC) .setOngoing(false) diff --git a/services/core/java/com/android/server/inputmethod/AutofillSuggestionsController.java b/services/core/java/com/android/server/inputmethod/AutofillSuggestionsController.java index 0faae35c1a71..2d6b013d11c1 100644 --- a/services/core/java/com/android/server/inputmethod/AutofillSuggestionsController.java +++ b/services/core/java/com/android/server/inputmethod/AutofillSuggestionsController.java @@ -21,7 +21,6 @@ import android.annotation.Nullable; import android.annotation.UserIdInt; import android.os.IBinder; import android.os.RemoteException; -import android.util.ArrayMap; import android.util.Slog; import android.view.autofill.AutofillId; import android.view.inputmethod.InlineSuggestionsRequest; @@ -40,7 +39,6 @@ final class AutofillSuggestionsController { private static final String TAG = AutofillSuggestionsController.class.getSimpleName(); @NonNull private final InputMethodManagerService mService; - @NonNull private final ArrayMap<String, InputMethodInfo> mMethodMap; @NonNull private final InputMethodUtils.InputMethodSettings mSettings; private static final class CreateInlineSuggestionsRequest { @@ -78,7 +76,6 @@ final class AutofillSuggestionsController { AutofillSuggestionsController(@NonNull InputMethodManagerService service) { mService = service; - mMethodMap = mService.mMethodMap; mSettings = mService.mSettings; } @@ -88,7 +85,8 @@ final class AutofillSuggestionsController { boolean touchExplorationEnabled) { clearPendingInlineSuggestionsRequest(); mInlineSuggestionsRequestCallback = callback; - final InputMethodInfo imi = mMethodMap.get(mService.getSelectedMethodIdLocked()); + final InputMethodInfo imi = mService.queryInputMethodForCurrentUserLocked( + mService.getSelectedMethodIdLocked()); try { if (userId == mSettings.getCurrentUserId() && imi != null && isInlineSuggestionsEnabled(imi, touchExplorationEnabled)) { diff --git a/services/core/java/com/android/server/inputmethod/InputMethodBindingController.java b/services/core/java/com/android/server/inputmethod/InputMethodBindingController.java index 2fe2271bb23f..e76aa1aad0cc 100644 --- a/services/core/java/com/android/server/inputmethod/InputMethodBindingController.java +++ b/services/core/java/com/android/server/inputmethod/InputMethodBindingController.java @@ -34,7 +34,6 @@ import android.os.SystemClock; import android.os.Trace; import android.os.UserHandle; import android.provider.Settings; -import android.util.ArrayMap; import android.util.EventLog; import android.util.Slog; import android.view.WindowManager; @@ -64,7 +63,6 @@ final class InputMethodBindingController { @NonNull private final InputMethodManagerService mService; @NonNull private final Context mContext; - @NonNull private final ArrayMap<String, InputMethodInfo> mMethodMap; @NonNull private final InputMethodUtils.InputMethodSettings mSettings; @NonNull private final PackageManagerInternal mPackageManagerInternal; @NonNull private final WindowManagerInternal mWindowManagerInternal; @@ -115,7 +113,6 @@ final class InputMethodBindingController { int imeConnectionBindFlags, CountDownLatch latchForTesting) { mService = service; mContext = mService.mContext; - mMethodMap = mService.mMethodMap; mSettings = mService.mSettings; mPackageManagerInternal = mService.mPackageManagerInternal; mWindowManagerInternal = mService.mWindowManagerInternal; @@ -295,7 +292,8 @@ final class InputMethodBindingController { return; } if (DEBUG) Slog.v(TAG, "Initiating attach with token: " + mCurToken); - final InputMethodInfo info = mMethodMap.get(mSelectedMethodId); + final InputMethodInfo info = + mService.queryInputMethodForCurrentUserLocked(mSelectedMethodId); boolean supportsStylusHwChanged = mSupportsStylusHw != info.supportsStylusHandwriting(); mSupportsStylusHw = info.supportsStylusHandwriting(); @@ -410,7 +408,7 @@ final class InputMethodBindingController { return InputBindResult.NO_IME; } - InputMethodInfo info = mMethodMap.get(mSelectedMethodId); + InputMethodInfo info = mService.queryInputMethodForCurrentUserLocked(mSelectedMethodId); if (info == null) { throw new IllegalArgumentException("Unknown id: " + mSelectedMethodId); } diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java index 0c4ecbce47d0..1ae67dd8add9 100644 --- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java +++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java @@ -310,7 +310,7 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub // All known input methods. final ArrayList<InputMethodInfo> mMethodList = new ArrayList<>(); - final ArrayMap<String, InputMethodInfo> mMethodMap = new ArrayMap<>(); + private final ArrayMap<String, InputMethodInfo> mMethodMap = new ArrayMap<>(); final InputMethodSubtypeSwitchingController mSwitchingController; final HardwareKeyboardShortcutController mHardwareKeyboardShortcutController = new HardwareKeyboardShortcutController(); @@ -500,6 +500,12 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub mBindingController.advanceSequenceNumber(); } + @GuardedBy("ImfLock.class") + @Nullable + InputMethodInfo queryInputMethodForCurrentUserLocked(@NonNull String imeId) { + return mMethodMap.get(imeId); + } + /** * The client that is currently bound to an input method. */ diff --git a/services/core/java/com/android/server/inputmethod/InputMethodMenuController.java b/services/core/java/com/android/server/inputmethod/InputMethodMenuController.java index c2ef83d06690..86e417b183f8 100644 --- a/services/core/java/com/android/server/inputmethod/InputMethodMenuController.java +++ b/services/core/java/com/android/server/inputmethod/InputMethodMenuController.java @@ -26,7 +26,6 @@ import android.content.DialogInterface; import android.content.res.TypedArray; import android.graphics.drawable.Drawable; import android.text.TextUtils; -import android.util.ArrayMap; import android.util.Slog; import android.view.LayoutInflater; import android.view.View; @@ -54,7 +53,6 @@ final class InputMethodMenuController { private final InputMethodManagerService mService; private final InputMethodUtils.InputMethodSettings mSettings; private final InputMethodSubtypeSwitchingController mSwitchingController; - private final ArrayMap<String, InputMethodInfo> mMethodMap; private final WindowManagerInternal mWindowManagerInternal; private AlertDialog.Builder mDialogBuilder; @@ -73,7 +71,6 @@ final class InputMethodMenuController { mService = service; mSettings = mService.mSettings; mSwitchingController = mService.mSwitchingController; - mMethodMap = mService.mMethodMap; mWindowManagerInternal = LocalServices.getService(WindowManagerInternal.class); } @@ -101,7 +98,8 @@ final class InputMethodMenuController { mService.getCurrentInputMethodSubtypeLocked(); if (currentSubtype != null) { final String curMethodId = mService.getSelectedMethodIdLocked(); - final InputMethodInfo currentImi = mMethodMap.get(curMethodId); + final InputMethodInfo currentImi = + mService.queryInputMethodForCurrentUserLocked(curMethodId); lastInputMethodSubtypeId = SubtypeUtils.getSubtypeIdFromHashCode( currentImi, currentSubtype.hashCode()); } diff --git a/services/core/java/com/android/server/media/BluetoothProfileMonitor.java b/services/core/java/com/android/server/media/BluetoothProfileMonitor.java index b129dd0f74c6..d61e7fb6591e 100644 --- a/services/core/java/com/android/server/media/BluetoothProfileMonitor.java +++ b/services/core/java/com/android/server/media/BluetoothProfileMonitor.java @@ -47,21 +47,10 @@ import java.util.Objects; @Nullable private BluetoothLeAudio mLeAudioProfile; - @Nullable - private OnProfileChangedListener mOnProfileChangedListener; - BluetoothProfileMonitor(@NonNull Context context, @NonNull BluetoothAdapter bluetoothAdapter) { - Objects.requireNonNull(context); - Objects.requireNonNull(bluetoothAdapter); - - mContext = context; - mBluetoothAdapter = bluetoothAdapter; - } - - /* package */ synchronized void setOnProfileChangedListener( - @NonNull OnProfileChangedListener listener) { - mOnProfileChangedListener = listener; + mContext = Objects.requireNonNull(context); + mBluetoothAdapter = Objects.requireNonNull(bluetoothAdapter); } /* package */ void start() { @@ -115,15 +104,9 @@ import java.util.Objects; } } - /* package */ interface OnProfileChangedListener { - void onProfileChange(int profile); - } - private final class ProfileListener implements BluetoothProfile.ServiceListener { @Override public void onServiceConnected(int profile, BluetoothProfile proxy) { - OnProfileChangedListener listener; - synchronized (BluetoothProfileMonitor.this) { switch (profile) { case BluetoothProfile.A2DP: @@ -135,22 +118,12 @@ import java.util.Objects; case BluetoothProfile.LE_AUDIO: mLeAudioProfile = (BluetoothLeAudio) proxy; break; - default: - return; } - - listener = mOnProfileChangedListener; - } - - if (listener != null) { - listener.onProfileChange(profile); } } @Override public void onServiceDisconnected(int profile) { - OnProfileChangedListener listener; - synchronized (BluetoothProfileMonitor.this) { switch (profile) { case BluetoothProfile.A2DP: @@ -162,17 +135,8 @@ import java.util.Objects; case BluetoothProfile.LE_AUDIO: mLeAudioProfile = null; break; - default: - return; } - - listener = mOnProfileChangedListener; - } - - if (listener != null) { - listener.onProfileChange(profile); } } } - } diff --git a/services/core/java/com/android/server/notification/ZenModeHelper.java b/services/core/java/com/android/server/notification/ZenModeHelper.java index 71562dc1ed86..762c1a162302 100644 --- a/services/core/java/com/android/server/notification/ZenModeHelper.java +++ b/services/core/java/com/android/server/notification/ZenModeHelper.java @@ -16,20 +16,29 @@ package com.android.server.notification; +import static android.app.NotificationManager.AUTOMATIC_RULE_STATUS_ACTIVATED; +import static android.app.NotificationManager.AUTOMATIC_RULE_STATUS_DEACTIVATED; import static android.app.NotificationManager.AUTOMATIC_RULE_STATUS_DISABLED; import static android.app.NotificationManager.AUTOMATIC_RULE_STATUS_ENABLED; import static android.app.NotificationManager.AUTOMATIC_RULE_STATUS_REMOVED; +import static android.app.NotificationManager.AUTOMATIC_RULE_STATUS_UNKNOWN; import static android.app.NotificationManager.Policy.PRIORITY_SENDERS_ANY; import static android.service.notification.NotificationServiceProto.ROOT_CONFIG; import static com.android.internal.util.FrameworkStatsLog.DND_MODE_RULE; +import android.annotation.SuppressLint; +import android.annotation.UserIdInt; import android.app.AppOpsManager; import android.app.AutomaticZenRule; +import android.app.Flags; import android.app.Notification; import android.app.NotificationManager; import android.app.NotificationManager.Policy; import android.app.PendingIntent; +import android.app.compat.CompatChanges; +import android.compat.annotation.ChangeId; +import android.compat.annotation.EnabledSince; import android.content.ComponentName; import android.content.ContentResolver; import android.content.Context; @@ -50,6 +59,7 @@ import android.media.AudioSystem; import android.media.VolumePolicy; import android.net.Uri; import android.os.Binder; +import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.Looper; @@ -108,6 +118,13 @@ public class ZenModeHelper { private static final int RULE_INSTANCE_GRACE_PERIOD = 1000 * 60 * 60 * 72; static final int RULE_LIMIT_PER_PACKAGE = 100; + /** + * Send new activation AutomaticZenRule statuses to apps with a min target SDK version + */ + @ChangeId + @EnabledSince(targetSdkVersion = Build.VERSION_CODES.VANILLA_ICE_CREAM) + static final long SEND_ACTIVATION_AZR_STATUSES = 308673617L; + // pkg|userId => uid @VisibleForTesting protected final ArrayMap<String, Integer> mRulesUidCache = new ArrayMap<>(); @@ -228,7 +245,8 @@ public class ZenModeHelper { // was read in via XML, but will initialize zen mode if nothing was read in and the // config remains the default. updateConfigAndZenModeLocked(mConfig, "init", true /*setRingerMode*/, - Process.SYSTEM_UID /* callingUid */, true /* is system */); + Process.SYSTEM_UID /* callingUid */, true /* is system */, + false /* no broadcasts*/); } } @@ -406,10 +424,13 @@ public class ZenModeHelper { "Cannot update rules not owned by your condition provider"); } } - if (rule.enabled != automaticZenRule.isEnabled()) { - dispatchOnAutomaticRuleStatusChanged(mConfig.user, rule.getPkg(), ruleId, - automaticZenRule.isEnabled() - ? AUTOMATIC_RULE_STATUS_ENABLED : AUTOMATIC_RULE_STATUS_DISABLED); + if (!Flags.modesApi()) { + if (rule.enabled != automaticZenRule.isEnabled()) { + dispatchOnAutomaticRuleStatusChanged(mConfig.user, rule.getPkg(), ruleId, + automaticZenRule.isEnabled() + ? AUTOMATIC_RULE_STATUS_ENABLED + : AUTOMATIC_RULE_STATUS_DISABLED); + } } populateZenRule(rule.pkg, automaticZenRule, rule, false); @@ -650,6 +671,9 @@ public class ZenModeHelper { private void populateZenRule(String pkg, AutomaticZenRule automaticZenRule, ZenRule rule, boolean isNew) { + if (rule.enabled != automaticZenRule.isEnabled()) { + rule.snoozing = false; + } rule.name = automaticZenRule.getName(); rule.condition = null; rule.conditionId = automaticZenRule.getConditionId(); @@ -667,21 +691,62 @@ public class ZenModeHelper { rule.pkg = pkg; } - if (rule.enabled != automaticZenRule.isEnabled()) { - rule.snoozing = false; + if (Flags.modesApi()) { + rule.allowManualInvocation = automaticZenRule.isManualInvocationAllowed(); + rule.iconResId = automaticZenRule.getIconResId(); + rule.triggerDescription = automaticZenRule.getTriggerDescription(); + rule.type = automaticZenRule.getType(); } } protected AutomaticZenRule createAutomaticZenRule(ZenRule rule) { - AutomaticZenRule azr = new AutomaticZenRule(rule.name, rule.component, - rule.configurationActivity, - rule.conditionId, rule.zenPolicy, - NotificationManager.zenModeToInterruptionFilter(rule.zenMode), - rule.enabled, rule.creationTime); + AutomaticZenRule azr; + if (Flags.modesApi()) { + azr = new AutomaticZenRule.Builder(rule.name, rule.conditionId) + .setManualInvocationAllowed(rule.allowManualInvocation) + .setCreationTime(rule.creationTime) + .setIconResId(rule.iconResId) + .setType(rule.type) + .setZenPolicy(rule.zenPolicy) + .setEnabled(rule.enabled) + .setInterruptionFilter( + NotificationManager.zenModeToInterruptionFilter(rule.zenMode)) + .setOwner(rule.component) + .setConfigurationActivity(rule.configurationActivity) + .setTriggerDescription(rule.triggerDescription) + .build(); + } else { + azr = new AutomaticZenRule(rule.name, rule.component, + rule.configurationActivity, + rule.conditionId, rule.zenPolicy, + NotificationManager.zenModeToInterruptionFilter(rule.zenMode), + rule.enabled, rule.creationTime); + } azr.setPackageName(rule.pkg); return azr; } + @SuppressLint("MissingPermission") + void scheduleActivationBroadcast(String pkg, @UserIdInt int userId, String ruleId, + boolean activated) { + if (CompatChanges.isChangeEnabled( + SEND_ACTIVATION_AZR_STATUSES, pkg, UserHandle.of(userId))) { + dispatchOnAutomaticRuleStatusChanged(userId, pkg, ruleId, activated + ? AUTOMATIC_RULE_STATUS_ACTIVATED + : AUTOMATIC_RULE_STATUS_DEACTIVATED); + } else { + dispatchOnAutomaticRuleStatusChanged( + userId, pkg, ruleId, AUTOMATIC_RULE_STATUS_UNKNOWN); + } + } + + void scheduleEnabledBroadcast(String pkg, @UserIdInt int userId, String ruleId, + boolean enabled) { + dispatchOnAutomaticRuleStatusChanged(userId, pkg, ruleId, enabled + ? AUTOMATIC_RULE_STATUS_ENABLED + : AUTOMATIC_RULE_STATUS_DISABLED); + } + public void setManualZenMode(int zenMode, Uri conditionId, String caller, String reason, int callingUid, boolean fromSystemOrSystemUi) { setManualZenMode(zenMode, conditionId, reason, caller, true /*setRingerMode*/, callingUid, @@ -713,6 +778,9 @@ public class ZenModeHelper { newRule.zenMode = zenMode; newRule.conditionId = conditionId; newRule.enabler = caller; + if (Flags.modesApi()) { + newRule.allowManualInvocation = true; + } newConfig.manualRule = newRule; } setConfigLocked(newConfig, reason, null, setRingerMode, callingUid, @@ -975,7 +1043,7 @@ public class ZenModeHelper { dispatchOnPolicyChanged(); } updateConfigAndZenModeLocked(config, reason, setRingerMode, callingUid, - fromSystemOrSystemUi); + fromSystemOrSystemUi, true); mConditions.evaluateConfig(config, triggeringComponent, true /*processSubscriptions*/); return true; } catch (SecurityException e) { @@ -992,13 +1060,31 @@ public class ZenModeHelper { */ @GuardedBy("mConfigLock") private void updateConfigAndZenModeLocked(ZenModeConfig config, String reason, - boolean setRingerMode, int callingUid, boolean fromSystemOrSystemUi) { + boolean setRingerMode, int callingUid, boolean fromSystemOrSystemUi, + boolean sendBroadcasts) { final boolean logZenModeEvents = mFlagResolver.isEnabled( SystemUiSystemPropertiesFlags.NotificationFlags.LOG_DND_STATE_EVENTS); // Store (a copy of) all config and zen mode info prior to any changes taking effect ZenModeEventLogger.ZenModeInfo prevInfo = new ZenModeEventLogger.ZenModeInfo( mZenMode, mConfig, mConsolidatedPolicy); if (!config.equals(mConfig)) { + // schedule broadcasts + if (Flags.modesApi() && sendBroadcasts) { + for (ZenRule rule : config.automaticRules.values()) { + ZenRule original = mConfig.automaticRules.get(rule.id); + if (original != null) { + if (original.enabled != rule.enabled) { + scheduleEnabledBroadcast( + rule.getPkg(), config.user, rule.id, rule.enabled); + } + if (original.isAutomaticActive() != rule.isAutomaticActive()) { + scheduleActivationBroadcast( + rule.getPkg(), config.user, rule.id, rule.isAutomaticActive()); + } + } + } + } + mConfig = config; dispatchOnConfigChanged(); updateConsolidatedPolicy(reason); diff --git a/services/core/java/com/android/server/pdb/PersistentDataBlockService.java b/services/core/java/com/android/server/pdb/PersistentDataBlockService.java index b006ac862533..a8cba532435d 100644 --- a/services/core/java/com/android/server/pdb/PersistentDataBlockService.java +++ b/services/core/java/com/android/server/pdb/PersistentDataBlockService.java @@ -35,11 +35,12 @@ import android.util.Slog; import com.android.internal.R; import com.android.internal.annotations.GuardedBy; +import com.android.internal.annotations.VisibleForTesting; import com.android.internal.util.DumpUtils; -import com.android.server.pm.UserManagerInternal; import com.android.server.LocalServices; import com.android.server.SystemServerInitThreadPool; import com.android.server.SystemService; +import com.android.server.pm.UserManagerInternal; import libcore.io.IoUtils; @@ -53,6 +54,9 @@ import java.io.PrintWriter; import java.io.RandomAccessFile; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.file.StandardOpenOption; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Arrays; @@ -114,21 +118,26 @@ public class PersistentDataBlockService extends SystemService { private static final String GSI_RUNNING_PROP = "ro.gsid.image_running"; private static final String PERSISTENT_DATA_BLOCK_PROP = "ro.frp.pst"; - private static final int HEADER_SIZE = 8; + @VisibleForTesting + static final int HEADER_SIZE = 8; // Magic number to mark block device as adhering to the format consumed by this service private static final int PARTITION_TYPE_MARKER = 0x19901873; /** Size of the block reserved for FRP credential, including 4 bytes for the size header. */ private static final int FRP_CREDENTIAL_RESERVED_SIZE = 1000; /** Maximum size of the FRP credential handle that can be stored. */ - private static final int MAX_FRP_CREDENTIAL_HANDLE_SIZE = FRP_CREDENTIAL_RESERVED_SIZE - 4; + @VisibleForTesting + static final int MAX_FRP_CREDENTIAL_HANDLE_SIZE = FRP_CREDENTIAL_RESERVED_SIZE - 4; /** * Size of the block reserved for Test Harness Mode data, including 4 bytes for the size header. */ private static final int TEST_MODE_RESERVED_SIZE = 10000; /** Maximum size of the Test Harness Mode data that can be stored. */ - private static final int MAX_TEST_MODE_DATA_SIZE = TEST_MODE_RESERVED_SIZE - 4; + @VisibleForTesting + static final int MAX_TEST_MODE_DATA_SIZE = TEST_MODE_RESERVED_SIZE - 4; + // Limit to 100k as blocks larger than this might cause strain on Binder. - private static final int MAX_DATA_BLOCK_SIZE = 1024 * 100; + @VisibleForTesting + static final int MAX_DATA_BLOCK_SIZE = 1024 * 100; public static final int DIGEST_SIZE_BYTES = 32; private static final String OEM_UNLOCK_PROP = "sys.oem_unlock_allowed"; @@ -138,12 +147,12 @@ public class PersistentDataBlockService extends SystemService { private final Context mContext; private final String mDataBlockFile; - private final boolean mIsRunningDSU; + private final boolean mIsFileBacked; private final Object mLock = new Object(); private final CountDownLatch mInitDoneSignal = new CountDownLatch(1); private int mAllowedUid = -1; - private long mBlockDeviceSize; + private long mBlockDeviceSize = -1; // Load lazily @GuardedBy("mLock") private boolean mIsWritable = true; @@ -151,13 +160,23 @@ public class PersistentDataBlockService extends SystemService { public PersistentDataBlockService(Context context) { super(context); mContext = context; - mIsRunningDSU = SystemProperties.getBoolean(GSI_RUNNING_PROP, false); - if (mIsRunningDSU) { + if (SystemProperties.getBoolean(GSI_RUNNING_PROP, false)) { + mIsFileBacked = true; mDataBlockFile = GSI_SANDBOX; } else { + mIsFileBacked = false; mDataBlockFile = SystemProperties.get(PERSISTENT_DATA_BLOCK_PROP); } - mBlockDeviceSize = -1; // Load lazily + } + + @VisibleForTesting + PersistentDataBlockService(Context context, boolean isFileBacked, String dataBlockFile, + long blockDeviceSize) { + super(context); + mContext = context; + mIsFileBacked = isFileBacked; + mDataBlockFile = dataBlockFile; + mBlockDeviceSize = blockDeviceSize; } private int getAllowedUid() { @@ -212,6 +231,11 @@ public class PersistentDataBlockService extends SystemService { super.onBootPhase(phase); } + @VisibleForTesting + void setAllowedUid(int uid) { + mAllowedUid = uid; + } + private void formatIfOemUnlockEnabled() { boolean enabled = doGetOemUnlockEnabled(); if (enabled) { @@ -220,7 +244,7 @@ public class PersistentDataBlockService extends SystemService { } } - SystemProperties.set(OEM_UNLOCK_PROP, enabled ? "1" : "0"); + setProperty(OEM_UNLOCK_PROP, enabled ? "1" : "0"); } private void enforceOemUnlockReadPermission() { @@ -278,7 +302,7 @@ public class PersistentDataBlockService extends SystemService { private long getBlockDeviceSize() { synchronized (mLock) { if (mBlockDeviceSize == -1) { - if (mIsRunningDSU) { + if (mIsFileBacked) { mBlockDeviceSize = MAX_DATA_BLOCK_SIZE; } else { mBlockDeviceSize = nativeGetBlockDeviceSize(mDataBlockFile); @@ -289,14 +313,26 @@ public class PersistentDataBlockService extends SystemService { return mBlockDeviceSize; } - private long getFrpCredentialDataOffset() { - return getBlockDeviceSize() - 1 - FRP_CREDENTIAL_RESERVED_SIZE; + @VisibleForTesting + int getMaximumFrpDataSize() { + return (int) (getTestHarnessModeDataOffset() - DIGEST_SIZE_BYTES - HEADER_SIZE); + } + + @VisibleForTesting + long getFrpCredentialDataOffset() { + return getOemUnlockDataOffset() - FRP_CREDENTIAL_RESERVED_SIZE; } - private long getTestHarnessModeDataOffset() { + @VisibleForTesting + long getTestHarnessModeDataOffset() { return getFrpCredentialDataOffset() - TEST_MODE_RESERVED_SIZE; } + @VisibleForTesting + long getOemUnlockDataOffset() { + return getBlockDeviceSize() - 1; + } + private boolean enforceChecksumValidity() { byte[] storedDigest = new byte[DIGEST_SIZE_BYTES]; @@ -385,7 +421,8 @@ public class PersistentDataBlockService extends SystemService { return md.digest(); } - private void formatPartitionLocked(boolean setOemUnlockEnabled) { + @VisibleForTesting + void formatPartitionLocked(boolean setOemUnlockEnabled) { try { FileChannel channel = getBlockOutputChannel(); @@ -448,10 +485,15 @@ public class PersistentDataBlockService extends SystemService { Slog.e(TAG, "unable to access persistent partition", e); return; } finally { - SystemProperties.set(OEM_UNLOCK_PROP, enabled ? "1" : "0"); + setProperty(OEM_UNLOCK_PROP, enabled ? "1" : "0"); } } + @VisibleForTesting + void setProperty(String name, String value) { + SystemProperties.set(name, value); + } + private boolean doGetOemUnlockEnabled() { DataInputStream inputStream; try { @@ -483,6 +525,16 @@ public class PersistentDataBlockService extends SystemService { private native long nativeGetBlockDeviceSize(String path); private native int nativeWipe(String path); + @VisibleForTesting + IPersistentDataBlockService getInterfaceForTesting() { + return IPersistentDataBlockService.Stub.asInterface(mService); + } + + @VisibleForTesting + PersistentDataBlockManagerInternal getInternalInterfaceForTesting() { + return mInternalService; + } + private final IBinder mService = new IPersistentDataBlockService.Stub() { /** @@ -588,7 +640,18 @@ public class PersistentDataBlockService extends SystemService { enforceOemUnlockWritePermission(); synchronized (mLock) { - int ret = nativeWipe(mDataBlockFile); + int ret; + if (mIsFileBacked) { + try { + Files.write(Paths.get(mDataBlockFile), new byte[MAX_DATA_BLOCK_SIZE], + StandardOpenOption.TRUNCATE_EXISTING); + ret = 0; + } catch (IOException e) { + ret = -1; + } + } else { + ret = nativeWipe(mDataBlockFile); + } if (ret < 0) { Slog.e(TAG, "failed to wipe persistent partition"); @@ -699,7 +762,7 @@ public class PersistentDataBlockService extends SystemService { if (!DumpUtils.checkDumpPermission(mContext, TAG, pw)) return; pw.println("mDataBlockFile: " + mDataBlockFile); - pw.println("mIsRunningDSU: " + mIsRunningDSU); + pw.println("mIsFileBacked: " + mIsFileBacked); pw.println("mInitDoneSignal: " + mInitDoneSignal); pw.println("mAllowedUid: " + mAllowedUid); pw.println("mBlockDeviceSize: " + mBlockDeviceSize); diff --git a/services/core/java/com/android/server/pm/ApexManager.java b/services/core/java/com/android/server/pm/ApexManager.java index 26e70c0279e3..21284a05ddad 100644 --- a/services/core/java/com/android/server/pm/ApexManager.java +++ b/services/core/java/com/android/server/pm/ApexManager.java @@ -410,7 +410,7 @@ public abstract class ApexManager { * Map of all apex system services to the jar files they are contained in. */ @GuardedBy("mLock") - private List<ApexSystemServiceInfo> mApexSystemServices = new ArrayList<>(); + private final List<ApexSystemServiceInfo> mApexSystemServices = new ArrayList<>(); /** * Contains the list of {@code packageName}s of apks-in-apex for given @@ -418,14 +418,14 @@ public abstract class ApexManager { * difference between {@code packageName} and {@code apexModuleName}. */ @GuardedBy("mLock") - private ArrayMap<String, List<String>> mApksInApex = new ArrayMap<>(); + private final ArrayMap<String, List<String>> mApksInApex = new ArrayMap<>(); /** * Contains the list of {@code Exception}s that were raised when installing apk-in-apex * inside {@code apexModuleName}. */ @GuardedBy("mLock") - private Map<String, String> mErrorWithApkInApex = new ArrayMap<>(); + private final Map<String, String> mErrorWithApkInApex = new ArrayMap<>(); /** * An APEX is a file format that delivers the apex-payload wrapped in an apk container. The diff --git a/services/core/java/com/android/server/pm/AppsFilterBase.java b/services/core/java/com/android/server/pm/AppsFilterBase.java index 5b32a94c4eac..a5bc2c36a5a8 100644 --- a/services/core/java/com/android/server/pm/AppsFilterBase.java +++ b/services/core/java/com/android/server/pm/AppsFilterBase.java @@ -201,7 +201,7 @@ public abstract class AppsFilterBase implements AppsFilterSnapshot { protected static final boolean CACHE_VALID = true; protected static final boolean CACHE_INVALID = false; - protected AtomicBoolean mCacheValid = new AtomicBoolean(CACHE_INVALID); + protected final AtomicBoolean mCacheValid = new AtomicBoolean(CACHE_INVALID); protected boolean isForceQueryable(int callingAppId) { return mForceQueryable.contains(callingAppId); diff --git a/services/core/java/com/android/server/pm/BackgroundDexOptService.java b/services/core/java/com/android/server/pm/BackgroundDexOptService.java index 9bca9f0192b2..36677df07ca3 100644 --- a/services/core/java/com/android/server/pm/BackgroundDexOptService.java +++ b/services/core/java/com/android/server/pm/BackgroundDexOptService.java @@ -89,7 +89,7 @@ public final class BackgroundDexOptService { private static final long CANCELLATION_WAIT_CHECK_INTERVAL_MS = 200; - private static ComponentName sDexoptServiceName = + private static final ComponentName sDexoptServiceName = new ComponentName("android", BackgroundDexOptJobService.class.getName()); // Possible return codes of individual optimization steps. @@ -179,7 +179,7 @@ public final class BackgroundDexOptService { private final long mDowngradeUnusedAppsThresholdInMillis; - private List<PackagesUpdatedListener> mPackagesUpdatedListeners = new ArrayList<>(); + private final List<PackagesUpdatedListener> mPackagesUpdatedListeners = new ArrayList<>(); private int mThermalStatusCutoff = THERMAL_CUTOFF_DEFAULT; diff --git a/services/core/java/com/android/server/pm/BroadcastHelper.java b/services/core/java/com/android/server/pm/BroadcastHelper.java index e367609e89b6..7b35589ae682 100644 --- a/services/core/java/com/android/server/pm/BroadcastHelper.java +++ b/services/core/java/com/android/server/pm/BroadcastHelper.java @@ -100,6 +100,22 @@ public final class BroadcastHelper { mAppsFilter = injector.getAppsFilter(); } + /** + * Sends a broadcast to registered clients on userId for the given Intent. + */ + void sendPackageBroadcastWithIntent(Intent intent, int userId, boolean isInstantApp, + @Intent.Flags int flags, + int[] visibilityAllowList, + final IIntentReceiver finishedReceiver, + @Nullable BiFunction<Integer, Bundle, Bundle> filterExtrasForReceiver, + @Nullable Bundle bOptions) { + intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT | flags); + SparseArray<int[]> broadcastAllowList = new SparseArray<>(); + broadcastAllowList.put(userId, visibilityAllowList); + broadcastIntent(intent, finishedReceiver, isInstantApp, userId, broadcastAllowList, + filterExtrasForReceiver, bOptions); + } + void sendPackageBroadcast(final String action, final String pkg, final Bundle extras, final int flags, final String targetPkg, final IIntentReceiver finishedReceiver, final int[] userIds, int[] instantUserIds, @@ -152,8 +168,6 @@ public final class BroadcastHelper { for (int userId : userIds) { final Intent intent = new Intent(action, pkg != null ? Uri.fromParts(PACKAGE_SCHEME, pkg, null) : null); - final String[] requiredPermissions = - isInstantApp ? INSTANT_APP_BROADCAST_PERMISSION : null; if (extras != null) { intent.putExtras(extras); } @@ -172,30 +186,41 @@ public final class BroadcastHelper { } intent.putExtra(Intent.EXTRA_USER_HANDLE, userId); intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT | flags); - if (DEBUG_BROADCASTS) { - RuntimeException here = new RuntimeException("here"); - here.fillInStackTrace(); - Slog.d(TAG, "Sending to user " + userId + ": " - + intent.toShortString(false, true, false, false) - + " " + intent.getExtras(), here); - } - final boolean ordered; - if (mAmInternal.isModernQueueEnabled()) { - // When the modern broadcast stack is enabled, deliver all our - // broadcasts as unordered, since the modern stack has better - // support for sequencing cold-starts, and it supports - // delivering resultTo for non-ordered broadcasts - ordered = false; - } else { - ordered = (finishedReceiver != null); - } - mAmInternal.broadcastIntent( - intent, finishedReceiver, requiredPermissions, ordered, userId, - broadcastAllowList == null ? null : broadcastAllowList.get(userId), + broadcastIntent(intent, finishedReceiver, isInstantApp, userId, broadcastAllowList, filterExtrasForReceiver, bOptions); } } + + private void broadcastIntent(Intent intent, IIntentReceiver finishedReceiver, + boolean isInstantApp, int userId, @Nullable SparseArray<int[]> broadcastAllowList, + @Nullable BiFunction<Integer, Bundle, Bundle> filterExtrasForReceiver, + @Nullable Bundle bOptions) { + final String[] requiredPermissions = + isInstantApp ? INSTANT_APP_BROADCAST_PERMISSION : null; + if (DEBUG_BROADCASTS) { + RuntimeException here = new RuntimeException("here"); + here.fillInStackTrace(); + Slog.d(TAG, "Sending to user " + userId + ": " + + intent.toShortString(false, true, false, false) + + " " + intent.getExtras(), here); + } + final boolean ordered; + if (mAmInternal.isModernQueueEnabled()) { + // When the modern broadcast stack is enabled, deliver all our + // broadcasts as unordered, since the modern stack has better + // support for sequencing cold-starts, and it supports + // delivering resultTo for non-ordered broadcasts + ordered = false; + } else { + ordered = (finishedReceiver != null); + } + mAmInternal.broadcastIntent( + intent, finishedReceiver, requiredPermissions, ordered, userId, + broadcastAllowList == null ? null : broadcastAllowList.get(userId), + filterExtrasForReceiver, bOptions); + } + void sendResourcesChangedBroadcast(@NonNull Computer snapshot, boolean mediaStatus, boolean replacing, diff --git a/services/core/java/com/android/server/pm/CrossProfileAppsService.java b/services/core/java/com/android/server/pm/CrossProfileAppsService.java index 486282aa2c04..0bd165ec91fa 100644 --- a/services/core/java/com/android/server/pm/CrossProfileAppsService.java +++ b/services/core/java/com/android/server/pm/CrossProfileAppsService.java @@ -21,7 +21,7 @@ import android.content.pm.CrossProfileAppsInternal; import com.android.server.SystemService; public class CrossProfileAppsService extends SystemService { - private CrossProfileAppsServiceImpl mServiceImpl; + private final CrossProfileAppsServiceImpl mServiceImpl; public CrossProfileAppsService(Context context) { super(context); diff --git a/services/core/java/com/android/server/pm/CrossProfileAppsServiceImpl.java b/services/core/java/com/android/server/pm/CrossProfileAppsServiceImpl.java index 5f28e56e996c..f1dc2849a391 100644 --- a/services/core/java/com/android/server/pm/CrossProfileAppsServiceImpl.java +++ b/services/core/java/com/android/server/pm/CrossProfileAppsServiceImpl.java @@ -78,8 +78,8 @@ public class CrossProfileAppsServiceImpl extends ICrossProfileApps.Stub { private final LocalService mLocalService = new LocalService(); - private Context mContext; - private Injector mInjector; + private final Context mContext; + private final Injector mInjector; public CrossProfileAppsServiceImpl(Context context) { this(context, new InjectorImpl(context)); @@ -783,7 +783,7 @@ public class CrossProfileAppsServiceImpl extends ICrossProfileApps.Stub { } private static class InjectorImpl implements Injector { - private Context mContext; + private final Context mContext; public InjectorImpl(Context context) { mContext = context; diff --git a/services/core/java/com/android/server/pm/CrossProfileDomainInfo.java b/services/core/java/com/android/server/pm/CrossProfileDomainInfo.java index 72f3afc35e99..3313e7234a19 100644 --- a/services/core/java/com/android/server/pm/CrossProfileDomainInfo.java +++ b/services/core/java/com/android/server/pm/CrossProfileDomainInfo.java @@ -22,10 +22,10 @@ import android.os.UserHandle; public final class CrossProfileDomainInfo { /* ResolveInfo for IntentForwarderActivity to send the intent to the other profile */ - ResolveInfo mResolveInfo; + final ResolveInfo mResolveInfo; int mHighestApprovalLevel; @UserIdInt - int mTargetUserId = UserHandle.USER_CURRENT; // default as current user + final int mTargetUserId; CrossProfileDomainInfo(ResolveInfo resolveInfo, int highestApprovalLevel, @UserIdInt int targetUserId) { @@ -37,6 +37,7 @@ public final class CrossProfileDomainInfo { CrossProfileDomainInfo(ResolveInfo resolveInfo, int highestApprovalLevel) { this.mResolveInfo = resolveInfo; this.mHighestApprovalLevel = highestApprovalLevel; + this.mTargetUserId = UserHandle.USER_CURRENT; // default as current user } @Override diff --git a/services/core/java/com/android/server/pm/CrossProfileIntentFilterHelper.java b/services/core/java/com/android/server/pm/CrossProfileIntentFilterHelper.java index 51214faca730..56e9c0a3544b 100644 --- a/services/core/java/com/android/server/pm/CrossProfileIntentFilterHelper.java +++ b/services/core/java/com/android/server/pm/CrossProfileIntentFilterHelper.java @@ -25,11 +25,11 @@ import android.util.ArraySet; * Helper class to manage {@link com.android.server.pm.CrossProfileIntentFilter}s. */ public class CrossProfileIntentFilterHelper { - private Context mContext; - private UserManagerInternal mUserManagerInternal; - private Settings mSettings; - private UserManagerService mUserManagerService; - private PackageManagerTracedLock mLock; + private final Context mContext; + private final UserManagerInternal mUserManagerInternal; + private final Settings mSettings; + private final UserManagerService mUserManagerService; + private final PackageManagerTracedLock mLock; public CrossProfileIntentFilterHelper(Settings settings, UserManagerService userManagerService, PackageManagerTracedLock lock, UserManagerInternal userManagerInternal, diff --git a/services/core/java/com/android/server/pm/CrossProfileResolver.java b/services/core/java/com/android/server/pm/CrossProfileResolver.java index a8da818932fa..1d38bbb2a1bd 100644 --- a/services/core/java/com/android/server/pm/CrossProfileResolver.java +++ b/services/core/java/com/android/server/pm/CrossProfileResolver.java @@ -36,8 +36,8 @@ import java.util.function.Function; */ public abstract class CrossProfileResolver { - protected ComponentResolverApi mComponentResolver; - protected UserManagerService mUserManager; + protected final ComponentResolverApi mComponentResolver; + protected final UserManagerService mUserManager; public CrossProfileResolver(ComponentResolverApi componentResolver, UserManagerService userManager) { diff --git a/services/core/java/com/android/server/pm/DataLoaderManagerService.java b/services/core/java/com/android/server/pm/DataLoaderManagerService.java index 29322e2553e9..888e1c26206c 100644 --- a/services/core/java/com/android/server/pm/DataLoaderManagerService.java +++ b/services/core/java/com/android/server/pm/DataLoaderManagerService.java @@ -50,7 +50,8 @@ public class DataLoaderManagerService extends SystemService { private final HandlerThread mThread; private final Handler mHandler; private final DataLoaderManagerBinderService mBinderService; - private SparseArray<DataLoaderServiceConnection> mServiceConnections = new SparseArray<>(); + private final SparseArray<DataLoaderServiceConnection> mServiceConnections = + new SparseArray<>(); public DataLoaderManagerService(Context context) { super(context); diff --git a/services/core/java/com/android/server/pm/DefaultCrossProfileIntentFilter.java b/services/core/java/com/android/server/pm/DefaultCrossProfileIntentFilter.java index dc5915de5551..db05dd394915 100644 --- a/services/core/java/com/android/server/pm/DefaultCrossProfileIntentFilter.java +++ b/services/core/java/com/android/server/pm/DefaultCrossProfileIntentFilter.java @@ -75,10 +75,10 @@ public final class DefaultCrossProfileIntentFilter { } static final class Builder { - private WatchedIntentFilter mFilter = new WatchedIntentFilter(); - private int mFlags; - private @Direction int mDirection; - private boolean mLetsPersonalDataIntoProfile; + private final WatchedIntentFilter mFilter = new WatchedIntentFilter(); + private final int mFlags; + private final @Direction int mDirection; + private final boolean mLetsPersonalDataIntoProfile; Builder(@Direction int direction, int flags, boolean letsPersonalDataIntoProfile) { mDirection = direction; diff --git a/services/core/java/com/android/server/pm/InstallArgs.java b/services/core/java/com/android/server/pm/InstallArgs.java index dd96a2b84a97..cc6bb007411e 100644 --- a/services/core/java/com/android/server/pm/InstallArgs.java +++ b/services/core/java/com/android/server/pm/InstallArgs.java @@ -67,7 +67,8 @@ final class InstallArgs { // The list of instruction sets supported by this app. This is currently // only used during the rmdex() phase to clean up resources. We can get rid of this // if we move dex files under the common app path. - @Nullable String[] mInstructionSets; + @Nullable + final String[] mInstructionSets; InstallArgs(OriginInfo originInfo, MoveInfo moveInfo, IPackageInstallObserver2 observer, int installFlags, int developmentInstallFlags, InstallSource installSource, diff --git a/services/core/java/com/android/server/pm/InstallRequest.java b/services/core/java/com/android/server/pm/InstallRequest.java index be4fb5c539a9..fc831205f60e 100644 --- a/services/core/java/com/android/server/pm/InstallRequest.java +++ b/services/core/java/com/android/server/pm/InstallRequest.java @@ -153,7 +153,7 @@ final class InstallRequest { private int[] mUpdateBroadcastInstantUserIds = EMPTY_INT_ARRAY; @NonNull - private ArrayList<String> mWarnings = new ArrayList<>(); + private final ArrayList<String> mWarnings = new ArrayList<>(); // New install InstallRequest(InstallingSession params) { diff --git a/services/core/java/com/android/server/pm/InstallingSession.java b/services/core/java/com/android/server/pm/InstallingSession.java index ca8dc2973404..187cadaf4d46 100644 --- a/services/core/java/com/android/server/pm/InstallingSession.java +++ b/services/core/java/com/android/server/pm/InstallingSession.java @@ -68,7 +68,7 @@ class InstallingSession { final MoveInfo mMoveInfo; final IPackageInstallObserver2 mObserver; int mInstallFlags; - int mDevelopmentInstallFlags; + final int mDevelopmentInstallFlags; @NonNull final InstallSource mInstallSource; final String mVolumeUuid; diff --git a/services/core/java/com/android/server/pm/LauncherAppsService.java b/services/core/java/com/android/server/pm/LauncherAppsService.java index 8b82a1c6e7c9..3f4cc4a84ffd 100644 --- a/services/core/java/com/android/server/pm/LauncherAppsService.java +++ b/services/core/java/com/android/server/pm/LauncherAppsService.java @@ -233,7 +233,8 @@ public class LauncherAppsService extends SystemService { final LauncherAppsServiceInternal mInternal; @NonNull - private final RemoteCallbackList<IDumpCallback> mDumpCallbacks = new RemoteCallbackList<>(); + private final RemoteCallbackList<IDumpCallback> mDumpCallbacks = + new RemoteCallbackList<>(); public LauncherAppsImpl(Context context) { mContext = context; @@ -2374,8 +2375,8 @@ public class LauncherAppsService extends SystemService { class PackageLoadingProgressCallback extends PackageManagerInternal.InstalledLoadingProgressCallback { - private String mPackageName; - private UserHandle mUser; + private final String mPackageName; + private final UserHandle mUser; PackageLoadingProgressCallback(String packageName, UserHandle user) { super(mCallbackHandler); diff --git a/services/core/java/com/android/server/pm/PackageInstallerService.java b/services/core/java/com/android/server/pm/PackageInstallerService.java index a4d8632ac077..98eee4dc3b1d 100644 --- a/services/core/java/com/android/server/pm/PackageInstallerService.java +++ b/services/core/java/com/android/server/pm/PackageInstallerService.java @@ -1867,7 +1867,8 @@ public class PackageInstallerService extends IPackageInstaller.Stub implements } static class ParentChildSessionMap { - private TreeMap<PackageInstallerSession, TreeSet<PackageInstallerSession>> mSessionMap; + private final TreeMap<PackageInstallerSession, TreeSet<PackageInstallerSession>> + mSessionMap; private final Comparator<PackageInstallerSession> mSessionCreationComparator = Comparator.comparingLong( diff --git a/services/core/java/com/android/server/pm/PackageInstallerSession.java b/services/core/java/com/android/server/pm/PackageInstallerSession.java index 1be28ca9e915..4b466be8476b 100644 --- a/services/core/java/com/android/server/pm/PackageInstallerSession.java +++ b/services/core/java/com/android/server/pm/PackageInstallerSession.java @@ -491,7 +491,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { @GuardedBy("mLock") private SigningDetails mSigningDetails; @GuardedBy("mLock") - private SparseArray<PackageInstallerSession> mChildSessions = new SparseArray<>(); + private final SparseArray<PackageInstallerSession> mChildSessions = new SparseArray<>(); @GuardedBy("mLock") private int mParentSessionId; @@ -535,7 +535,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { } @GuardedBy("mLock") - private ArraySet<FileEntry> mFiles = new ArraySet<>(); + private final ArraySet<FileEntry> mFiles = new ArraySet<>(); static class PerFileChecksum { private final Checksum[] mChecksums; @@ -556,7 +556,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { } @GuardedBy("mLock") - private ArrayMap<String, PerFileChecksum> mChecksums = new ArrayMap<>(); + private final ArrayMap<String, PerFileChecksum> mChecksums = new ArrayMap<>(); @GuardedBy("mLock") private boolean mSessionApplied; diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index e5f7962e254c..434c00afa8b2 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -6972,14 +6972,50 @@ public class PackageManagerService implements PackageSender, TestUtilityService final Bundle extras = new Bundle(); extras.putInt(Intent.EXTRA_UID, uid); extras.putInt(Intent.EXTRA_USER_HANDLE, userId); - extras.putLong(Intent.EXTRA_TIME, SystemClock.elapsedRealtime()); - mHandler.post(() -> { + if (android.content.pm.Flags.stayStopped()) { + extras.putLong(Intent.EXTRA_TIME, SystemClock.elapsedRealtime()); + // Sent async using the PM handler, to maintain ordering with PACKAGE_UNSTOPPED + mHandler.post(() -> { + mBroadcastHelper.sendPackageBroadcast(Intent.ACTION_PACKAGE_RESTARTED, + packageName, extras, + flags, null, null, + userIds, null, broadcastAllowList, null, + null); + }); + } else { mBroadcastHelper.sendPackageBroadcast(Intent.ACTION_PACKAGE_RESTARTED, packageName, extras, flags, null, null, userIds, null, broadcastAllowList, null, null); - }); + } + mPackageMonitorCallbackHelper.notifyPackageMonitor(Intent.ACTION_PACKAGE_RESTARTED, + packageName, extras, userIds, null /* instantUserIds */, + broadcastAllowList, mHandler); + } + + @Override + public void sendPackageDataClearedBroadcast(@NonNull String packageName, + int uid, int userId, boolean isRestore, boolean isInstantApp) { + int[] visibilityAllowList = + snapshotComputer().getVisibilityAllowList(packageName, userId); + final Intent intent = new Intent(Intent.ACTION_PACKAGE_DATA_CLEARED, + Uri.fromParts("package", packageName, null /* fragment */)); + intent.addFlags(Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND + | Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT); + intent.putExtra(Intent.EXTRA_UID, uid); + intent.putExtra(Intent.EXTRA_USER_HANDLE, userId); + if (isRestore) { + intent.putExtra(Intent.EXTRA_IS_RESTORE, true); + } + if (isInstantApp) { + intent.putExtra(Intent.EXTRA_PACKAGE_NAME, packageName); + } + mBroadcastHelper.sendPackageBroadcastWithIntent(intent, userId, isInstantApp, + 0 /* flags */, visibilityAllowList, null /* finishedReceiver */, + null /* filterExtrasForReceiver */, null /* bOptions */); + mPackageMonitorCallbackHelper.notifyPackageMonitorWithIntent(intent, userId, + visibilityAllowList, mHandler); } } diff --git a/services/core/java/com/android/server/pm/PackageManagerServiceTestParams.java b/services/core/java/com/android/server/pm/PackageManagerServiceTestParams.java index 9428ef6c8ba9..655b9c93d9dd 100644 --- a/services/core/java/com/android/server/pm/PackageManagerServiceTestParams.java +++ b/services/core/java/com/android/server/pm/PackageManagerServiceTestParams.java @@ -60,7 +60,7 @@ public final class PackageManagerServiceTestParams { public IncrementalManager incrementalManager; public PackageInstallerService installerService; public InstantAppRegistry instantAppRegistry; - public ChangedPackagesTracker changedPackagesTracker = new ChangedPackagesTracker(); + public final ChangedPackagesTracker changedPackagesTracker = new ChangedPackagesTracker(); public InstantAppResolverConnection instantAppResolverConnection; public ComponentName instantAppResolverSettingsComponent; public boolean isPreNmr1Upgrade; @@ -118,7 +118,7 @@ public final class PackageManagerServiceTestParams { public SuspendPackageHelper suspendPackageHelper; public DistractingPackageHelper distractingPackageHelper; public StorageEventHelper storageEventHelper; - public Set<String> initialNonStoppedSystemPackages = new ArraySet<>(); + public final Set<String> initialNonStoppedSystemPackages = new ArraySet<>(); public boolean shouldStopSystemPackagesByDefault; public FreeStorageHelper freeStorageHelper; public PackageMonitorCallbackHelper packageMonitorCallbackHelper; diff --git a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java index d4abad8499f2..6f45d2befc6b 100644 --- a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java +++ b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java @@ -2364,7 +2364,7 @@ class PackageManagerShellCommand extends ShellCommand { private boolean mSuccess = false; private int mErrCode = -1; private ParcelFileDescriptor mProfileReadFd = null; - private CountDownLatch mDoneSignal = new CountDownLatch(1); + private final CountDownLatch mDoneSignal = new CountDownLatch(1); @Override public void onSuccess(ParcelFileDescriptor profileReadFd) { @@ -5186,7 +5186,7 @@ class PackageManagerShellCommand extends ShellCommand { private static class LocalIntentReceiver { private final LinkedBlockingQueue<Intent> mResult = new LinkedBlockingQueue<>(); - private IIntentSender.Stub mLocalSender = new IIntentSender.Stub() { + private final IIntentSender.Stub mLocalSender = new IIntentSender.Stub() { @Override public void send(int code, Intent intent, String resolvedType, IBinder whitelistToken, IIntentReceiver finishedReceiver, String requiredPermission, Bundle options) { diff --git a/services/core/java/com/android/server/pm/PackageManagerShellCommandDataLoader.java b/services/core/java/com/android/server/pm/PackageManagerShellCommandDataLoader.java index a09e71311125..c829e1c79ba8 100644 --- a/services/core/java/com/android/server/pm/PackageManagerShellCommandDataLoader.java +++ b/services/core/java/com/android/server/pm/PackageManagerShellCommandDataLoader.java @@ -148,7 +148,8 @@ public class PackageManagerShellCommandDataLoader extends DataLoaderService { private final byte[] mData; private final String mSalt; - private static AtomicLong sGlobalSalt = new AtomicLong((new SecureRandom()).nextLong()); + private static final AtomicLong sGlobalSalt = + new AtomicLong((new SecureRandom()).nextLong()); private static Long nextGlobalSalt() { return sGlobalSalt.incrementAndGet(); } diff --git a/services/core/java/com/android/server/pm/PackageMonitorCallbackHelper.java b/services/core/java/com/android/server/pm/PackageMonitorCallbackHelper.java index 1f12c88ede36..fa9409f88a13 100644 --- a/services/core/java/com/android/server/pm/PackageMonitorCallbackHelper.java +++ b/services/core/java/com/android/server/pm/PackageMonitorCallbackHelper.java @@ -159,16 +159,25 @@ class PackageMonitorCallbackHelper { } if (ArrayUtils.isEmpty(instantUserIds)) { - doNotifyCallbacks( + doNotifyCallbacksByAction( action, pkg, extras, resolvedUserIds, broadcastAllowList, handler); } else { - doNotifyCallbacks(action, pkg, extras, instantUserIds, broadcastAllowList, handler); + doNotifyCallbacksByAction(action, pkg, extras, instantUserIds, broadcastAllowList, + handler); } } catch (RemoteException e) { // do nothing } } + void notifyPackageMonitorWithIntent(Intent intent, + int userId, int[] broadcastAllowList, Handler handler) { + if (!isAllowedCallbackAction(intent.getAction())) { + return; + } + doNotifyCallbacksByIntent(intent, userId, broadcastAllowList, handler); + } + private static boolean isAllowedCallbackAction(String action) { return TextUtils.equals(action, Intent.ACTION_PACKAGE_ADDED) || TextUtils.equals(action, Intent.ACTION_PACKAGE_REMOVED) @@ -177,10 +186,21 @@ class PackageMonitorCallbackHelper { || TextUtils.equals(action, Intent.ACTION_PACKAGES_SUSPENDED) || TextUtils.equals(action, Intent.ACTION_PACKAGES_UNSUSPENDED) || TextUtils.equals(action, Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE) - || TextUtils.equals(action, Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE); + || TextUtils.equals(action, Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE) + || TextUtils.equals(action, Intent.ACTION_PACKAGE_DATA_CLEARED) + || TextUtils.equals(action, Intent.ACTION_PACKAGE_RESTARTED); } - private void doNotifyCallbacks(String action, String pkg, Bundle extras, int[] userIds, + private void doNotifyCallbacksByIntent(Intent intent, int userId, + int[] broadcastAllowList, Handler handler) { + RemoteCallbackList<IRemoteCallback> callbacks; + synchronized (mLock) { + callbacks = mCallbacks; + } + doNotifyCallbacks(callbacks, intent, userId, broadcastAllowList, handler); + } + + private void doNotifyCallbacksByAction(String action, String pkg, Bundle extras, int[] userIds, SparseArray<int[]> broadcastAllowList, Handler handler) { RemoteCallbackList<IRemoteCallback> callbacks; synchronized (mLock) { @@ -200,27 +220,31 @@ class PackageMonitorCallbackHelper { intent.putExtra(Intent.EXTRA_USER_HANDLE, userId); final int[] allowUids = - broadcastAllowList != null ? broadcastAllowList.get(userId) : new int[]{}; + broadcastAllowList != null ? broadcastAllowList.get(userId) : null; + doNotifyCallbacks(callbacks, intent, userId, allowUids, handler); + } + } - handler.post(() -> callbacks.broadcast((callback, user) -> { - RegisterUser registerUser = (RegisterUser) user; - if ((registerUser.getUserId() != UserHandle.USER_ALL) && (registerUser.getUserId() - != userId)) { - return; - } - int registerUid = registerUser.getUid(); - if (broadcastAllowList != null && registerUid != Process.SYSTEM_UID - && !ArrayUtils.contains(allowUids, registerUid)) { - if (DEBUG) { - Slog.w("PackageMonitorCallbackHelper", - "Skip invoke PackageMonitorCallback for " + action + ", uid " - + registerUid); - } - return; + private void doNotifyCallbacks(RemoteCallbackList<IRemoteCallback> callbacks, + Intent intent, int userId, int[] allowUids, Handler handler) { + handler.post(() -> callbacks.broadcast((callback, user) -> { + RegisterUser registerUser = (RegisterUser) user; + if ((registerUser.getUserId() != UserHandle.USER_ALL) && (registerUser.getUserId() + != userId)) { + return; + } + int registerUid = registerUser.getUid(); + if (allowUids != null && registerUid != Process.SYSTEM_UID + && !ArrayUtils.contains(allowUids, registerUid)) { + if (DEBUG) { + Slog.w("PackageMonitorCallbackHelper", + "Skip invoke PackageMonitorCallback for " + intent.getAction() + + ", uid " + registerUid); } - invokeCallback(callback, intent); - })); - } + return; + } + invokeCallback(callback, intent); + })); } private void invokeCallback(IRemoteCallback callback, Intent intent) { diff --git a/services/core/java/com/android/server/pm/PreferredComponent.java b/services/core/java/com/android/server/pm/PreferredComponent.java index 5507e7c7754a..18caafdaa56a 100644 --- a/services/core/java/com/android/server/pm/PreferredComponent.java +++ b/services/core/java/com/android/server/pm/PreferredComponent.java @@ -48,7 +48,7 @@ public class PreferredComponent { public final int mMatch; public final ComponentName mComponent; // Whether this is to be the one that's always chosen. If false, it's the most recently chosen. - public boolean mAlways; + public final boolean mAlways; final String[] mSetPackages; final String[] mSetClasses; diff --git a/services/core/java/com/android/server/pm/SELinuxMMAC.java b/services/core/java/com/android/server/pm/SELinuxMMAC.java index cf5aa7b1eb02..e667bfe36d18 100644 --- a/services/core/java/com/android/server/pm/SELinuxMMAC.java +++ b/services/core/java/com/android/server/pm/SELinuxMMAC.java @@ -68,12 +68,12 @@ public final class SELinuxMMAC { // All policy stanzas read from mac_permissions.xml. This is also the lock // to synchronize access during policy load and access attempts. - private static List<Policy> sPolicies = new ArrayList<>(); + private static final List<Policy> sPolicies = new ArrayList<>(); /** Whether or not the policy files have been read */ private static boolean sPolicyRead; /** Required MAC permissions files */ - private static List<File> sMacPermissions = new ArrayList<>(); + private static final List<File> sMacPermissions = new ArrayList<>(); private static final String DEFAULT_SEINFO = "default"; diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java index 440823c43607..6338965e4a80 100644 --- a/services/core/java/com/android/server/pm/Settings.java +++ b/services/core/java/com/android/server/pm/Settings.java @@ -3944,9 +3944,9 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile mDisabledSysPackages.put(name, ps); } - private static int PRE_M_APP_INFO_FLAG_HIDDEN = 1<<27; - private static int PRE_M_APP_INFO_FLAG_CANT_SAVE_STATE = 1<<28; - private static int PRE_M_APP_INFO_FLAG_PRIVILEGED = 1<<30; + private static final int PRE_M_APP_INFO_FLAG_HIDDEN = 1 << 27; + private static final int PRE_M_APP_INFO_FLAG_CANT_SAVE_STATE = 1 << 28; + private static final int PRE_M_APP_INFO_FLAG_PRIVILEGED = 1 << 30; private void readPackageLPw(TypedXmlPullParser parser, List<UserInfo> users, ArrayMap<String, Long> originalFirstInstallTimes) @@ -5846,7 +5846,7 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile @GuardedBy("mLock") // Tracking the mutations that haven't yet been written to legacy state. // This avoids unnecessary work when writing settings for multiple users. - private AtomicBoolean mIsLegacyPermissionStateStale = new AtomicBoolean(false); + private final AtomicBoolean mIsLegacyPermissionStateStale = new AtomicBoolean(false); @GuardedBy("mLock") // The mapping keys are user ids. diff --git a/services/core/java/com/android/server/pm/ShortcutPackageItem.java b/services/core/java/com/android/server/pm/ShortcutPackageItem.java index 8667888fbb51..12115afcbeec 100644 --- a/services/core/java/com/android/server/pm/ShortcutPackageItem.java +++ b/services/core/java/com/android/server/pm/ShortcutPackageItem.java @@ -53,7 +53,7 @@ abstract class ShortcutPackageItem { protected ShortcutUser mShortcutUser; @GuardedBy("mLock") - protected ShortcutBitmapSaver mShortcutBitmapSaver; + protected final ShortcutBitmapSaver mShortcutBitmapSaver; protected final Object mLock = new Object(); diff --git a/services/core/java/com/android/server/pm/ShortcutService.java b/services/core/java/com/android/server/pm/ShortcutService.java index c6aba2ab9cbe..3adeb4b5925f 100644 --- a/services/core/java/com/android/server/pm/ShortcutService.java +++ b/services/core/java/com/android/server/pm/ShortcutService.java @@ -296,24 +296,26 @@ public class ShortcutService extends IShortcutService.Stub { private final Object mNonPersistentUsersLock = new Object(); private final Object mWtfLock = new Object(); - private static List<ResolveInfo> EMPTY_RESOLVE_INFO = new ArrayList<>(0); + private static final List<ResolveInfo> EMPTY_RESOLVE_INFO = new ArrayList<>(0); // Temporarily reverted to anonymous inner class form due to: b/32554459 - private static Predicate<ResolveInfo> ACTIVITY_NOT_EXPORTED = new Predicate<ResolveInfo>() { - public boolean test(ResolveInfo ri) { - return !ri.activityInfo.exported; - } - }; + private static final Predicate<ResolveInfo> ACTIVITY_NOT_EXPORTED = + new Predicate<ResolveInfo>() { + public boolean test(ResolveInfo ri) { + return !ri.activityInfo.exported; + } + }; - private static Predicate<ResolveInfo> ACTIVITY_NOT_INSTALLED = (ri) -> + private static final Predicate<ResolveInfo> ACTIVITY_NOT_INSTALLED = (ri) -> !isInstalled(ri.activityInfo); // Temporarily reverted to anonymous inner class form due to: b/32554459 - private static Predicate<PackageInfo> PACKAGE_NOT_INSTALLED = new Predicate<PackageInfo>() { - public boolean test(PackageInfo pi) { - return !isInstalled(pi); - } - }; + private static final Predicate<PackageInfo> PACKAGE_NOT_INSTALLED = + new Predicate<PackageInfo>() { + public boolean test(PackageInfo pi) { + return !isInstalled(pi); + } + }; private final Handler mHandler; @@ -4656,8 +4658,8 @@ public class ShortcutService extends IShortcutService.Stub { private boolean mDumpFiles = false; private boolean mDumpDetails = true; - private List<Pattern> mPackagePatterns = new ArrayList<>(); - private List<Integer> mUsers = new ArrayList<>(); + private final List<Pattern> mPackagePatterns = new ArrayList<>(); + private final List<Integer> mUsers = new ArrayList<>(); void addPackageRegex(String regex) { mPackagePatterns.add(Pattern.compile(regex)); diff --git a/services/core/java/com/android/server/pm/SnapshotStatistics.java b/services/core/java/com/android/server/pm/SnapshotStatistics.java index e04a1e5b3569..31541d083fbc 100644 --- a/services/core/java/com/android/server/pm/SnapshotStatistics.java +++ b/services/core/java/com/android/server/pm/SnapshotStatistics.java @@ -157,12 +157,12 @@ public class SnapshotStatistics { private static class BinMap { // The number of bins - private int mCount; + private final int mCount; // The maximum mapped value. Values at or above this are mapped to the // top bin. - private int mMaxBin; + private final int mMaxBin; // A copy of the original key - private int[] mUserKey; + private final int[] mUserKey; /** * Create a bin map. The input is an array of integers, which must be @@ -232,13 +232,13 @@ public class SnapshotStatistics { * The build-time histogram. The total number of rebuilds is the sum over the * histogram entries. */ - public int[] mTimes; + public final int[] mTimes; /** * The reuse histogram. The total number of snapshot uses is the sum over the * histogram entries. */ - public int[] mUsed; + public final int[] mUsed; /** * The total number of rebuilds. This could be computed by summing over the use @@ -477,12 +477,12 @@ public class SnapshotStatistics { /** * Long statistics. These roll over approximately one day. */ - private Stats[] mLong; + private final Stats[] mLong; /** * Short statistics. These roll over approximately every minute; */ - private Stats[] mShort; + private final Stats[] mShort; /** * The time of last logging to the FrameworkStatsLog. diff --git a/services/core/java/com/android/server/pm/UserJourneyLogger.java b/services/core/java/com/android/server/pm/UserJourneyLogger.java index 895edce093b5..651578dc5deb 100644 --- a/services/core/java/com/android/server/pm/UserJourneyLogger.java +++ b/services/core/java/com/android/server/pm/UserJourneyLogger.java @@ -586,7 +586,7 @@ public class UserJourneyLogger { public final long mSessionId; @UserJourney public final int mJourney; - public long mStartTimeInMills; + public final long mStartTimeInMills; @VisibleForTesting public UserJourneySession(long sessionId, @UserJourney int journey) { diff --git a/services/core/java/com/android/server/pm/dex/DexManager.java b/services/core/java/com/android/server/pm/dex/DexManager.java index 6e738daf9315..78c13f854fe4 100644 --- a/services/core/java/com/android/server/pm/dex/DexManager.java +++ b/services/core/java/com/android/server/pm/dex/DexManager.java @@ -119,10 +119,10 @@ public class DexManager { private final int mCriticalBatteryLevel; // Possible outcomes of a dex search. - private static int DEX_SEARCH_NOT_FOUND = 0; // dex file not found - private static int DEX_SEARCH_FOUND_PRIMARY = 1; // dex file is the primary/base apk - private static int DEX_SEARCH_FOUND_SPLIT = 2; // dex file is a split apk - private static int DEX_SEARCH_FOUND_SECONDARY = 3; // dex file is a secondary dex + private static final int DEX_SEARCH_NOT_FOUND = 0; // dex file not found + private static final int DEX_SEARCH_FOUND_PRIMARY = 1; // dex file is the primary/base apk + private static final int DEX_SEARCH_FOUND_SPLIT = 2; // dex file is a split apk + private static final int DEX_SEARCH_FOUND_SECONDARY = 3; // dex file is a secondary dex public DexManager(Context context, PackageDexOptimizer pdo, Installer installer, Object installLock, DynamicCodeLogger dynamicCodeLogger) { @@ -959,8 +959,8 @@ public class DexManager { * Convenience class to store ownership search results. */ private class DexSearchResult { - private String mOwningPackageName; - private int mOutcome; + private final String mOwningPackageName; + private final int mOutcome; public DexSearchResult(String owningPackageName, int outcome) { this.mOwningPackageName = owningPackageName; diff --git a/services/core/java/com/android/server/pm/parsing/PackageCacher.java b/services/core/java/com/android/server/pm/parsing/PackageCacher.java index d3a64bb0b9ac..2ab7db47f8e5 100644 --- a/services/core/java/com/android/server/pm/parsing/PackageCacher.java +++ b/services/core/java/com/android/server/pm/parsing/PackageCacher.java @@ -49,7 +49,7 @@ public class PackageCacher { public static final AtomicInteger sCachedPackageReadCount = new AtomicInteger(); @NonNull - private File mCacheDir; + private final File mCacheDir; public PackageCacher(@NonNull File cacheDir) { this.mCacheDir = cacheDir; diff --git a/services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java b/services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java index 9e20805c2874..c26cf1c9a113 100644 --- a/services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java +++ b/services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java @@ -1132,7 +1132,7 @@ public class PackageInfoUtils { */ public static class CachedApplicationInfoGenerator { // Map from a package name to the corresponding app info. - private ArrayMap<String, ApplicationInfo> mCache = new ArrayMap<>(); + private final ArrayMap<String, ApplicationInfo> mCache = new ArrayMap<>(); /** * {@link PackageInfoUtils#generateApplicationInfo} with a cache. diff --git a/services/core/java/com/android/server/pm/parsing/PackageParser2.java b/services/core/java/com/android/server/pm/parsing/PackageParser2.java index d82a5000844f..3b10c7f2c2a6 100644 --- a/services/core/java/com/android/server/pm/parsing/PackageParser2.java +++ b/services/core/java/com/android/server/pm/parsing/PackageParser2.java @@ -96,19 +96,19 @@ public class PackageParser2 implements AutoCloseable { private static final boolean LOG_PARSE_TIMINGS = Build.IS_DEBUGGABLE; private static final int LOG_PARSE_TIMINGS_THRESHOLD_MS = 100; - private ThreadLocal<ApplicationInfo> mSharedAppInfo = + private final ThreadLocal<ApplicationInfo> mSharedAppInfo = ThreadLocal.withInitial(() -> { ApplicationInfo appInfo = new ApplicationInfo(); appInfo.uid = -1; // Not a valid UID since the app will not be installed yet return appInfo; }); - private ThreadLocal<ParseTypeImpl> mSharedResult; + private final ThreadLocal<ParseTypeImpl> mSharedResult; @Nullable protected PackageCacher mCacher; - private ParsingPackageUtils parsingUtils; + private final ParsingPackageUtils parsingUtils; public PackageParser2(String[] separateProcesses, DisplayMetrics displayMetrics, @Nullable File cacheDir, @NonNull Callback callback) { diff --git a/services/core/java/com/android/server/pm/parsing/pkg/PackageImpl.java b/services/core/java/com/android/server/pm/parsing/pkg/PackageImpl.java index 056aae49ae82..75dd67d97620 100644 --- a/services/core/java/com/android/server/pm/parsing/pkg/PackageImpl.java +++ b/services/core/java/com/android/server/pm/parsing/pkg/PackageImpl.java @@ -113,21 +113,21 @@ public class PackageImpl implements ParsedPackage, AndroidPackageInternal, private static final SparseArray<int[]> EMPTY_INT_ARRAY_SPARSE_ARRAY = new SparseArray<>(); private static final Comparator<ParsedMainComponent> ORDER_COMPARATOR = (first, second) -> Integer.compare(second.getOrder(), first.getOrder()); - public static Parcelling.BuiltIn.ForBoolean sForBoolean = Parcelling.Cache.getOrCreate( + public static final Parcelling.BuiltIn.ForBoolean sForBoolean = Parcelling.Cache.getOrCreate( Parcelling.BuiltIn.ForBoolean.class); - public static ForInternedString sForInternedString = Parcelling.Cache.getOrCreate( + public static final ForInternedString sForInternedString = Parcelling.Cache.getOrCreate( ForInternedString.class); - public static Parcelling.BuiltIn.ForInternedStringArray sForInternedStringArray = Parcelling.Cache.getOrCreate( - Parcelling.BuiltIn.ForInternedStringArray.class); - public static Parcelling.BuiltIn.ForInternedStringList sForInternedStringList = Parcelling.Cache.getOrCreate( - Parcelling.BuiltIn.ForInternedStringList.class); - public static Parcelling.BuiltIn.ForInternedStringValueMap sForInternedStringValueMap = + public static final Parcelling.BuiltIn.ForInternedStringArray sForInternedStringArray = + Parcelling.Cache.getOrCreate(Parcelling.BuiltIn.ForInternedStringArray.class); + public static final Parcelling.BuiltIn.ForInternedStringList sForInternedStringList = + Parcelling.Cache.getOrCreate(Parcelling.BuiltIn.ForInternedStringList.class); + public static final Parcelling.BuiltIn.ForInternedStringValueMap sForInternedStringValueMap = Parcelling.Cache.getOrCreate(Parcelling.BuiltIn.ForInternedStringValueMap.class); - public static Parcelling.BuiltIn.ForStringSet sForStringSet = Parcelling.Cache.getOrCreate( - Parcelling.BuiltIn.ForStringSet.class); - public static Parcelling.BuiltIn.ForInternedStringSet sForInternedStringSet = + public static final Parcelling.BuiltIn.ForStringSet sForStringSet = + Parcelling.Cache.getOrCreate(Parcelling.BuiltIn.ForStringSet.class); + public static final Parcelling.BuiltIn.ForInternedStringSet sForInternedStringSet = Parcelling.Cache.getOrCreate(Parcelling.BuiltIn.ForInternedStringSet.class); - protected static ParsingUtils.StringPairListParceler sForIntentInfoPairs = + protected static final ParsingUtils.StringPairListParceler sForIntentInfoPairs = new ParsingUtils.StringPairListParceler(); protected int versionCode; protected int versionCodeMajor; diff --git a/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java b/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java index d6a7dc6681b9..6f6bb45bad50 100644 --- a/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java +++ b/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java @@ -1748,14 +1748,14 @@ final class DefaultPermissionGrantPolicy { */ private class DelayingPackageManagerCache extends PackageManagerWrapper { /** uid -> permission -> isGranted, flags */ - private SparseArray<ArrayMap<String, PermissionState>> mDelayedPermissionState = + private final SparseArray<ArrayMap<String, PermissionState>> mDelayedPermissionState = new SparseArray<>(); /** userId -> context */ - private SparseArray<Context> mUserContexts = new SparseArray<>(); + private final SparseArray<Context> mUserContexts = new SparseArray<>(); /** Permission name -> info */ - private ArrayMap<String, PermissionInfo> mPermissionInfos = new ArrayMap<>(); + private final ArrayMap<String, PermissionInfo> mPermissionInfos = new ArrayMap<>(); /** Package name -> info */ - private ArrayMap<String, PackageInfo> mPackageInfos = new ArrayMap<>(); + private final ArrayMap<String, PackageInfo> mPackageInfos = new ArrayMap<>(); /** * Apply the cached state diff --git a/services/core/java/com/android/server/pm/pkg/component/ParsedPermissionImpl.java b/services/core/java/com/android/server/pm/pkg/component/ParsedPermissionImpl.java index 70986c3cfbac..4c831d36c9e3 100644 --- a/services/core/java/com/android/server/pm/pkg/component/ParsedPermissionImpl.java +++ b/services/core/java/com/android/server/pm/pkg/component/ParsedPermissionImpl.java @@ -41,7 +41,8 @@ import java.util.Set; public class ParsedPermissionImpl extends ParsedComponentImpl implements ParsedPermission, Parcelable { - private static ForStringSet sForStringSet = Parcelling.Cache.getOrCreate(ForStringSet.class); + private static final ForStringSet sForStringSet = + Parcelling.Cache.getOrCreate(ForStringSet.class); @Nullable private String backgroundPermission; diff --git a/services/core/java/com/android/server/pm/pkg/parsing/ParsingPackageUtils.java b/services/core/java/com/android/server/pm/pkg/parsing/ParsingPackageUtils.java index 8240c47a607b..061698a929d6 100644 --- a/services/core/java/com/android/server/pm/pkg/parsing/ParsingPackageUtils.java +++ b/services/core/java/com/android/server/pm/pkg/parsing/ParsingPackageUtils.java @@ -328,11 +328,11 @@ public class ParsingPackageUtils { return input.success(pkg); } - private String[] mSeparateProcesses; - private DisplayMetrics mDisplayMetrics; + private final String[] mSeparateProcesses; + private final DisplayMetrics mDisplayMetrics; @NonNull - private List<PermissionManager.SplitPermissionInfo> mSplitPermissionInfos; - private Callback mCallback; + private final List<PermissionManager.SplitPermissionInfo> mSplitPermissionInfos; + private final Callback mCallback; public ParsingPackageUtils(String[] separateProcesses, DisplayMetrics displayMetrics, @NonNull List<PermissionManager.SplitPermissionInfo> splitPermissions, diff --git a/services/core/java/com/android/server/pm/resolution/ComponentResolver.java b/services/core/java/com/android/server/pm/resolution/ComponentResolver.java index fac681aaf1c4..0ceda421913d 100644 --- a/services/core/java/com/android/server/pm/resolution/ComponentResolver.java +++ b/services/core/java/com/android/server/pm/resolution/ComponentResolver.java @@ -951,7 +951,7 @@ public class ComponentResolver extends ComponentResolverLocked implements extends MimeGroupsAwareIntentResolver<Pair<ParsedActivity, ParsedIntentInfo>, ResolveInfo> { @NonNull - private UserNeedsBadgingCache mUserNeedsBadging; + private final UserNeedsBadgingCache mUserNeedsBadging; // Default constructor ActivityIntentResolver(@NonNull UserManagerService userManager, diff --git a/services/core/java/com/android/server/pm/resolution/ComponentResolverBase.java b/services/core/java/com/android/server/pm/resolution/ComponentResolverBase.java index 9115775acd05..80cde73ecf1f 100644 --- a/services/core/java/com/android/server/pm/resolution/ComponentResolverBase.java +++ b/services/core/java/com/android/server/pm/resolution/ComponentResolverBase.java @@ -68,7 +68,7 @@ public abstract class ComponentResolverBase extends WatchableImpl implements Com protected ArrayMap<String, ParsedProvider> mProvidersByAuthority; @NonNull - protected UserManagerService mUserManager; + protected final UserManagerService mUserManager; protected ComponentResolverBase(@NonNull UserManagerService userManager) { mUserManager = userManager; diff --git a/services/core/java/com/android/server/pm/verify/domain/DomainVerificationService.java b/services/core/java/com/android/server/pm/verify/domain/DomainVerificationService.java index 11f62e953525..3d4d4eca7f48 100644 --- a/services/core/java/com/android/server/pm/verify/domain/DomainVerificationService.java +++ b/services/core/java/com/android/server/pm/verify/domain/DomainVerificationService.java @@ -2005,9 +2005,9 @@ public class DomainVerificationService extends SystemService private static class GetAttachedResult { @Nullable - private DomainVerificationPkgState mPkgState; + private final DomainVerificationPkgState mPkgState; - private int mErrorCode; + private final int mErrorCode; GetAttachedResult(@Nullable DomainVerificationPkgState pkgState, int errorCode) { mPkgState = pkgState; diff --git a/services/core/java/com/android/server/pm/verify/domain/models/DomainVerificationPkgState.java b/services/core/java/com/android/server/pm/verify/domain/models/DomainVerificationPkgState.java index 6c56360177d8..d71dbbb5d53b 100644 --- a/services/core/java/com/android/server/pm/verify/domain/models/DomainVerificationPkgState.java +++ b/services/core/java/com/android/server/pm/verify/domain/models/DomainVerificationPkgState.java @@ -40,7 +40,7 @@ public class DomainVerificationPkgState { private final String mPackageName; @NonNull - private UUID mId; + private final UUID mId; /** * Whether or not the package declares any autoVerify domains. This is separate from an empty diff --git a/services/core/java/com/android/server/policy/AppOpsPolicy.java b/services/core/java/com/android/server/policy/AppOpsPolicy.java index c2821aef2142..b83421fe78d7 100644 --- a/services/core/java/com/android/server/policy/AppOpsPolicy.java +++ b/services/core/java/com/android/server/policy/AppOpsPolicy.java @@ -50,12 +50,11 @@ import android.util.Log; import android.util.SparseArray; import com.android.internal.annotations.GuardedBy; +import com.android.internal.util.function.HeptFunction; import com.android.internal.util.function.HexFunction; -import com.android.internal.util.function.NonaFunction; import com.android.internal.util.function.QuadFunction; +import com.android.internal.util.function.QuintConsumer; import com.android.internal.util.function.QuintFunction; -import com.android.internal.util.function.TriConsumer; -import com.android.internal.util.function.TriFunction; import com.android.internal.util.function.UndecFunction; import com.android.server.LocalServices; @@ -230,12 +229,10 @@ public final class AppOpsPolicy implements AppOpsManagerInternal.CheckOpsDelegat } @Override - public int checkOperation(int code, AttributionSource attributionSource, boolean raw, - TriFunction<Integer, AttributionSource, Boolean, Integer> superImpl) { - final int uid = attributionSource.getUid(); - final AttributionSource resolvedAttributionSource = - attributionSource.withUid(resolveUid(code, uid)); - return superImpl.apply(code, resolvedAttributionSource, raw); + public int checkOperation(int code, int uid, String packageName, + @Nullable String attributionTag, boolean raw, + QuintFunction<Integer, Integer, String, String, Boolean, Integer> superImpl) { + return superImpl.apply(code, resolveUid(code, uid), packageName, attributionTag, raw); } @Override @@ -245,25 +242,21 @@ public final class AppOpsPolicy implements AppOpsManagerInternal.CheckOpsDelegat } @Override - public SyncNotedAppOp noteOperation(int code, AttributionSource attributionSource, - boolean shouldCollectAsyncNotedOp, @Nullable - String message, boolean shouldCollectMessage, - @NonNull QuintFunction<Integer, AttributionSource, Boolean, String, Boolean, - SyncNotedAppOp> superImpl) { - final int uid = attributionSource.getUid(); - final AttributionSource resolvedAttributionSource = - attributionSource.withUid(resolveUid(code, uid)); - return superImpl.apply(resolveDatasourceOp(code, uid, attributionSource.getPackageName(), - attributionSource.getAttributionTag()), resolvedAttributionSource, - shouldCollectAsyncNotedOp, message, shouldCollectMessage); + public SyncNotedAppOp noteOperation(int code, int uid, @Nullable String packageName, + @Nullable String attributionTag, boolean shouldCollectAsyncNotedOp, @Nullable + String message, boolean shouldCollectMessage, @NonNull HeptFunction<Integer, Integer, + String, String, Boolean, String, Boolean, SyncNotedAppOp> superImpl) { + return superImpl.apply(resolveDatasourceOp(code, uid, packageName, attributionTag), + resolveUid(code, uid), packageName, attributionTag, shouldCollectAsyncNotedOp, + message, shouldCollectMessage); } @Override public SyncNotedAppOp noteProxyOperation(int code, @NonNull AttributionSource attributionSource, boolean shouldCollectAsyncNotedOp, @Nullable String message, boolean shouldCollectMessage, boolean skipProxyOperation, @NonNull HexFunction<Integer, - AttributionSource, Boolean, String, Boolean, Boolean, - SyncNotedAppOp> superImpl) { + AttributionSource, Boolean, String, Boolean, Boolean, + SyncNotedAppOp> superImpl) { return superImpl.apply(resolveDatasourceOp(code, attributionSource.getUid(), attributionSource.getPackageName(), attributionSource.getAttributionTag()), attributionSource, shouldCollectAsyncNotedOp, message, shouldCollectMessage, @@ -271,21 +264,17 @@ public final class AppOpsPolicy implements AppOpsManagerInternal.CheckOpsDelegat } @Override - public SyncNotedAppOp startOperation(IBinder token, int code, - AttributionSource attributionSource, + public SyncNotedAppOp startOperation(IBinder token, int code, int uid, + @Nullable String packageName, @Nullable String attributionTag, boolean startIfModeDefault, boolean shouldCollectAsyncNotedOp, String message, boolean shouldCollectMessage, @AttributionFlags int attributionFlags, - int attributionChainId, - @NonNull NonaFunction<IBinder, Integer, AttributionSource, Boolean, Boolean, String, - Boolean, Integer, Integer, - SyncNotedAppOp> superImpl) { - final int uid = attributionSource.getUid(); - final AttributionSource resolvedAttributionSource = - attributionSource.withUid(resolveUid(code, uid)); - return superImpl.apply(token, resolveDatasourceOp(code, uid, - attributionSource.getPackageName(), attributionSource.getAttributionTag()), - resolvedAttributionSource, startIfModeDefault, shouldCollectAsyncNotedOp, message, - shouldCollectMessage, attributionFlags, attributionChainId); + int attributionChainId, @NonNull UndecFunction<IBinder, Integer, Integer, String, + String, Boolean, Boolean, String, Boolean, Integer, Integer, + SyncNotedAppOp> superImpl) { + return superImpl.apply(token, resolveDatasourceOp(code, uid, packageName, attributionTag), + resolveUid(code, uid), packageName, attributionTag, startIfModeDefault, + shouldCollectAsyncNotedOp, message, shouldCollectMessage, attributionFlags, + attributionChainId); } @Override @@ -304,14 +293,11 @@ public final class AppOpsPolicy implements AppOpsManagerInternal.CheckOpsDelegat } @Override - public void finishOperation(IBinder clientId, int code, AttributionSource attributionSource, - @NonNull TriConsumer<IBinder, Integer, AttributionSource> superImpl) { - final int uid = attributionSource.getUid(); - final AttributionSource resolvedAttributionSource = - attributionSource.withUid(resolveUid(code, uid)); - superImpl.accept(clientId, resolveDatasourceOp(code, uid, - attributionSource.getPackageName(), attributionSource.getAttributionTag()), - resolvedAttributionSource); + public void finishOperation(IBinder clientId, int code, int uid, String packageName, + String attributionTag, + @NonNull QuintConsumer<IBinder, Integer, Integer, String, String> superImpl) { + superImpl.accept(clientId, resolveDatasourceOp(code, uid, packageName, attributionTag), + resolveUid(code, uid), packageName, attributionTag); } @Override diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index 45ca690ba20f..cf1036c03c83 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -549,6 +549,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { int mLidNavigationAccessibility; int mShortPressOnPowerBehavior; private boolean mShouldEarlyShortPressOnPower; + private boolean mShouldEarlyShortPressOnStemPrimary; int mLongPressOnPowerBehavior; long mLongPressOnPowerAssistantTimeoutMs; int mVeryLongPressOnPowerBehavior; @@ -2748,6 +2749,9 @@ public class PhoneWindowManager implements WindowManagerPolicy { @Override void onPress(long downTime) { + if (mShouldEarlyShortPressOnStemPrimary) { + return; + } stemPrimaryPress(1 /*count*/); } @@ -2760,6 +2764,13 @@ public class PhoneWindowManager implements WindowManagerPolicy { void onMultiPress(long downTime, int count) { stemPrimaryPress(count); } + + @Override + void onKeyUp(long eventTime, int count) { + if (mShouldEarlyShortPressOnStemPrimary && count == 1) { + stemPrimaryPress(1 /*pressCount*/); + } + } } private void initSingleKeyGestureRules(Looper looper) { @@ -2929,6 +2940,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { mShouldEarlyShortPressOnPower = mContext.getResources() .getBoolean(com.android.internal.R.bool.config_shortPressEarlyOnPower); + mShouldEarlyShortPressOnStemPrimary = mContext.getResources().getBoolean( + com.android.internal.R.bool.config_shortPressEarlyOnStemPrimary); mStylusButtonsEnabled = Settings.Secure.getIntForUser(resolver, Secure.STYLUS_BUTTONS_ENABLED, 1, UserHandle.USER_CURRENT) == 1; diff --git a/services/core/java/com/android/server/power/OWNERS b/services/core/java/com/android/server/power/OWNERS index a0e91ad7cf45..1970ee4b4463 100644 --- a/services/core/java/com/android/server/power/OWNERS +++ b/services/core/java/com/android/server/power/OWNERS @@ -3,3 +3,5 @@ santoscordon@google.com philipjunker@google.com per-file ThermalManagerService.java=wvw@google.com +per-file LowPowerStandbyController.java=qingxun@google.com +per-file LowPowerStandbyControllerInternal.java=qingxun@google.com
\ No newline at end of file diff --git a/services/core/java/com/android/server/power/PowerGroup.java b/services/core/java/com/android/server/power/PowerGroup.java index 3dbd2f88385e..6a0fe90a1e65 100644 --- a/services/core/java/com/android/server/power/PowerGroup.java +++ b/services/core/java/com/android/server/power/PowerGroup.java @@ -395,7 +395,8 @@ public class PowerGroup { @VisibleForTesting int getDesiredScreenPolicyLocked(boolean quiescent, boolean dozeAfterScreenOff, - boolean bootCompleted, boolean screenBrightnessBoostInProgress) { + boolean bootCompleted, boolean screenBrightnessBoostInProgress, + boolean brightWhenDozing) { final int wakefulness = getWakefulnessLocked(); final int wakeLockSummary = getWakeLockSummaryLocked(); if (wakefulness == WAKEFULNESS_ASLEEP || quiescent) { @@ -407,8 +408,12 @@ public class PowerGroup { if (dozeAfterScreenOff) { return DisplayPowerRequest.POLICY_OFF; } + if (brightWhenDozing) { + return DisplayPowerRequest.POLICY_BRIGHT; + } // Fall through and preserve the current screen policy if not configured to - // doze after screen off. This causes the screen off transition to be skipped. + // bright when dozing or doze after screen off. This causes the screen off transition + // to be skipped. } if ((wakeLockSummary & WAKE_LOCK_SCREEN_BRIGHT) != 0 @@ -429,9 +434,10 @@ public class PowerGroup { boolean boostScreenBrightness, int dozeScreenState, float dozeScreenBrightness, boolean overrideDrawWakeLock, PowerSaveState powerSaverState, boolean quiescent, boolean dozeAfterScreenOff, boolean bootCompleted, - boolean screenBrightnessBoostInProgress, boolean waitForNegativeProximity) { + boolean screenBrightnessBoostInProgress, boolean waitForNegativeProximity, + boolean brightWhenDozing) { mDisplayPowerRequest.policy = getDesiredScreenPolicyLocked(quiescent, dozeAfterScreenOff, - bootCompleted, screenBrightnessBoostInProgress); + bootCompleted, screenBrightnessBoostInProgress, brightWhenDozing); mDisplayPowerRequest.screenBrightnessOverride = screenBrightnessOverride; mDisplayPowerRequest.useProximitySensor = useProximitySensor; mDisplayPowerRequest.boostScreenBrightness = boostScreenBrightness; diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java index 8ce0c72101db..ec5172fca5fa 100644 --- a/services/core/java/com/android/server/power/PowerManagerService.java +++ b/services/core/java/com/android/server/power/PowerManagerService.java @@ -546,6 +546,10 @@ public final class PowerManagerService extends SystemService // True if doze should not be started until after the screen off transition. private boolean mDozeAfterScreenOff; + // True if bright policy should be applied when we have entered dozing wakefulness but haven't + // started doze component. + private boolean mBrightWhenDozingConfig; + // The minimum screen off timeout, in milliseconds. private long mMinimumScreenOffTimeoutConfig; @@ -1492,6 +1496,8 @@ public final class PowerManagerService extends SystemService com.android.internal.R.bool.config_dreamsDisabledByAmbientModeSuppressionConfig); mDozeAfterScreenOff = resources.getBoolean( com.android.internal.R.bool.config_dozeAfterScreenOffByDefault); + mBrightWhenDozingConfig = resources.getBoolean( + com.android.internal.R.bool.config_brightWhenDozing); mMinimumScreenOffTimeoutConfig = resources.getInteger( com.android.internal.R.integer.config_minimumScreenOffTimeout); mMaximumScreenDimDurationConfig = resources.getInteger( @@ -3560,7 +3566,8 @@ public final class PowerManagerService extends SystemService .getBatterySaverPolicy(ServiceType.SCREEN_BRIGHTNESS) : new PowerSaveState.Builder().build(), sQuiescent, mDozeAfterScreenOff, mBootCompleted, - mScreenBrightnessBoostInProgress, mRequestWaitForNegativeProximity); + mScreenBrightnessBoostInProgress, mRequestWaitForNegativeProximity, + mBrightWhenDozingConfig); int wakefulness = powerGroup.getWakefulnessLocked(); if (DEBUG_SPEW) { Slog.d(TAG, "updateDisplayPowerStateLocked: displayReady=" + ready @@ -3635,7 +3642,7 @@ public final class PowerManagerService extends SystemService int getDesiredScreenPolicyLocked(int groupId) { return mPowerGroups.get(groupId).getDesiredScreenPolicyLocked(sQuiescent, mDozeAfterScreenOff, mBootCompleted, - mScreenBrightnessBoostInProgress); + mScreenBrightnessBoostInProgress, mBrightWhenDozingConfig); } @VisibleForTesting @@ -4655,6 +4662,7 @@ public final class PowerManagerService extends SystemService pw.println(" mDreamsActivateOnSleepSetting=" + mDreamsActivateOnSleepSetting); pw.println(" mDreamsActivateOnDockSetting=" + mDreamsActivateOnDockSetting); pw.println(" mDozeAfterScreenOff=" + mDozeAfterScreenOff); + pw.println(" mBrightWhenDozingConfig=" + mBrightWhenDozingConfig); pw.println(" mMinimumScreenOffTimeoutConfig=" + mMinimumScreenOffTimeoutConfig); pw.println(" mMaximumScreenDimDurationConfig=" + mMaximumScreenDimDurationConfig); pw.println(" mMaximumScreenDimRatioConfig=" + mMaximumScreenDimRatioConfig); 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 a388932cb708..b8e581f32a58 100644 --- a/services/core/java/com/android/server/power/stats/CpuPowerStatsCollector.java +++ b/services/core/java/com/android/server/power/stats/CpuPowerStatsCollector.java @@ -592,6 +592,10 @@ public class CpuPowerStatsCollector extends PowerStatsCollector { public void dumpCpuPowerBracketsLocked(PrintWriter pw) { ensureInitialized(); + if (mLayout == null) { + return; + } + pw.println("CPU power brackets; cluster/freq in MHz(avg current in mA):"); for (int bracket = 0; bracket < mLayout.getCpuPowerBracketCount(); bracket++) { pw.print(" "); diff --git a/services/core/java/com/android/server/timedetector/TEST_MAPPING b/services/core/java/com/android/server/timedetector/TEST_MAPPING index f1bfea760792..5c37680af745 100644 --- a/services/core/java/com/android/server/timedetector/TEST_MAPPING +++ b/services/core/java/com/android/server/timedetector/TEST_MAPPING @@ -1,14 +1,6 @@ { "presubmit": [ { - "name": "FrameworksServicesTests", - "options": [ - { - "include-filter": "com.android.server.timedetector." - } - ] - }, - { "name": "CtsTimeTestCases", "options": [ { @@ -16,5 +8,11 @@ } ] } + ], + // TODO(b/182461754): Change to "presubmit" when go/test-mapping-slo-guide allows. + "postsubmit": [ + { + "name": "FrameworksTimeServicesTests" + } ] } diff --git a/services/core/java/com/android/server/timedetector/TimeDetectorService.java b/services/core/java/com/android/server/timedetector/TimeDetectorService.java index d88f4268434b..83270f6b7b56 100644 --- a/services/core/java/com/android/server/timedetector/TimeDetectorService.java +++ b/services/core/java/com/android/server/timedetector/TimeDetectorService.java @@ -19,7 +19,6 @@ package com.android.server.timedetector; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.UserIdInt; -import android.app.ActivityManager; import android.app.time.ExternalTimeSuggestion; import android.app.time.ITimeDetectorListener; import android.app.time.TimeCapabilitiesAndConfig; @@ -30,7 +29,6 @@ import android.app.timedetector.ITimeDetectorService; import android.app.timedetector.ManualTimeSuggestion; import android.app.timedetector.TelephonyTimeSuggestion; import android.content.Context; -import android.os.Binder; import android.os.Handler; import android.os.IBinder; import android.os.ParcelableException; @@ -166,8 +164,7 @@ public final class TimeDetectorService extends ITimeDetectorService.Stub */ boolean updateConfiguration(@UserIdInt int userId, @NonNull TimeConfiguration configuration) { // Resolve constants like USER_CURRENT to the true user ID as needed. - int resolvedUserId = ActivityManager.handleIncomingUser(Binder.getCallingPid(), - Binder.getCallingUid(), userId, false, false, "updateConfiguration", null); + int resolvedUserId = mCallerIdentityInjector.resolveUserId(userId, "updateConfiguration"); enforceManageTimeDetectorPermission(); @@ -280,11 +277,11 @@ public final class TimeDetectorService extends ITimeDetectorService.Stub public TimeState getTimeState() { enforceManageTimeDetectorPermission(); - final long token = Binder.clearCallingIdentity(); + final long token = mCallerIdentityInjector.clearCallingIdentity(); try { return mTimeDetectorStrategy.getTimeState(); } finally { - Binder.restoreCallingIdentity(token); + mCallerIdentityInjector.restoreCallingIdentity(token); } } @@ -295,11 +292,11 @@ public final class TimeDetectorService extends ITimeDetectorService.Stub void setTimeState(@NonNull TimeState timeState) { enforceManageTimeDetectorPermission(); - final long token = Binder.clearCallingIdentity(); + final long token = mCallerIdentityInjector.clearCallingIdentity(); try { mTimeDetectorStrategy.setTimeState(timeState); } finally { - Binder.restoreCallingIdentity(token); + mCallerIdentityInjector.restoreCallingIdentity(token); } } @@ -308,11 +305,11 @@ public final class TimeDetectorService extends ITimeDetectorService.Stub enforceManageTimeDetectorPermission(); Objects.requireNonNull(time); - final long token = Binder.clearCallingIdentity(); + final long token = mCallerIdentityInjector.clearCallingIdentity(); try { return mTimeDetectorStrategy.confirmTime(time); } finally { - Binder.restoreCallingIdentity(token); + mCallerIdentityInjector.restoreCallingIdentity(token); } } @@ -324,13 +321,13 @@ public final class TimeDetectorService extends ITimeDetectorService.Stub // This calls suggestManualTime() as the logic is identical, it only differs in the // permission required, which is handled on the line above. int userId = mCallerIdentityInjector.getCallingUserId(); - final long token = Binder.clearCallingIdentity(); + final long token = mCallerIdentityInjector.clearCallingIdentity(); try { final boolean bypassUserPolicyChecks = false; return mTimeDetectorStrategy.suggestManualTime( userId, suggestion, bypassUserPolicyChecks); } finally { - Binder.restoreCallingIdentity(token); + mCallerIdentityInjector.restoreCallingIdentity(token); } } @@ -377,11 +374,11 @@ public final class TimeDetectorService extends ITimeDetectorService.Stub void clearLatestNetworkTime() { enforceSuggestNetworkTimePermission(); - final long token = Binder.clearCallingIdentity(); + final long token = mCallerIdentityInjector.clearCallingIdentity(); try { mTimeDetectorStrategy.clearLatestNetworkSuggestion(); } finally { - Binder.restoreCallingIdentity(token); + mCallerIdentityInjector.restoreCallingIdentity(token); } } @@ -473,7 +470,7 @@ public final class TimeDetectorService extends ITimeDetectorService.Stub void clearNetworkTimeForSystemClockForTests() { enforceSuggestNetworkTimePermission(); - final long token = Binder.clearCallingIdentity(); + final long token = mCallerIdentityInjector.clearCallingIdentity(); try { // TODO(b/222295093): Remove this condition once we can be sure that all uses of // NtpTrustedTime result in a suggestion being made to the time detector. @@ -485,7 +482,7 @@ public final class TimeDetectorService extends ITimeDetectorService.Stub mNtpTrustedTime.clearCachedTimeResult(); } } finally { - Binder.restoreCallingIdentity(token); + mCallerIdentityInjector.restoreCallingIdentity(token); } } diff --git a/services/core/java/com/android/server/timezonedetector/CallerIdentityInjector.java b/services/core/java/com/android/server/timezonedetector/CallerIdentityInjector.java index 1500cfaeb3a2..1f1d83fefc59 100644 --- a/services/core/java/com/android/server/timezonedetector/CallerIdentityInjector.java +++ b/services/core/java/com/android/server/timezonedetector/CallerIdentityInjector.java @@ -17,6 +17,7 @@ package com.android.server.timezonedetector; import android.annotation.UserIdInt; +import android.app.ActivityManager; import android.os.Binder; import android.os.UserHandle; @@ -29,6 +30,12 @@ public interface CallerIdentityInjector { /** A singleton for the real implementation of {@link CallerIdentityInjector}. */ CallerIdentityInjector REAL = new Real(); + /** + * A {@link ActivityManager#handleIncomingUser} call. This can be used to map the abstract + * user ID value USER_CURRENT to the actual user ID. + */ + @UserIdInt int resolveUserId(@UserIdInt int userId, String debugInfo); + /** A {@link UserHandle#getCallingUserId()} call. */ @UserIdInt int getCallingUserId(); @@ -45,6 +52,12 @@ public interface CallerIdentityInjector { } @Override + public int resolveUserId(@UserIdInt int userId, String debugName) { + return ActivityManager.handleIncomingUser(Binder.getCallingPid(), + Binder.getCallingUid(), userId, false, false, debugName, null); + } + + @Override public int getCallingUserId() { return UserHandle.getCallingUserId(); } diff --git a/services/core/java/com/android/server/timezonedetector/TEST_MAPPING b/services/core/java/com/android/server/timezonedetector/TEST_MAPPING index 455accdd198a..63dd7b42f23b 100644 --- a/services/core/java/com/android/server/timezonedetector/TEST_MAPPING +++ b/services/core/java/com/android/server/timezonedetector/TEST_MAPPING @@ -1,14 +1,6 @@ { "presubmit": [ - { - "name": "FrameworksServicesTests", - "options": [ - { - "include-filter": "com.android.server.timezonedetector." - } - ] - }, - { + { "name": "CtsTimeTestCases", "options": [ { @@ -21,6 +13,9 @@ "postsubmit": [ { "name": "CtsLocationTimeZoneManagerHostTest" + }, + { + "name": "FrameworksTimeServicesTests" } ] } diff --git a/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorService.java b/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorService.java index dac4bf8cb6e6..d914544566ff 100644 --- a/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorService.java +++ b/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorService.java @@ -19,7 +19,6 @@ package com.android.server.timezonedetector; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.UserIdInt; -import android.app.ActivityManager; import android.app.time.ITimeZoneDetectorListener; import android.app.time.TimeZoneCapabilitiesAndConfig; import android.app.time.TimeZoneConfiguration; @@ -28,7 +27,6 @@ import android.app.timezonedetector.ITimeZoneDetectorService; import android.app.timezonedetector.ManualTimeZoneSuggestion; import android.app.timezonedetector.TelephonyTimeZoneSuggestion; import android.content.Context; -import android.os.Binder; import android.os.Handler; import android.os.IBinder; import android.os.RemoteException; @@ -168,8 +166,8 @@ public final class TimeZoneDetectorService extends ITimeZoneDetectorService.Stub enforceManageTimeZoneDetectorPermission(); // Resolve constants like USER_CURRENT to the true user ID as needed. - int resolvedUserId = ActivityManager.handleIncomingUser(Binder.getCallingPid(), - Binder.getCallingUid(), userId, false, false, "getCapabilitiesAndConfig", null); + int resolvedUserId = + mCallerIdentityInjector.resolveUserId(userId, "getCapabilitiesAndConfig"); final long token = mCallerIdentityInjector.clearCallingIdentity(); try { @@ -190,8 +188,7 @@ public final class TimeZoneDetectorService extends ITimeZoneDetectorService.Stub boolean updateConfiguration( @UserIdInt int userId, @NonNull TimeZoneConfiguration configuration) { // Resolve constants like USER_CURRENT to the true user ID as needed. - int resolvedUserId = ActivityManager.handleIncomingUser(Binder.getCallingPid(), - Binder.getCallingUid(), userId, false, false, "updateConfiguration", null); + int resolvedUserId = mCallerIdentityInjector.resolveUserId(userId, "updateConfiguration"); enforceManageTimeZoneDetectorPermission(); diff --git a/services/core/java/com/android/server/wm/ActivitySnapshotController.java b/services/core/java/com/android/server/wm/ActivitySnapshotController.java index 52ab9b855c7c..86be6ba5e6ad 100644 --- a/services/core/java/com/android/server/wm/ActivitySnapshotController.java +++ b/services/core/java/com/android/server/wm/ActivitySnapshotController.java @@ -237,22 +237,8 @@ class ActivitySnapshotController extends AbsAppSnapshotController<ActivityRecord } if (containsFile(code, userId)) { synchronized (mSnapshotPersistQueue.getLock()) { - mSnapshotPersistQueue.sendToQueueLocked( - new SnapshotPersistQueue.WriteQueueItem(mPersistInfoProvider) { - @Override - void write() { - Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, - "load_activity_snapshot"); - final TaskSnapshot snapshot = mSnapshotLoader.loadTask(code, - userId, false /* loadLowResolutionBitmap */); - synchronized (mService.getWindowManagerLock()) { - if (snapshot != null && !ar.finishing) { - mCache.putSnapshot(ar, snapshot); - } - } - Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER); - } - }); + mSnapshotPersistQueue.insertQueueAtFirstLocked( + new LoadActivitySnapshotItem(ar, code, userId, mPersistInfoProvider)); } } } @@ -273,6 +259,42 @@ class ActivitySnapshotController extends AbsAppSnapshotController<ActivityRecord resetTmpFields(); } + class LoadActivitySnapshotItem extends SnapshotPersistQueue.WriteQueueItem { + private final int mCode; + private final int mUserId; + private final ActivityRecord mActivityRecord; + + LoadActivitySnapshotItem(@NonNull ActivityRecord ar, int code, int userId, + @NonNull PersistInfoProvider persistInfoProvider) { + super(persistInfoProvider); + mActivityRecord = ar; + mCode = code; + mUserId = userId; + } + + @Override + void write() { + Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, + "load_activity_snapshot"); + final TaskSnapshot snapshot = mSnapshotLoader.loadTask(mCode, + mUserId, false /* loadLowResolutionBitmap */); + synchronized (mService.getWindowManagerLock()) { + if (snapshot != null && !mActivityRecord.finishing) { + mCache.putSnapshot(mActivityRecord, snapshot); + } + } + Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER); + } + + @Override + public boolean equals(Object o) { + if (o == null || getClass() != o.getClass()) return false; + final LoadActivitySnapshotItem other = (LoadActivitySnapshotItem) o; + return mCode == other.mCode && mUserId == other.mUserId + && mPersistInfoProvider == other.mPersistInfoProvider; + } + } + void recordSnapshot(ActivityRecord activity) { if (shouldDisableSnapshots()) { return; @@ -571,7 +593,8 @@ class ActivitySnapshotController extends AbsAppSnapshotController<ActivityRecord for (int i = savedFileCount - 1; i > removeTillIndex; --i) { final UserSavedFile usf = mSavedFilesInOrder.remove(i); if (usf != null) { - mUserSavedFiles.remove(usf.mFileId); + final SparseArray<UserSavedFile> records = getUserFiles(usf.mUserId); + records.remove(usf.mFileId); usfs.add(usf); } } diff --git a/services/core/java/com/android/server/wm/ActivityStartController.java b/services/core/java/com/android/server/wm/ActivityStartController.java index 4a5311b14397..2c492035140b 100644 --- a/services/core/java/com/android/server/wm/ActivityStartController.java +++ b/services/core/java/com/android/server/wm/ActivityStartController.java @@ -269,12 +269,27 @@ public class ActivityStartController { } } + /** + * Start intent as a package. + * + * @param uid Make a call as if this UID did. + * @param callingPackage Make a call as if this package did. + * @param callingFeatureId Make a call as if this feature in the package did. + * @param intent Intent to start. + * @param userId Start the intents on this user. + * @param validateIncomingUser Set true to skip checking {@code userId} with the calling UID. + * @param originatingPendingIntent PendingIntentRecord that originated this activity start or + * null if not originated by PendingIntent + * @param forcedBalByPiSender If set to allow, the + * PendingIntent's sender will try to force allow background activity starts. + * This is only possible if the sender of the PendingIntent is a system process. + */ final int startActivityInPackage(int uid, int realCallingPid, int realCallingUid, String callingPackage, @Nullable String callingFeatureId, Intent intent, String resolvedType, IBinder resultTo, String resultWho, int requestCode, int startFlags, SafeActivityOptions options, int userId, Task inTask, String reason, boolean validateIncomingUser, PendingIntentRecord originatingPendingIntent, - BackgroundStartPrivileges backgroundStartPrivileges) { + BackgroundStartPrivileges forcedBalByPiSender) { userId = checkTargetUser(userId, validateIncomingUser, realCallingPid, realCallingUid, reason); @@ -295,7 +310,7 @@ public class ActivityStartController { .setUserId(userId) .setInTask(inTask) .setOriginatingPendingIntent(originatingPendingIntent) - .setBackgroundStartPrivileges(backgroundStartPrivileges) + .setBackgroundStartPrivileges(forcedBalByPiSender) .execute(); } @@ -310,15 +325,18 @@ public class ActivityStartController { * @param validateIncomingUser Set true to skip checking {@code userId} with the calling UID. * @param originatingPendingIntent PendingIntentRecord that originated this activity start or * null if not originated by PendingIntent + * @param forcedBalByPiSender If set to allow, the + * PendingIntent's sender will try to force allow background activity starts. + * This is only possible if the sender of the PendingIntent is a system process. */ final int startActivitiesInPackage(int uid, String callingPackage, @Nullable String callingFeatureId, Intent[] intents, String[] resolvedTypes, IBinder resultTo, SafeActivityOptions options, int userId, boolean validateIncomingUser, PendingIntentRecord originatingPendingIntent, - BackgroundStartPrivileges backgroundStartPrivileges) { + BackgroundStartPrivileges forcedBalByPiSender) { return startActivitiesInPackage(uid, 0 /* realCallingPid */, -1 /* realCallingUid */, callingPackage, callingFeatureId, intents, resolvedTypes, resultTo, options, userId, - validateIncomingUser, originatingPendingIntent, backgroundStartPrivileges); + validateIncomingUser, originatingPendingIntent, forcedBalByPiSender); } /** @@ -333,12 +351,15 @@ public class ActivityStartController { * @param validateIncomingUser Set true to skip checking {@code userId} with the calling UID. * @param originatingPendingIntent PendingIntentRecord that originated this activity start or * null if not originated by PendingIntent + * @param forcedBalByPiSender If set to allow, the + * PendingIntent's sender will try to force allow background activity starts. + * This is only possible if the sender of the PendingIntent is a system process. */ final int startActivitiesInPackage(int uid, int realCallingPid, int realCallingUid, String callingPackage, @Nullable String callingFeatureId, Intent[] intents, String[] resolvedTypes, IBinder resultTo, SafeActivityOptions options, int userId, boolean validateIncomingUser, PendingIntentRecord originatingPendingIntent, - BackgroundStartPrivileges backgroundStartPrivileges) { + BackgroundStartPrivileges forcedBalByPiSender) { final String reason = "startActivityInPackage"; @@ -348,14 +369,14 @@ public class ActivityStartController { // TODO: Switch to user app stacks here. return startActivities(null, uid, realCallingPid, realCallingUid, callingPackage, callingFeatureId, intents, resolvedTypes, resultTo, options, userId, reason, - originatingPendingIntent, backgroundStartPrivileges); + originatingPendingIntent, forcedBalByPiSender); } int startActivities(IApplicationThread caller, int callingUid, int incomingRealCallingPid, int incomingRealCallingUid, String callingPackage, @Nullable String callingFeatureId, Intent[] intents, String[] resolvedTypes, IBinder resultTo, SafeActivityOptions options, int userId, String reason, PendingIntentRecord originatingPendingIntent, - BackgroundStartPrivileges backgroundStartPrivileges) { + BackgroundStartPrivileges forcedBalByPiSender) { if (intents == null) { throw new NullPointerException("intents is null"); } @@ -463,7 +484,7 @@ public class ActivityStartController { // top one as otherwise an activity below might consume it. .setAllowPendingRemoteAnimationRegistryLookup(top /* allowLookup*/) .setOriginatingPendingIntent(originatingPendingIntent) - .setBackgroundStartPrivileges(backgroundStartPrivileges); + .setBackgroundStartPrivileges(forcedBalByPiSender); } // Log if the activities to be started have different uids. if (startingUidPkgs.size() > 1) { diff --git a/services/core/java/com/android/server/wm/ActivityStarter.java b/services/core/java/com/android/server/wm/ActivityStarter.java index 34bf8edc148f..009b8e048840 100644 --- a/services/core/java/com/android/server/wm/ActivityStarter.java +++ b/services/core/java/com/android/server/wm/ActivityStarter.java @@ -388,7 +388,7 @@ class ActivityStarter { WaitResult waitResult; int filterCallingUid; PendingIntentRecord originatingPendingIntent; - BackgroundStartPrivileges backgroundStartPrivileges; + BackgroundStartPrivileges forcedBalByPiSender; final StringBuilder logMessage = new StringBuilder(); @@ -451,7 +451,7 @@ class ActivityStarter { allowPendingRemoteAnimationRegistryLookup = true; filterCallingUid = UserHandle.USER_NULL; originatingPendingIntent = null; - backgroundStartPrivileges = BackgroundStartPrivileges.NONE; + forcedBalByPiSender = BackgroundStartPrivileges.NONE; errorCallbackToken = null; } @@ -494,7 +494,7 @@ class ActivityStarter { = request.allowPendingRemoteAnimationRegistryLookup; filterCallingUid = request.filterCallingUid; originatingPendingIntent = request.originatingPendingIntent; - backgroundStartPrivileges = request.backgroundStartPrivileges; + forcedBalByPiSender = request.forcedBalByPiSender; errorCallbackToken = request.errorCallbackToken; } @@ -1106,7 +1106,7 @@ class ActivityStarter { realCallingPid, callerApp, request.originatingPendingIntent, - request.backgroundStartPrivileges, + request.forcedBalByPiSender, intent, checkedOptions); balCode = balVerdict.getCode(); @@ -3167,9 +3167,8 @@ class ActivityStarter { return this; } - ActivityStarter setBackgroundStartPrivileges( - BackgroundStartPrivileges backgroundStartPrivileges) { - mRequest.backgroundStartPrivileges = backgroundStartPrivileges; + ActivityStarter setBackgroundStartPrivileges(BackgroundStartPrivileges forcedBalByPiSender) { + mRequest.forcedBalByPiSender = forcedBalByPiSender; return this; } diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java b/services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java index a2547fd437d1..5604b1a6aa39 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java +++ b/services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java @@ -215,21 +215,39 @@ public abstract class ActivityTaskManagerInternal { * @param validateIncomingUser Set true to skip checking {@code userId} with the calling UID. * @param originatingPendingIntent PendingIntentRecord that originated this activity start or * null if not originated by PendingIntent - * @param allowBackgroundActivityStart Whether the background activity start should be allowed - * from originatingPendingIntent + * @param forcedBalByPiSender If set to allow, the + * PendingIntent's sender will try to force allow background activity starts. + * This is only possible if the sender of the PendingIntent is a system process. */ public abstract int startActivitiesInPackage(int uid, int realCallingPid, int realCallingUid, String callingPackage, @Nullable String callingFeatureId, Intent[] intents, String[] resolvedTypes, IBinder resultTo, SafeActivityOptions options, int userId, boolean validateIncomingUser, PendingIntentRecord originatingPendingIntent, - BackgroundStartPrivileges backgroundStartPrivileges); + BackgroundStartPrivileges forcedBalByPiSender); + /** + * Start intent as a package. + * + * @param uid Make a call as if this UID did. + * @param realCallingPid PID of the real caller. + * @param realCallingUid UID of the real caller. + * @param callingPackage Make a call as if this package did. + * @param callingFeatureId Make a call as if this feature in the package did. + * @param intent Intent to start. + * @param userId Start the intents on this user. + * @param validateIncomingUser Set true to skip checking {@code userId} with the calling UID. + * @param originatingPendingIntent PendingIntentRecord that originated this activity start or + * null if not originated by PendingIntent + * @param forcedBalByPiSender If set to allow, the + * PendingIntent's sender will try to force allow background activity starts. + * This is only possible if the sender of the PendingIntent is a system process. + */ public abstract int startActivityInPackage(int uid, int realCallingPid, int realCallingUid, - String callingPackage, @Nullable String callingFeaturId, Intent intent, + String callingPackage, @Nullable String callingFeatureId, Intent intent, String resolvedType, IBinder resultTo, String resultWho, int requestCode, int startFlags, SafeActivityOptions options, int userId, Task inTask, String reason, boolean validateIncomingUser, PendingIntentRecord originatingPendingIntent, - BackgroundStartPrivileges backgroundStartPrivileges); + BackgroundStartPrivileges forcedBalByPiSender); /** * Callback to be called on certain activity start scenarios. diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java index f462efc00ce6..3c56a4e5eb04 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java +++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java @@ -3859,10 +3859,14 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { Slog.w(TAG, "takeTaskSnapshot: taskId=" + taskId + " not found or not visible"); return null; } + // Note that if updateCache is true, ActivityRecord#shouldUseAppThemeSnapshot will + // be used to decide whether the task is allowed to be captured because that may + // be retrieved by recents. While if updateCache is false, the real snapshot will + // always be taken and the snapshot won't be put into SnapshotPersister. if (updateCache) { return mWindowManager.mTaskSnapshotController.recordSnapshot(task); } else { - return mWindowManager.mTaskSnapshotController.captureSnapshot(task); + return mWindowManager.mTaskSnapshotController.snapshot(task); } } } finally { @@ -5911,12 +5915,12 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { String callingPackage, @Nullable String callingFeatureId, Intent[] intents, String[] resolvedTypes, IBinder resultTo, SafeActivityOptions options, int userId, boolean validateIncomingUser, PendingIntentRecord originatingPendingIntent, - BackgroundStartPrivileges backgroundStartPrivileges) { + BackgroundStartPrivileges forcedBalByPiSender) { assertPackageMatchesCallingUid(callingPackage); return getActivityStartController().startActivitiesInPackage(uid, realCallingPid, realCallingUid, callingPackage, callingFeatureId, intents, resolvedTypes, resultTo, options, userId, validateIncomingUser, originatingPendingIntent, - backgroundStartPrivileges); + forcedBalByPiSender); } @Override @@ -5925,13 +5929,13 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { String resolvedType, IBinder resultTo, String resultWho, int requestCode, int startFlags, SafeActivityOptions options, int userId, Task inTask, String reason, boolean validateIncomingUser, PendingIntentRecord originatingPendingIntent, - BackgroundStartPrivileges backgroundStartPrivileges) { + BackgroundStartPrivileges forcedBalByPiSender) { assertPackageMatchesCallingUid(callingPackage); return getActivityStartController().startActivityInPackage(uid, realCallingPid, realCallingUid, callingPackage, callingFeatureId, intent, resolvedType, resultTo, resultWho, requestCode, startFlags, options, userId, inTask, reason, validateIncomingUser, originatingPendingIntent, - backgroundStartPrivileges); + forcedBalByPiSender); } @Override diff --git a/services/core/java/com/android/server/wm/BackgroundActivityStartController.java b/services/core/java/com/android/server/wm/BackgroundActivityStartController.java index 2f9ef50297bf..1b5631f59a3e 100644 --- a/services/core/java/com/android/server/wm/BackgroundActivityStartController.java +++ b/services/core/java/com/android/server/wm/BackgroundActivityStartController.java @@ -195,6 +195,10 @@ public class BackgroundActivityStartController { return activity != null && packageName.equals(activity.getPackageName()); } + /** + * @see #checkBackgroundActivityStart(int, int, String, int, int, WindowProcessController, + * PendingIntentRecord, BackgroundStartPrivileges, Intent, ActivityOptions) + */ boolean shouldAbortBackgroundActivityStart( int callingUid, int callingPid, @@ -203,13 +207,13 @@ public class BackgroundActivityStartController { int realCallingPid, WindowProcessController callerApp, PendingIntentRecord originatingPendingIntent, - BackgroundStartPrivileges backgroundStartPrivileges, + BackgroundStartPrivileges forcedBalByPiSender, Intent intent, ActivityOptions checkedOptions) { return checkBackgroundActivityStart(callingUid, callingPid, callingPackage, realCallingUid, realCallingPid, callerApp, originatingPendingIntent, - backgroundStartPrivileges, intent, checkedOptions).blocks(); + forcedBalByPiSender, intent, checkedOptions).blocks(); } private class BalState { @@ -230,7 +234,7 @@ public class BackgroundActivityStartController { private final @ActivityManager.ProcessState int mRealCallingUidProcState; private final boolean mIsRealCallingUidPersistentSystemProcess; private final PendingIntentRecord mOriginatingPendingIntent; - private final BackgroundStartPrivileges mBackgroundStartPrivileges; + private final BackgroundStartPrivileges mForcedBalByPiSender; private final Intent mIntent; private final WindowProcessController mCallerApp; private final WindowProcessController mRealCallerApp; @@ -239,7 +243,7 @@ public class BackgroundActivityStartController { int realCallingUid, int realCallingPid, WindowProcessController callerApp, PendingIntentRecord originatingPendingIntent, - BackgroundStartPrivileges backgroundStartPrivileges, + BackgroundStartPrivileges forcedBalByPiSender, Intent intent, ActivityOptions checkedOptions) { this.mCallingPackage = callingPackage; @@ -248,7 +252,7 @@ public class BackgroundActivityStartController { mRealCallingUid = realCallingUid; mRealCallingPid = realCallingPid; mCallerApp = callerApp; - mBackgroundStartPrivileges = backgroundStartPrivileges; + mForcedBalByPiSender = forcedBalByPiSender; mOriginatingPendingIntent = originatingPendingIntent; mIntent = intent; mRealCallingPackage = mService.getPackageNameIfUnique(realCallingUid, realCallingPid); @@ -344,7 +348,7 @@ public class BackgroundActivityStartController { .append(mIsRealCallingUidPersistentSystemProcess); sb.append("; originatingPendingIntent: ").append(mOriginatingPendingIntent); } - sb.append("; backgroundStartPrivileges: ").append(mBackgroundStartPrivileges); + sb.append("; mForcedBalByPiSender: ").append(mForcedBalByPiSender); sb.append("; intent: ").append(mIntent); sb.append("; callerApp: ").append(mCallerApp); if (isPendingIntent()) { @@ -422,8 +426,26 @@ public class BackgroundActivityStartController { } /** - * @return A code denoting which BAL rule allows an activity to be started, - * or {@link #BAL_BLOCK} if the launch should be blocked + * Check if a (background) activity start is allowed. + * + * @param callingUid The UID that wants to start the activity. + * @param callingPid The PID that wants to start the activity. + * @param callingPackage The package name that wants to start the activity. + * @param realCallingUid The UID that actually calls this method (only if this handles a + * PendingIntent, otherwise -1) + * @param realCallingPid The PID that actually calls this method (only if this handles a + * * PendingIntent, otherwise -1) + * @param callerApp The process that calls this method (only if not a PendingIntent) + * @param originatingPendingIntent PendingIntentRecord that originated this activity start or + * null if not originated by PendingIntent + * @param forcedBalByPiSender If set to allow, the + * PendingIntent's sender will try to force allow background activity starts. + * This is only possible if the sender of the PendingIntent is a system process. + * @param intent Intent that should be started. + * @param checkedOptions ActivityOptions to allow specific opt-ins/opt outs. + * + * @return A verdict denoting which BAL rule allows an activity to be started, + * or if the launch should be blocked. */ BalVerdict checkBackgroundActivityStart( int callingUid, @@ -433,7 +455,7 @@ public class BackgroundActivityStartController { int realCallingPid, WindowProcessController callerApp, PendingIntentRecord originatingPendingIntent, - BackgroundStartPrivileges backgroundStartPrivileges, + BackgroundStartPrivileges forcedBalByPiSender, Intent intent, ActivityOptions checkedOptions) { @@ -444,7 +466,7 @@ public class BackgroundActivityStartController { BalState state = new BalState(callingUid, callingPid, callingPackage, realCallingUid, realCallingPid, callerApp, originatingPendingIntent, - backgroundStartPrivileges, intent, checkedOptions); + forcedBalByPiSender, intent, checkedOptions); // In the case of an SDK sandbox calling uid, check if the corresponding app uid has a // visible window. @@ -708,12 +730,12 @@ public class BackgroundActivityStartController { } // if the realCallingUid is a persistent system process, abort if the IntentSender // wasn't allowed to start an activity - if (state.mIsRealCallingUidPersistentSystemProcess - && state.mBackgroundStartPrivileges.allowsBackgroundActivityStarts()) { + if (state.mForcedBalByPiSender.allowsBackgroundActivityStarts() + && state.mIsRealCallingUidPersistentSystemProcess) { return new BalVerdict(BAL_ALLOW_PENDING_INTENT, /*background*/ false, "realCallingUid is persistent system process AND intent " - + "sender allowed (allowBackgroundActivityStart = true)."); + + "sender forced to allow."); } // don't abort if the realCallingUid is an associated companion app if (mService.isAssociatedCompanionApp( diff --git a/services/core/java/com/android/server/wm/DisplayPolicy.java b/services/core/java/com/android/server/wm/DisplayPolicy.java index d69c5ef5ee91..8a7cc67c3660 100644 --- a/services/core/java/com/android/server/wm/DisplayPolicy.java +++ b/services/core/java/com/android/server/wm/DisplayPolicy.java @@ -1876,7 +1876,8 @@ public class DisplayPolicy { dc.getDisplayPolicy().simulateLayoutDisplay(df); final InsetsState insetsState = df.mInsetsState; final Rect displayFrame = insetsState.getDisplayFrame(); - final Insets decor = insetsState.calculateInsets(displayFrame, DECOR_TYPES, + final Insets decor = insetsState.calculateInsets(displayFrame, + dc.mWmService.mDecorTypes, true /* ignoreVisibility */); final Insets statusBar = insetsState.calculateInsets(displayFrame, Type.statusBars(), true /* ignoreVisibility */); @@ -1912,15 +1913,6 @@ public class DisplayPolicy { } } - - static final int DECOR_TYPES = Type.displayCutout() | Type.navigationBars(); - - /** - * The types that may affect display configuration. This excludes cutout because it is - * known from display info. - */ - static final int CONFIG_TYPES = Type.statusBars() | Type.navigationBars(); - private final DisplayContent mDisplayContent; private final Info[] mInfoForRotation = new Info[4]; final Info mTmpInfo = new Info(); diff --git a/services/core/java/com/android/server/wm/InsetsSourceProvider.java b/services/core/java/com/android/server/wm/InsetsSourceProvider.java index cd114fcf9e21..9d5ddf3bf264 100644 --- a/services/core/java/com/android/server/wm/InsetsSourceProvider.java +++ b/services/core/java/com/android/server/wm/InsetsSourceProvider.java @@ -30,6 +30,7 @@ import static com.android.server.wm.InsetsSourceProviderProto.PENDING_CONTROL_TA import static com.android.server.wm.InsetsSourceProviderProto.SEAMLESS_ROTATING; import static com.android.server.wm.InsetsSourceProviderProto.SERVER_VISIBLE; import static com.android.server.wm.InsetsSourceProviderProto.SOURCE; +import static com.android.server.wm.InsetsSourceProviderProto.SOURCE_WINDOW_STATE; import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_INSETS_CONTROL; import android.annotation.NonNull; @@ -304,7 +305,7 @@ class InsetsSourceProvider { return mInsetsHint; } final WindowState win = mWindowContainer.asWindowState(); - if (win != null && win.mGivenInsetsPending) { + if (win != null && win.mGivenInsetsPending && win.mAttrs.providedInsets == null) { return mInsetsHint; } if (mInsetsHintStale) { @@ -680,6 +681,9 @@ class InsetsSourceProvider { proto.write(SERVER_VISIBLE, mServerVisible); proto.write(SEAMLESS_ROTATING, mSeamlessRotating); proto.write(CONTROLLABLE, mControllable); + if (mWindowContainer != null && mWindowContainer.asWindowState() != null) { + mWindowContainer.asWindowState().dumpDebug(proto, SOURCE_WINDOW_STATE, logLevel); + } proto.end(token); } diff --git a/services/core/java/com/android/server/wm/RootWindowContainer.java b/services/core/java/com/android/server/wm/RootWindowContainer.java index e82f3221f0a4..5227a52545f4 100644 --- a/services/core/java/com/android/server/wm/RootWindowContainer.java +++ b/services/core/java/com/android/server/wm/RootWindowContainer.java @@ -2095,6 +2095,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent> } final TaskFragment organizedTf = r.getOrganizedTaskFragment(); + final TaskFragment taskFragment = r.getTaskFragment(); final boolean singleActivity = task.getNonFinishingActivityCount() == 1; if (singleActivity) { rootTask = task; @@ -2137,7 +2138,11 @@ class RootWindowContainer extends WindowContainer<DisplayContent> .setIntent(r.intent) .setDeferTaskAppear(true) .setHasBeenVisible(true) - .setWindowingMode(task.getRequestedOverrideWindowingMode()) + // In case the activity is in system split screen, or Activity Embedding + // split, we need to animate the PIP Task from the original TaskFragment + // bounds, so also setting the windowing mode, otherwise the bounds may + // be reset to fullscreen. + .setWindowingMode(taskFragment.getWindowingMode()) .build(); // Establish bi-directional link between the original and pinned task. r.setLastParentBeforePip(launchIntoPipHostActivity); @@ -2150,7 +2155,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent> // current bounds. // Use Task#setBoundsUnchecked to skip checking windowing mode as the windowing mode // will be updated later after this is collected in transition. - rootTask.setBoundsUnchecked(r.getTaskFragment().getBounds()); + rootTask.setBoundsUnchecked(taskFragment.getBounds()); // Move the last recents animation transaction from original task to the new one. if (task.mLastRecentsAnimationTransaction != null) { diff --git a/services/core/java/com/android/server/wm/SnapshotPersistQueue.java b/services/core/java/com/android/server/wm/SnapshotPersistQueue.java index f4f641f35395..bffdf54e17ce 100644 --- a/services/core/java/com/android/server/wm/SnapshotPersistQueue.java +++ b/services/core/java/com/android/server/wm/SnapshotPersistQueue.java @@ -23,7 +23,6 @@ import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM; import android.annotation.NonNull; -import android.annotation.TestApi; import android.graphics.Bitmap; import android.os.Process; import android.os.SystemClock; @@ -33,6 +32,7 @@ import android.util.Slog; import android.window.TaskSnapshot; import com.android.internal.annotations.GuardedBy; +import com.android.internal.annotations.VisibleForTesting; import com.android.server.LocalServices; import com.android.server.pm.UserManagerInternal; import com.android.server.wm.BaseAppSnapshotPersister.PersistInfoProvider; @@ -100,7 +100,7 @@ class SnapshotPersistQueue { } } - @TestApi + @VisibleForTesting void waitForQueueEmpty() { while (true) { synchronized (mLock) { @@ -112,9 +112,20 @@ class SnapshotPersistQueue { } } - @GuardedBy("mLock") - void sendToQueueLocked(WriteQueueItem item) { - mWriteQueue.offer(item); + @VisibleForTesting + int peekQueueSize() { + synchronized (mLock) { + return mWriteQueue.size(); + } + } + + private void addToQueueInternal(WriteQueueItem item, boolean insertToFront) { + mWriteQueue.removeFirstOccurrence(item); + if (insertToFront) { + mWriteQueue.addFirst(item); + } else { + mWriteQueue.addLast(item); + } item.onQueuedLocked(); ensureStoreQueueDepthLocked(); if (!mPaused) { @@ -123,6 +134,16 @@ class SnapshotPersistQueue { } @GuardedBy("mLock") + void sendToQueueLocked(WriteQueueItem item) { + addToQueueInternal(item, false /* insertToFront */); + } + + @GuardedBy("mLock") + void insertQueueAtFirstLocked(WriteQueueItem item) { + addToQueueInternal(item, true /* insertToFront */); + } + + @GuardedBy("mLock") private void ensureStoreQueueDepthLocked() { while (mStoreQueueItems.size() > MAX_STORE_QUEUE_DEPTH) { final StoreWriteQueueItem item = mStoreQueueItems.poll(); @@ -235,6 +256,8 @@ class SnapshotPersistQueue { @GuardedBy("mLock") @Override void onQueuedLocked() { + // Remove duplicate request. + mStoreQueueItems.remove(this); mStoreQueueItems.offer(this); } @@ -358,6 +381,14 @@ class SnapshotPersistQueue { return true; } + + @Override + public boolean equals(Object o) { + if (o == null || getClass() != o.getClass()) return false; + final StoreWriteQueueItem other = (StoreWriteQueueItem) o; + return mId == other.mId && mUserId == other.mUserId + && mPersistInfoProvider == other.mPersistInfoProvider; + } } DeleteWriteQueueItem createDeleteWriteQueueItem(int id, int userId, diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index 6f19425f0b46..a7784152a883 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -2909,7 +2909,7 @@ class Task extends TaskFragment { if (mDragResizing != dragResizing) { // No need to check if allowed if it's leaving dragResize if (dragResizing - && !(getRootTask().getWindowingMode() == WINDOWING_MODE_FREEFORM)) { + && !(getRootTask().getWindowConfiguration().canResizeTask())) { Slog.e(TAG, "Drag resize isn't allowed for root task id=" + getRootTaskId()); return; } diff --git a/services/core/java/com/android/server/wm/TaskFragment.java b/services/core/java/com/android/server/wm/TaskFragment.java index 00f2b8963350..197edc30aa8e 100644 --- a/services/core/java/com/android/server/wm/TaskFragment.java +++ b/services/core/java/com/android/server/wm/TaskFragment.java @@ -274,11 +274,6 @@ class TaskFragment extends WindowContainer<WindowContainer> { boolean mClearedForReorderActivityToFront; /** - * Whether the TaskFragment surface is managed by a system {@link TaskFragmentOrganizer}. - */ - boolean mIsSurfaceManagedBySystemOrganizer = false; - - /** * When we are in the process of pausing an activity, before starting the * next one, this variable holds the activity that is currently being paused. * @@ -453,21 +448,13 @@ class TaskFragment extends WindowContainer<WindowContainer> { void setTaskFragmentOrganizer(@NonNull TaskFragmentOrganizerToken organizer, int uid, @NonNull String processName) { - setTaskFragmentOrganizer(organizer, uid, processName, - false /* isSurfaceManagedBySystemOrganizer */); - } - - void setTaskFragmentOrganizer(@NonNull TaskFragmentOrganizerToken organizer, int uid, - @NonNull String processName, boolean isSurfaceManagedBySystemOrganizer) { mTaskFragmentOrganizer = ITaskFragmentOrganizer.Stub.asInterface(organizer.asBinder()); mTaskFragmentOrganizerUid = uid; mTaskFragmentOrganizerProcessName = processName; - mIsSurfaceManagedBySystemOrganizer = isSurfaceManagedBySystemOrganizer; } void onTaskFragmentOrganizerRemoved() { mTaskFragmentOrganizer = null; - mIsSurfaceManagedBySystemOrganizer = false; } /** Whether this TaskFragment is organized by the given {@code organizer}. */ @@ -1548,10 +1535,11 @@ class TaskFragment extends WindowContainer<WindowContainer> { next.getTask().mTaskId, next.shortComponentName); mAtmService.getAppWarningsLocked().onResumeActivity(next); - next.app.setPendingUiCleanAndForceProcessStateUpTo(mAtmService.mTopProcessState); + final int topProcessState = mAtmService.mTopProcessState; + next.app.setPendingUiCleanAndForceProcessStateUpTo(topProcessState); next.abortAndClearOptionsAnimation(); transaction.setLifecycleStateRequest( - ResumeActivityItem.obtain(next.token, next.app.getReportedProcState(), + ResumeActivityItem.obtain(next.token, topProcessState, dc.isNextTransitionForward(), next.shouldSendCompatFakeFocus())); mAtmService.getLifecycleManager().scheduleTransaction(transaction); @@ -2454,9 +2442,6 @@ class TaskFragment extends WindowContainer<WindowContainer> { if (mDelayOrganizedTaskFragmentSurfaceUpdate || mTaskFragmentOrganizer == null) { return; } - if (mIsSurfaceManagedBySystemOrganizer) { - return; - } if (mTransitionController.isShellTransitionsEnabled() && !mTransitionController.isCollecting(this)) { // TaskFragmentOrganizer doesn't have access to the surface for security reasons, so diff --git a/services/core/java/com/android/server/wm/Transition.java b/services/core/java/com/android/server/wm/Transition.java index b23ffa8b203e..c0bf2ce41435 100644 --- a/services/core/java/com/android/server/wm/Transition.java +++ b/services/core/java/com/android/server/wm/Transition.java @@ -59,6 +59,7 @@ import static android.window.TransitionInfo.FLAG_TRANSLUCENT; import static android.window.TransitionInfo.FLAG_WILL_IME_SHOWN; import static android.window.WindowContainerTransaction.HierarchyOp.HIERARCHY_OP_TYPE_PENDING_INTENT; +import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER; import static com.android.server.wm.ActivityRecord.State.RESUMED; import static com.android.server.wm.ActivityTaskManagerInternal.APP_TRANSITION_RECENTS_ANIM; import static com.android.server.wm.ActivityTaskManagerInternal.APP_TRANSITION_SPLASH_SCREEN; @@ -1272,18 +1273,23 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { } } // Commit wallpaper visibility after activity, because usually the wallpaper target token is - // an activity, and wallpaper's visibility is depends on activity's visibility. + // an activity, and wallpaper's visibility depends on activity's visibility. for (int i = mParticipants.size() - 1; i >= 0; --i) { final WallpaperWindowToken wt = mParticipants.valueAt(i).asWallpaperToken(); if (wt == null) continue; final WindowState target = wt.mDisplayContent.mWallpaperController.getWallpaperTarget(); final boolean isTargetInvisible = target == null || !target.mToken.isVisible(); - if (isTargetInvisible || (!wt.isVisibleRequested() - && !mVisibleAtTransitionEndTokens.contains(wt))) { + final boolean isWallpaperVisibleAtEnd = + wt.isVisibleRequested() || mVisibleAtTransitionEndTokens.contains(wt); + if (isTargetInvisible || !isWallpaperVisibleAtEnd) { ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, " Commit wallpaper becoming invisible: %s", wt); wt.commitVisibility(false /* visible */); } + if (isTargetInvisible) { + // Our original target went invisible, so we should look for a new target. + wt.mDisplayContent.pendingLayoutChanges |= FINISH_LAYOUT_REDO_WALLPAPER; + } } if (committedSomeInvisible) { mController.onCommittedInvisibles(); @@ -1408,12 +1414,13 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { false /* forceRelayout */); } cleanUpInternal(); - mController.updateAnimatingState(); // Handle back animation if it's already started. mController.mAtm.mBackNavigationController.onTransitionFinish(mTargets, this); mController.mFinishingTransition = null; mController.mSnapshotController.onTransitionFinish(mType, mTargets); + // Resume snapshot persist thread after snapshot controller analysis this transition. + mController.updateAnimatingState(); } @Nullable diff --git a/services/core/java/com/android/server/wm/TransitionController.java b/services/core/java/com/android/server/wm/TransitionController.java index c134464bc33a..1f01778acd0c 100644 --- a/services/core/java/com/android/server/wm/TransitionController.java +++ b/services/core/java/com/android/server/wm/TransitionController.java @@ -271,13 +271,14 @@ class TransitionController { if (mTransitionPlayer == null) return; // Immediately set to null so that nothing inadvertently starts/queues. mTransitionPlayer = null; - // Clean-up/finish any playing transitions. - for (int i = 0; i < mPlayingTransitions.size(); ++i) { + // Clean-up/finish any playing transitions. Backwards since they can remove themselves. + for (int i = mPlayingTransitions.size() - 1; i >= 0; --i) { mPlayingTransitions.get(i).cleanUpOnFailure(); } mPlayingTransitions.clear(); // Clean up waiting transitions first since they technically started first. - for (int i = 0; i < mWaitingTransitions.size(); ++i) { + // Backwards since they can remove themselves. + for (int i = mWaitingTransitions.size() - 1; i >= 0; --i) { mWaitingTransitions.get(i).abort(); } mWaitingTransitions.clear(); diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index 6e3d24b9f711..ab3ddbd94224 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -336,6 +336,7 @@ import com.android.server.policy.WindowManagerPolicy; import com.android.server.policy.WindowManagerPolicy.ScreenOffListener; import com.android.server.power.ShutdownThread; import com.android.server.utils.PriorityDump; +import com.android.window.flags.Flags; import dalvik.annotation.optimization.NeverCompile; @@ -542,6 +543,12 @@ public class WindowManagerService extends IWindowManager.Stub @VisibleForTesting boolean mSkipActivityRelaunchWhenDocking; + /** Device default insets types provided non-decor insets. */ + final int mDecorTypes; + + /** Device default insets types shall be excluded from config app sizes. */ + final int mConfigTypes; + final boolean mLimitedAlphaCompositing; final int mMaxUiWidth; @@ -1185,6 +1192,16 @@ public class WindowManagerService extends IWindowManager.Stub com.android.internal.R.bool.config_assistantOnTopOfDream); mSkipActivityRelaunchWhenDocking = context.getResources() .getBoolean(R.bool.config_skipActivityRelaunchWhenDocking); + final boolean isScreenSizeDecoupledFromStatusBarAndCutout = context.getResources() + .getBoolean(R.bool.config_decoupleStatusBarAndDisplayCutoutFromScreenSize) + && Flags.closeToSquareConfigIncludesStatusBar(); + if (!isScreenSizeDecoupledFromStatusBarAndCutout) { + mDecorTypes = WindowInsets.Type.displayCutout() | WindowInsets.Type.navigationBars(); + mConfigTypes = WindowInsets.Type.statusBars() | WindowInsets.Type.navigationBars(); + } else { + mDecorTypes = WindowInsets.Type.navigationBars(); + mConfigTypes = WindowInsets.Type.navigationBars(); + } mLetterboxConfiguration = new LetterboxConfiguration( // Using SysUI context to have access to Material colors extracted from Wallpaper. @@ -7319,6 +7336,7 @@ public class WindowManagerService extends IWindowManager.Stub } } + /** This is used when there's no app info available and shall return the system default.*/ void getStableInsetsLocked(int displayId, Rect outInsets) { outInsets.setEmpty(); final DisplayContent dc = mRoot.getDisplayContent(displayId); diff --git a/services/core/java/com/android/server/wm/WindowOrganizerController.java b/services/core/java/com/android/server/wm/WindowOrganizerController.java index 95e25151e8cc..89d47bcf41d5 100644 --- a/services/core/java/com/android/server/wm/WindowOrganizerController.java +++ b/services/core/java/com/android/server/wm/WindowOrganizerController.java @@ -2122,8 +2122,7 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub // actions. TaskFragmentOrganizerToken organizerToken = creationParams.getOrganizer(); taskFragment.setTaskFragmentOrganizer(organizerToken, - ownerActivity.getUid(), ownerActivity.info.processName, - mTaskFragmentOrganizerController.isSystemOrganizer(organizerToken.asBinder())); + ownerActivity.getUid(), ownerActivity.info.processName); final int position; if (creationParams.getPairedPrimaryFragmentToken() != null) { // When there is a paired primary TaskFragment, we want to place the new TaskFragment diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index ae2df00007f4..4e17011c7141 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -1381,7 +1381,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP // This window doesn't provide any insets. return; } - if (mGivenInsetsPending) { + if (mGivenInsetsPending && mAttrs.providedInsets == null) { // The given insets are pending, and they are not reliable for now. The source frame // should be updated after the new given insets are sent to window manager. return; @@ -1829,7 +1829,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP } for (int i = mInsetsSourceProviders.size() - 1; i >= 0; i--) { final InsetsSource source = mInsetsSourceProviders.valueAt(i).getSource(); - if ((source.getType() & DisplayPolicy.DecorInsets.CONFIG_TYPES) != 0) { + if ((source.getType() & mWmService.mConfigTypes) != 0) { return true; } } diff --git a/services/core/jni/com_android_server_input_InputManagerService.cpp b/services/core/jni/com_android_server_input_InputManagerService.cpp index a7d77304d046..21820939ba03 100644 --- a/services/core/jni/com_android_server_input_InputManagerService.cpp +++ b/services/core/jni/com_android_server_input_InputManagerService.cpp @@ -1293,6 +1293,11 @@ void NativeInputManager::setInputDeviceEnabled(uint32_t deviceId, bool enabled) } void NativeInputManager::setShowTouches(bool enabled) { + if (ENABLE_POINTER_CHOREOGRAPHER) { + mInputManager->getChoreographer().setShowTouchesEnabled(enabled); + return; + } + { // acquire lock std::scoped_lock _l(mLock); @@ -1744,6 +1749,11 @@ FloatPoint NativeInputManager::getMouseCursorPosition() { } void NativeInputManager::setStylusPointerIconEnabled(bool enabled) { + if (ENABLE_POINTER_CHOREOGRAPHER) { + mInputManager->getChoreographer().setStylusPointerIconEnabled(enabled); + return; + } + { // acquire lock std::scoped_lock _l(mLock); diff --git a/services/core/jni/tvinput/JTvInputHal.cpp b/services/core/jni/tvinput/JTvInputHal.cpp index dc05462c1a1c..80427b346f1a 100644 --- a/services/core/jni/tvinput/JTvInputHal.cpp +++ b/services/core/jni/tvinput/JTvInputHal.cpp @@ -25,7 +25,7 @@ JTvInputHal::JTvInputHal(JNIEnv* env, jobject thiz, std::shared_ptr<ITvInputWrap mThiz = env->NewWeakGlobalRef(thiz); mTvInput = tvInput; mLooper = looper; - mTvInputCallback = ::ndk::SharedRefBase::make<TvInputCallback>(this); + mTvInputCallback = std::shared_ptr<TvInputCallbackWrapper>(new TvInputCallbackWrapper(this)); mTvInput->setCallback(mTvInputCallback); } @@ -443,18 +443,23 @@ void JTvInputHal::NotifyTvMessageHandler::handleMessage(const Message& message) } } -JTvInputHal::TvInputCallback::TvInputCallback(JTvInputHal* hal) { +JTvInputHal::TvInputCallbackWrapper::TvInputCallbackWrapper(JTvInputHal* hal) { + aidlTvInputCallback = ::ndk::SharedRefBase::make<AidlTvInputCallback>(hal); + hidlTvInputCallback = sp<HidlTvInputCallback>::make(hal); +} + +JTvInputHal::AidlTvInputCallback::AidlTvInputCallback(JTvInputHal* hal) { mHal = hal; } -::ndk::ScopedAStatus JTvInputHal::TvInputCallback::notify(const AidlTvInputEvent& event) { +::ndk::ScopedAStatus JTvInputHal::AidlTvInputCallback::notify(const AidlTvInputEvent& event) { mHal->mLooper->sendMessage(new NotifyHandler(mHal, TvInputEventWrapper::createEventWrapper(event)), static_cast<int>(event.type)); return ::ndk::ScopedAStatus::ok(); } -::ndk::ScopedAStatus JTvInputHal::TvInputCallback::notifyTvMessageEvent( +::ndk::ScopedAStatus JTvInputHal::AidlTvInputCallback::notifyTvMessageEvent( const AidlTvMessageEvent& event) { const std::string DEVICE_ID_SUBTYPE = "device_id"; ::ndk::ScopedAStatus status = ::ndk::ScopedAStatus::ok(); @@ -487,11 +492,14 @@ JTvInputHal::ITvInputWrapper::ITvInputWrapper(std::shared_ptr<AidlITvInput>& aid : mIsHidl(false), mAidlTvInput(aidlTvInput) {} ::ndk::ScopedAStatus JTvInputHal::ITvInputWrapper::setCallback( - const std::shared_ptr<TvInputCallback>& in_callback) { + const std::shared_ptr<TvInputCallbackWrapper>& in_callback) { if (mIsHidl) { - return hidlSetCallback(in_callback); + in_callback->aidlTvInputCallback = nullptr; + return hidlSetCallback(in_callback == nullptr ? nullptr : in_callback->hidlTvInputCallback); } else { - return mAidlTvInput->setCallback(in_callback); + in_callback->hidlTvInputCallback = nullptr; + return mAidlTvInput->setCallback(in_callback == nullptr ? nullptr + : in_callback->aidlTvInputCallback); } } diff --git a/services/core/jni/tvinput/JTvInputHal.h b/services/core/jni/tvinput/JTvInputHal.h index 6026a107c67f..2ef94ac4a3b0 100644 --- a/services/core/jni/tvinput/JTvInputHal.h +++ b/services/core/jni/tvinput/JTvInputHal.h @@ -168,23 +168,39 @@ private: JTvInputHal* mHal; }; - class TvInputCallback : public HidlITvInputCallback, public BnTvInputCallback { + class AidlTvInputCallback : public BnTvInputCallback { public: - explicit TvInputCallback(JTvInputHal* hal); + explicit AidlTvInputCallback(JTvInputHal* hal); ::ndk::ScopedAStatus notify(const AidlTvInputEvent& event) override; ::ndk::ScopedAStatus notifyTvMessageEvent(const AidlTvMessageEvent& event) override; + + private: + JTvInputHal* mHal; + }; + + class HidlTvInputCallback : public HidlITvInputCallback { + public: + explicit HidlTvInputCallback(JTvInputHal* hal); Return<void> notify(const HidlTvInputEvent& event) override; private: JTvInputHal* mHal; }; + class TvInputCallbackWrapper { + public: + explicit TvInputCallbackWrapper(JTvInputHal* hal); + std::shared_ptr<AidlTvInputCallback> aidlTvInputCallback; + sp<HidlTvInputCallback> hidlTvInputCallback; + }; + class ITvInputWrapper { public: ITvInputWrapper(std::shared_ptr<AidlITvInput>& aidlTvInput); ITvInputWrapper(sp<HidlITvInput>& hidlTvInput); - ::ndk::ScopedAStatus setCallback(const std::shared_ptr<TvInputCallback>& in_callback); + ::ndk::ScopedAStatus setCallback( + const std::shared_ptr<TvInputCallbackWrapper>& in_callback); ::ndk::ScopedAStatus getStreamConfigurations(int32_t in_deviceId, std::vector<AidlTvStreamConfig>* _aidl_return); ::ndk::ScopedAStatus openStream(int32_t in_deviceId, int32_t in_streamId, @@ -198,7 +214,7 @@ private: ::ndk::ScopedAStatus getAidlInterfaceVersion(int32_t* _aidl_return); private: - ::ndk::ScopedAStatus hidlSetCallback(const std::shared_ptr<TvInputCallback>& in_callback); + ::ndk::ScopedAStatus hidlSetCallback(const sp<HidlTvInputCallback>& in_callback); ::ndk::ScopedAStatus hidlGetStreamConfigurations( int32_t in_deviceId, std::vector<AidlTvStreamConfig>* _aidl_return); ::ndk::ScopedAStatus hidlOpenStream(int32_t in_deviceId, int32_t in_streamId, @@ -229,7 +245,7 @@ private: KeyedVector<int, KeyedVector<int, Connection> > mConnections; std::shared_ptr<ITvInputWrapper> mTvInput; - std::shared_ptr<TvInputCallback> mTvInputCallback; + std::shared_ptr<TvInputCallbackWrapper> mTvInputCallback; }; } // namespace android diff --git a/services/core/jni/tvinput/TvInputHal_hidl.cpp b/services/core/jni/tvinput/TvInputHal_hidl.cpp index 37cf8445920f..cdd926622dcc 100644 --- a/services/core/jni/tvinput/TvInputHal_hidl.cpp +++ b/services/core/jni/tvinput/TvInputHal_hidl.cpp @@ -59,7 +59,11 @@ JTvInputHal::TvInputEventWrapper JTvInputHal::TvInputEventWrapper::createEventWr return event; } -Return<void> JTvInputHal::TvInputCallback::notify(const HidlTvInputEvent& event) { +JTvInputHal::HidlTvInputCallback::HidlTvInputCallback(JTvInputHal* hal) { + mHal = hal; +} + +Return<void> JTvInputHal::HidlTvInputCallback::notify(const HidlTvInputEvent& event) { mHal->mLooper->sendMessage(new NotifyHandler(mHal, TvInputEventWrapper::createEventWrapper(event)), static_cast<int>(event.type)); @@ -70,9 +74,8 @@ JTvInputHal::ITvInputWrapper::ITvInputWrapper(sp<HidlITvInput>& hidlTvInput) : mIsHidl(true), mHidlTvInput(hidlTvInput) {} ::ndk::ScopedAStatus JTvInputHal::ITvInputWrapper::hidlSetCallback( - const std::shared_ptr<TvInputCallback>& in_callback) { - mHidlTvInput->setCallback(in_callback == nullptr ? nullptr - : sp<TvInputCallback>(in_callback.get())); + const sp<HidlTvInputCallback>& in_callback) { + mHidlTvInput->setCallback(in_callback); return ::ndk::ScopedAStatus::ok(); } diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java index 56e385d535a0..0a2e80606e96 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -129,6 +129,7 @@ import com.android.server.connectivity.PacProxyService; import com.android.server.contentcapture.ContentCaptureManagerInternal; import com.android.server.coverage.CoverageService; import com.android.server.cpu.CpuMonitorService; +import com.android.server.criticalevents.CriticalEventLog; import com.android.server.devicepolicy.DevicePolicyManagerService; import com.android.server.devicestate.DeviceStateManagerService; import com.android.server.display.DisplayManagerService; @@ -964,6 +965,7 @@ public final class SystemServer implements Dumpable { // Only update the timeout after starting all the services so that we use // the default timeout to start system server. updateWatchdogTimeout(t); + CriticalEventLog.getInstance().logSystemServerStarted(); } catch (Throwable ex) { Slog.e("System", "******************************************"); Slog.e("System", "************ Failure starting system services", ex); diff --git a/services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/InputMethodBindingControllerTest.java b/services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/InputMethodBindingControllerTest.java index 798e1aedc5a1..1f0a37509989 100644 --- a/services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/InputMethodBindingControllerTest.java +++ b/services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/InputMethodBindingControllerTest.java @@ -133,10 +133,11 @@ public class InputMethodBindingControllerTest extends InputMethodManagerServiceT } private void testBindCurrentMethodWithMainConnection() throws Exception { + final InputMethodInfo info; synchronized (ImfLock.class) { mBindingController.setSelectedMethodId(TEST_IME_ID); + info = mInputMethodManagerService.queryInputMethodForCurrentUserLocked(TEST_IME_ID); } - InputMethodInfo info = mInputMethodManagerService.mMethodMap.get(TEST_IME_ID); assertThat(info).isNotNull(); assertThat(info.getId()).isEqualTo(TEST_IME_ID); assertThat(info.getServiceName()).isEqualTo(TEST_SERVICE_NAME); 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 303525814435..9684f427adb3 100644 --- a/services/tests/displayservicetests/src/com/android/server/display/DisplayManagerServiceTest.java +++ b/services/tests/displayservicetests/src/com/android/server/display/DisplayManagerServiceTest.java @@ -29,7 +29,7 @@ import static android.view.ContentRecordingSession.RECORD_CONTENT_DISPLAY; import static android.view.ContentRecordingSession.RECORD_CONTENT_TASK; import static com.android.dx.mockito.inline.extended.ExtendedMockito.doAnswer; -import static com.android.server.display.DisplayManagerService.ENABLE_ON_CONNECT; +import static com.android.server.display.ExternalDisplayPolicy.ENABLE_ON_CONNECT; import static com.android.server.display.VirtualDisplayAdapter.UNIQUE_ID_PREFIX; import static com.google.common.truth.Truth.assertThat; diff --git a/services/tests/displayservicetests/src/com/android/server/display/ExternalDisplayPolicyTest.java b/services/tests/displayservicetests/src/com/android/server/display/ExternalDisplayPolicyTest.java new file mode 100644 index 000000000000..fea431c5623a --- /dev/null +++ b/services/tests/displayservicetests/src/com/android/server/display/ExternalDisplayPolicyTest.java @@ -0,0 +1,283 @@ +/* + * 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.server.display; + +import static android.hardware.display.DisplayManagerGlobal.EVENT_DISPLAY_CONNECTED; +import static android.view.Display.TYPE_EXTERNAL; + +import static com.google.common.truth.Truth.assertThat; + +import static org.junit.Assume.assumeFalse; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyBoolean; +import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.Mockito.clearInvocations; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import android.os.IThermalEventListener; +import android.os.IThermalService; +import android.os.RemoteException; +import android.os.Temperature; +import android.view.DisplayInfo; + +import androidx.test.filters.SmallTest; + +import com.android.server.display.DisplayManagerService.SyncRoot; +import com.android.server.display.feature.DisplayManagerFlags; +import com.android.server.display.notifications.DisplayNotificationManager; +import com.android.server.testutils.TestHandler; + +import com.google.testing.junit.testparameterinjector.TestParameter; +import com.google.testing.junit.testparameterinjector.TestParameterInjector; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; +import org.mockito.Captor; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; + +import java.util.List; +import java.util.function.Consumer; + + +/** + * Tests for {@link ExternalDisplayPolicy} + * Run: atest ExternalDisplayPolicyTest + */ +@SmallTest +@RunWith(TestParameterInjector.class) +public class ExternalDisplayPolicyTest { + private static final int EXTERNAL_DISPLAY_ID = 1; + private static final Temperature MODERATE_TEMPERATURE = new Temperature(/*value=*/ 40.5f, + /*type=*/ Temperature.TYPE_SKIN, + /*name=*/ "Test", + /*status=*/ Temperature.THROTTLING_MODERATE); + private static final Temperature SEVERE_TEMPERATURE = new Temperature(/*value=*/ 50.5f, + /*type=*/ Temperature.TYPE_SKIN, + /*name=*/ "Test", + /*status=*/ Temperature.THROTTLING_SEVERE); + private static final Temperature CRITICAL_TEMPERATURE = new Temperature(/*value=*/ 70.5f, + /*type=*/ Temperature.TYPE_SKIN, + /*name=*/ "Test", + /*status=*/ Temperature.THROTTLING_CRITICAL); + private static final Temperature EMERGENCY_TEMPERATURE = new Temperature(/*value=*/ 80.5f, + /*type=*/ Temperature.TYPE_SKIN, + /*name=*/ "Test", + /*status=*/ Temperature.THROTTLING_EMERGENCY); + @Mock + private ExternalDisplayPolicy.Injector mMockedInjector; + @Mock + private DisplayManagerFlags mMockedFlags; + @Mock + private LogicalDisplayMapper mMockedLogicalDisplayMapper; + @Mock + private IThermalService mMockedThermalService; + @Mock + private SyncRoot mMockedSyncRoot; + @Mock + private LogicalDisplay mMockedLogicalDisplay; + @Mock + private DisplayNotificationManager mMockedDisplayNotificationManager; + @Captor + private ArgumentCaptor<IThermalEventListener> mThermalEventListenerCaptor; + @Captor + private ArgumentCaptor<Integer> mThermalEventTypeCaptor; + @Captor + private ArgumentCaptor<Consumer<LogicalDisplay>> mLogicalDisplayConsumerCaptor; + @Captor + private ArgumentCaptor<Boolean> mIsEnabledCaptor; + @Captor + private ArgumentCaptor<LogicalDisplay> mLogicalDisplayCaptor; + @Captor + private ArgumentCaptor<Integer> mDisplayEventCaptor; + private ExternalDisplayPolicy mExternalDisplayPolicy; + private TestHandler mHandler; + + /** Setup tests. */ + @Before + public void setup() throws Exception { + MockitoAnnotations.initMocks(this); + mHandler = new TestHandler(/*callback=*/ null); + when(mMockedFlags.isConnectedDisplayManagementEnabled()).thenReturn(true); + when(mMockedFlags.isConnectedDisplayErrorHandlingEnabled()).thenReturn(true); + when(mMockedInjector.getFlags()).thenReturn(mMockedFlags); + when(mMockedInjector.getLogicalDisplayMapper()).thenReturn(mMockedLogicalDisplayMapper); + when(mMockedInjector.getThermalService()).thenReturn(mMockedThermalService); + when(mMockedInjector.getSyncRoot()).thenReturn(mMockedSyncRoot); + when(mMockedInjector.getDisplayNotificationManager()).thenReturn( + mMockedDisplayNotificationManager); + when(mMockedInjector.getHandler()).thenReturn(mHandler); + mExternalDisplayPolicy = new ExternalDisplayPolicy(mMockedInjector); + + // Initialize mocked logical display + when(mMockedLogicalDisplay.getDisplayIdLocked()).thenReturn(EXTERNAL_DISPLAY_ID); + when(mMockedLogicalDisplay.isEnabledLocked()).thenReturn(true); + final var mockedLogicalDisplayInfo = new DisplayInfo(); + mockedLogicalDisplayInfo.type = TYPE_EXTERNAL; + when(mMockedLogicalDisplay.getDisplayInfoLocked()).thenReturn(mockedLogicalDisplayInfo); + when(mMockedLogicalDisplayMapper.getDisplayLocked(EXTERNAL_DISPLAY_ID)).thenReturn( + mMockedLogicalDisplay); + } + + @Test + public void testTryEnableExternalDisplay_criticalThermalCondition() throws RemoteException { + // Disallow external displays due to thermals. + setTemperature(registerThermalListener(), List.of(CRITICAL_TEMPERATURE)); + assertIsExternalDisplayAllowed(/*enabled=*/ false); + assertDisplaySetEnabled(/*enabled=*/ false); + + // Check that display can not be enabled with tryEnableExternalDisplay. + mExternalDisplayPolicy.setExternalDisplayEnabledLocked(mMockedLogicalDisplay, + /*enabled=*/ true); + mHandler.flush(); + verify(mMockedLogicalDisplayMapper, never()).setDisplayEnabledLocked(any(), anyBoolean()); + verify(mMockedDisplayNotificationManager, times(2)) + .onHighTemperatureExternalDisplayNotAllowed(); + } + + @Test + public void testTryEnableExternalDisplay_featureDisabled(@TestParameter final boolean enable) { + when(mMockedFlags.isConnectedDisplayManagementEnabled()).thenReturn(false); + mExternalDisplayPolicy.setExternalDisplayEnabledLocked(mMockedLogicalDisplay, enable); + mHandler.flush(); + verify(mMockedLogicalDisplayMapper, never()).setDisplayEnabledLocked(any(), anyBoolean()); + verify(mMockedDisplayNotificationManager, never()) + .onHighTemperatureExternalDisplayNotAllowed(); + } + + @Test + public void testTryDisableExternalDisplay_criticalThermalCondition() throws RemoteException { + // Disallow external displays due to thermals. + setTemperature(registerThermalListener(), List.of(CRITICAL_TEMPERATURE)); + assertIsExternalDisplayAllowed(/*enabled=*/ false); + assertDisplaySetEnabled(/*enabled=*/ false); + + // Check that display can be disabled with tryEnableExternalDisplay. + mExternalDisplayPolicy.setExternalDisplayEnabledLocked(mMockedLogicalDisplay, + /*enabled=*/ false); + mHandler.flush(); + assertDisplaySetEnabled(/*enabled=*/ false); + // Expected only 1 invocation, upon critical temperature. + verify(mMockedDisplayNotificationManager).onHighTemperatureExternalDisplayNotAllowed(); + } + + @Test + public void testSetEnabledExternalDisplay(@TestParameter final boolean enable) { + mExternalDisplayPolicy.setExternalDisplayEnabledLocked(mMockedLogicalDisplay, enable); + assertDisplaySetEnabled(enable); + } + + @Test + public void testOnExternalDisplayAvailable() { + when(mMockedLogicalDisplay.isEnabledLocked()).thenReturn(false); + mExternalDisplayPolicy.handleExternalDisplayConnectedLocked(mMockedLogicalDisplay); + assertAskedToEnableDisplay(); + } + + @Test + public void testOnExternalDisplayAvailable_criticalThermalCondition() + throws RemoteException { + // Disallow external displays due to thermals. + setTemperature(registerThermalListener(), List.of(CRITICAL_TEMPERATURE)); + assertIsExternalDisplayAllowed(/*enabled=*/ false); + assertDisplaySetEnabled(/*enabled=*/ false); + + when(mMockedLogicalDisplay.isEnabledLocked()).thenReturn(false); + mExternalDisplayPolicy.handleExternalDisplayConnectedLocked(mMockedLogicalDisplay); + verify(mMockedInjector, never()).sendExternalDisplayEventLocked(any(), anyInt()); + verify(mMockedDisplayNotificationManager, times(2)) + .onHighTemperatureExternalDisplayNotAllowed(); + } + + @Test + public void testNoThermalListenerRegistered_featureDisabled( + @TestParameter final boolean isConnectedDisplayManagementEnabled, + @TestParameter final boolean isErrorHandlingEnabled) throws RemoteException { + assumeFalse(isConnectedDisplayManagementEnabled && isErrorHandlingEnabled); + when(mMockedFlags.isConnectedDisplayManagementEnabled()).thenReturn( + isConnectedDisplayManagementEnabled); + when(mMockedFlags.isConnectedDisplayErrorHandlingEnabled()).thenReturn( + isErrorHandlingEnabled); + + mExternalDisplayPolicy.onBootCompleted(); + verify(mMockedThermalService, never()).registerThermalEventListenerWithType( + any(), anyInt()); + } + + @Test + public void testOnCriticalTemperature_disallowAndAllowExternalDisplay() throws RemoteException { + final var thermalListener = registerThermalListener(); + + setTemperature(thermalListener, List.of(CRITICAL_TEMPERATURE, EMERGENCY_TEMPERATURE)); + assertIsExternalDisplayAllowed(/*enabled=*/ false); + assertDisplaySetEnabled(false); + + thermalListener.notifyThrottling(SEVERE_TEMPERATURE); + thermalListener.notifyThrottling(MODERATE_TEMPERATURE); + assertIsExternalDisplayAllowed(/*enabled=*/ true); + verify(mMockedLogicalDisplayMapper, never()).forEachLocked(any()); + } + + private void setTemperature(final IThermalEventListener thermalEventListener, + final List<Temperature> temperature) throws RemoteException { + for (var t : temperature) { + thermalEventListener.notifyThrottling(t); + } + verify(mMockedLogicalDisplayMapper).forEachLocked(mLogicalDisplayConsumerCaptor.capture()); + mLogicalDisplayConsumerCaptor.getValue().accept(mMockedLogicalDisplay); + } + + private void assertDisplaySetEnabled(final boolean enabled) { + // Check setDisplayEnabledLocked is triggered to disable display. + verify(mMockedLogicalDisplayMapper).setDisplayEnabledLocked( + mLogicalDisplayCaptor.capture(), mIsEnabledCaptor.capture()); + assertThat(mLogicalDisplayCaptor.getValue()).isEqualTo(mMockedLogicalDisplay); + assertThat(mIsEnabledCaptor.getValue()).isEqualTo(enabled); + clearInvocations(mMockedLogicalDisplayMapper); + when(mMockedLogicalDisplay.isEnabledLocked()).thenReturn(enabled); + } + + private void assertAskedToEnableDisplay() { + // Check sendExternalDisplayEventLocked is triggered when display can be enabled. + verify(mMockedInjector).sendExternalDisplayEventLocked(mLogicalDisplayCaptor.capture(), + mDisplayEventCaptor.capture()); + assertThat(mLogicalDisplayCaptor.getValue()).isEqualTo(mMockedLogicalDisplay); + assertThat(mDisplayEventCaptor.getValue()).isEqualTo(EVENT_DISPLAY_CONNECTED); + clearInvocations(mMockedLogicalDisplayMapper); + when(mMockedLogicalDisplay.isEnabledLocked()).thenReturn(true); + } + + private void assertIsExternalDisplayAllowed(final boolean enabled) { + assertThat(mExternalDisplayPolicy.isExternalDisplayAllowed()).isEqualTo(enabled); + } + + private IThermalEventListener registerThermalListener() throws RemoteException { + // Initialize and register thermal listener + mExternalDisplayPolicy.onBootCompleted(); + verify(mMockedThermalService).registerThermalEventListenerWithType( + mThermalEventListenerCaptor.capture(), mThermalEventTypeCaptor.capture()); + final IThermalEventListener listener = mThermalEventListenerCaptor.getValue(); + assertThat(listener).isNotNull(); + assertThat(mThermalEventTypeCaptor.getValue()).isEqualTo(Temperature.TYPE_SKIN); + return listener; + } +} diff --git a/services/tests/displayservicetests/src/com/android/server/display/LogicalDisplayMapperTest.java b/services/tests/displayservicetests/src/com/android/server/display/LogicalDisplayMapperTest.java index 8b13018fc14b..43d2b8f741ae 100644 --- a/services/tests/displayservicetests/src/com/android/server/display/LogicalDisplayMapperTest.java +++ b/services/tests/displayservicetests/src/com/android/server/display/LogicalDisplayMapperTest.java @@ -346,14 +346,14 @@ public class LogicalDisplayMapperTest { // Disable device mLogicalDisplayMapper.setDisplayEnabledLocked( - displayAdded.getDisplayIdLocked(), /* isEnabled= */ false); + displayAdded, /* isEnabled= */ false); verify(mListenerMock).onLogicalDisplayEventLocked(mDisplayCaptor.capture(), eq(LOGICAL_DISPLAY_EVENT_REMOVED)); clearInvocations(mListenerMock); // Enable device mLogicalDisplayMapper.setDisplayEnabledLocked( - displayAdded.getDisplayIdLocked(), /* isEnabled= */ true); + displayAdded, /* isEnabled= */ true); verify(mListenerMock).onLogicalDisplayEventLocked(mDisplayCaptor.capture(), eq(LOGICAL_DISPLAY_EVENT_ADDED)); } diff --git a/services/tests/displayservicetests/src/com/android/server/display/notifications/DisplayNotificationManagerTest.java b/services/tests/displayservicetests/src/com/android/server/display/notifications/DisplayNotificationManagerTest.java index 1d2034be4acb..4efd15c49bb5 100644 --- a/services/tests/displayservicetests/src/com/android/server/display/notifications/DisplayNotificationManagerTest.java +++ b/services/tests/displayservicetests/src/com/android/server/display/notifications/DisplayNotificationManagerTest.java @@ -75,6 +75,14 @@ public class DisplayNotificationManagerTest { } @Test + public void testNotificationOnHighTemperatureExternalDisplayNotAllowed() { + var dnm = createDisplayNotificationManager(/*isNotificationManagerAvailable=*/ true, + /*isErrorHandlingEnabled=*/ true); + dnm.onHighTemperatureExternalDisplayNotAllowed(); + assertExpectedNotification(); + } + + @Test public void testNotificationOnHotplugConnectionError() { var dnm = createDisplayNotificationManager(/*isNotificationManagerAvailable=*/ true, /*isErrorHandlingEnabled=*/ true); @@ -112,6 +120,7 @@ public class DisplayNotificationManagerTest { dnm.onHotplugConnectionError(); dnm.onDisplayPortLinkTrainingFailure(); dnm.onCableNotCapableDisplayPort(); + dnm.onHighTemperatureExternalDisplayNotAllowed(); verify(mMockedNotificationManager, never()).notify(anyString(), anyInt(), any()); } diff --git a/services/tests/mockingservicestests/src/com/android/server/AppStateTrackerTest.java b/services/tests/mockingservicestests/src/com/android/server/AppStateTrackerTest.java index 7ceccc57c0f1..47ae97fc5d27 100644 --- a/services/tests/mockingservicestests/src/com/android/server/AppStateTrackerTest.java +++ b/services/tests/mockingservicestests/src/com/android/server/AppStateTrackerTest.java @@ -44,7 +44,6 @@ import android.app.AppOpsManager.PackageOps; import android.app.IActivityManager; import android.app.IUidObserver; import android.app.usage.UsageStatsManager; -import android.content.AttributionSourceState; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; @@ -230,20 +229,12 @@ public class AppStateTrackerTest { private AppStateTrackerTestable newInstance() throws Exception { MockitoAnnotations.initMocks(this); - when(mMockIAppOpsService.checkOperationWithState(eq(TARGET_OP), any())) - .thenAnswer( - (Answer<Integer>) - invocation -> { - AttributionSourceState attribution = - (AttributionSourceState) invocation.getArguments()[1]; - return mRestrictedPackages.indexOf( - Pair.create( - attribution.uid, - attribution.packageName)) - >= 0 - ? AppOpsManager.MODE_IGNORED - : AppOpsManager.MODE_ALLOWED; - }); + when(mMockIAppOpsService.checkOperation(eq(TARGET_OP), anyInt(), anyString())) + .thenAnswer(inv -> { + return mRestrictedPackages.indexOf( + Pair.create(inv.getArgument(1), inv.getArgument(2))) >= 0 ? + AppOpsManager.MODE_IGNORED : AppOpsManager.MODE_ALLOWED; + }); final AppStateTrackerTestable instance = new AppStateTrackerTestable(); diff --git a/services/tests/mockingservicestests/src/com/android/server/am/ActivityManagerServiceTest.java b/services/tests/mockingservicestests/src/com/android/server/am/ActivityManagerServiceTest.java index 032d026648df..2f909f818bfe 100644 --- a/services/tests/mockingservicestests/src/com/android/server/am/ActivityManagerServiceTest.java +++ b/services/tests/mockingservicestests/src/com/android/server/am/ActivityManagerServiceTest.java @@ -69,7 +69,6 @@ import android.app.BroadcastOptions; import android.app.IApplicationThread; import android.app.IUidObserver; import android.app.SyncNotedAppOp; -import android.content.AttributionSourceState; import android.content.ComponentName; import android.content.Context; import android.content.Intent; @@ -234,16 +233,12 @@ public class ActivityManagerServiceTest { assertThat(sProcessListSettingsListener).isNotNull(); } - private void mockNoteOp() { + private void mockNoteOperation() { SyncNotedAppOp allowed = new SyncNotedAppOp(AppOpsManager.MODE_ALLOWED, AppOpsManager.OP_GET_USAGE_STATS, null, mContext.getPackageName()); - when(mAppOpsService.noteOperationWithState( - eq(AppOpsManager.OP_GET_USAGE_STATS), - any(AttributionSourceState.class), - any(Boolean.class), - nullable(String.class), - any(Boolean.class))) - .thenReturn(allowed); + when(mAppOpsService.noteOperation(eq(AppOpsManager.OP_GET_USAGE_STATS), eq(Process.myUid()), + nullable(String.class), nullable(String.class), any(Boolean.class), + nullable(String.class), any(Boolean.class))).thenReturn(allowed); } @After @@ -696,7 +691,7 @@ public class ActivityManagerServiceTest { */ @Test public void testDispatchUids_dispatchNeededChanges() throws RemoteException { - mockNoteOp(); + mockNoteOperation(); final int[] changesToObserve = { ActivityManager.UID_OBSERVER_PROCSTATE, @@ -905,7 +900,7 @@ public class ActivityManagerServiceTest { */ @Test public void testDispatchUidChanges_procStateCutpoint() throws RemoteException { - mockNoteOp(); + mockNoteOperation(); final IUidObserver observer = mock(IUidObserver.Stub.class); @@ -975,7 +970,7 @@ public class ActivityManagerServiceTest { */ @Test public void testDispatchUidChanges_validateUidsUpdated() { - mockNoteOp(); + mockNoteOperation(); final int[] changesForPendingItems = UID_RECORD_CHANGES; diff --git a/services/tests/mockingservicestests/src/com/android/server/am/BackgroundRestrictionTest.java b/services/tests/mockingservicestests/src/com/android/server/am/BackgroundRestrictionTest.java index dcbee83b839b..bb91939c430e 100644 --- a/services/tests/mockingservicestests/src/com/android/server/am/BackgroundRestrictionTest.java +++ b/services/tests/mockingservicestests/src/com/android/server/am/BackgroundRestrictionTest.java @@ -113,8 +113,6 @@ import android.app.Notification; import android.app.NotificationManager; import android.app.role.RoleManager; import android.app.usage.AppStandbyInfo; -import android.content.AttributionSource; -import android.content.AttributionSourceState; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; @@ -2456,12 +2454,9 @@ public final class BackgroundRestrictionTest { doReturn(granted ? MODE_ALLOWED : MODE_IGNORED) .when(mAppOpsManager) .checkOpNoThrow(op, uid, packageName); - AttributionSource attributionSource = - new AttributionSource.Builder(uid).setPackageName(packageName).build(); - AttributionSourceState attributionSourceState = attributionSource.asState(); doReturn(granted ? MODE_ALLOWED : MODE_IGNORED) .when(mIAppOpsService) - .checkOperationWithState(eq(op), eq(attributionSourceState)); + .checkOperation(op, uid, packageName); } catch (RemoteException e) { // Ignore. } diff --git a/services/tests/mockingservicestests/src/com/android/server/appop/AppOpsServiceTest.java b/services/tests/mockingservicestests/src/com/android/server/appop/AppOpsServiceTest.java index daed5df4edd7..646f4862d75d 100644 --- a/services/tests/mockingservicestests/src/com/android/server/appop/AppOpsServiceTest.java +++ b/services/tests/mockingservicestests/src/com/android/server/appop/AppOpsServiceTest.java @@ -49,7 +49,6 @@ import static org.mockito.ArgumentMatchers.nullable; import android.app.AppOpsManager; import android.app.AppOpsManager.OpEntry; import android.app.AppOpsManager.PackageOps; -import android.content.AttributionSource; import android.content.ContentResolver; import android.content.Context; import android.content.pm.PackageManagerInternal; @@ -217,21 +216,18 @@ public class AppOpsServiceTest { } @Test - public void testNoteOpAndGetOpsForPackage() { + public void testNoteOperationAndGetOpsForPackage() { mAppOpsService.setMode(OP_READ_SMS, mMyUid, sMyPackageName, MODE_ALLOWED); mAppOpsService.setMode(OP_WRITE_SMS, mMyUid, sMyPackageName, MODE_ERRORED); - AttributionSource attributionSource = - new AttributionSource.Builder(mMyUid).setPackageName(sMyPackageName).build(); // Note an op that's allowed. - mAppOpsService.noteOperationWithState(OP_READ_SMS, attributionSource.asState(), false, - null, false); + mAppOpsService.noteOperation(OP_READ_SMS, mMyUid, sMyPackageName, null, false, null, false); List<PackageOps> loggedOps = getLoggedOps(); assertContainsOp(loggedOps, OP_READ_SMS, mTestStartMillis, -1, MODE_ALLOWED); // Note another op that's not allowed. - mAppOpsService.noteOperationWithState(OP_WRITE_SMS, attributionSource.asState(), false, - null, false); + mAppOpsService.noteOperation(OP_WRITE_SMS, mMyUid, sMyPackageName, null, false, null, + false); loggedOps = getLoggedOps(); assertContainsOp(loggedOps, OP_READ_SMS, mTestStartMillis, -1, MODE_ALLOWED); assertContainsOp(loggedOps, OP_WRITE_SMS, -1, mTestStartMillis, MODE_ERRORED); @@ -243,24 +239,20 @@ public class AppOpsServiceTest { * ACCESS_COARSE_LOCATION op is used to check whether WIFI_SCAN is allowed. */ @Test - public void testNoteOpAndGetOpsForPackage_controlledByDifferentOp() { + public void testNoteOperationAndGetOpsForPackage_controlledByDifferentOp() { // This op controls WIFI_SCAN mAppOpsService.setMode(OP_COARSE_LOCATION, mMyUid, sMyPackageName, MODE_ALLOWED); - assertThat(mAppOpsService.noteOperationWithState(OP_WIFI_SCAN, - new AttributionSource.Builder(mMyUid).setPackageName(sMyPackageName) - .build().asState(), false, null, false).getOpMode()) - .isEqualTo(MODE_ALLOWED); + assertThat(mAppOpsService.noteOperation(OP_WIFI_SCAN, mMyUid, sMyPackageName, null, false, + null, false).getOpMode()).isEqualTo(MODE_ALLOWED); assertContainsOp(getLoggedOps(), OP_WIFI_SCAN, mTestStartMillis, -1, MODE_ALLOWED /* default for WIFI_SCAN; this is not changed or used in this test */); // Now set COARSE_LOCATION to ERRORED -> this will make WIFI_SCAN disabled as well. mAppOpsService.setMode(OP_COARSE_LOCATION, mMyUid, sMyPackageName, MODE_ERRORED); - assertThat(mAppOpsService.noteOperationWithState(OP_WIFI_SCAN, - new AttributionSource.Builder(mMyUid).setPackageName(sMyPackageName) - .build().asState(), false, null, false) - .getOpMode()).isEqualTo(MODE_ERRORED); + assertThat(mAppOpsService.noteOperation(OP_WIFI_SCAN, mMyUid, sMyPackageName, null, false, + null, false).getOpMode()).isEqualTo(MODE_ERRORED); assertContainsOp(getLoggedOps(), OP_WIFI_SCAN, mTestStartMillis, mTestStartMillis, MODE_ALLOWED /* default for WIFI_SCAN; this is not changed or used in this test */); @@ -271,12 +263,9 @@ public class AppOpsServiceTest { public void testStatePersistence() { mAppOpsService.setMode(OP_READ_SMS, mMyUid, sMyPackageName, MODE_ALLOWED); mAppOpsService.setMode(OP_WRITE_SMS, mMyUid, sMyPackageName, MODE_ERRORED); - AttributionSource attributionSource = - new AttributionSource.Builder(mMyUid).setPackageName(sMyPackageName).build(); - mAppOpsService.noteOperationWithState(OP_READ_SMS, attributionSource.asState(), false, - null, false); - mAppOpsService.noteOperationWithState(OP_WRITE_SMS, attributionSource.asState(), false, - null, false); + mAppOpsService.noteOperation(OP_READ_SMS, mMyUid, sMyPackageName, null, false, null, false); + mAppOpsService.noteOperation(OP_WRITE_SMS, mMyUid, sMyPackageName, null, false, null, + false); mAppOpsService.shutdown(); @@ -294,10 +283,7 @@ public class AppOpsServiceTest { @Test public void testShutdown() { mAppOpsService.setMode(OP_READ_SMS, mMyUid, sMyPackageName, MODE_ALLOWED); - AttributionSource attributionSource = - new AttributionSource.Builder(mMyUid).setPackageName(sMyPackageName).build(); - mAppOpsService.noteOperationWithState(OP_READ_SMS, attributionSource.asState(), false, - null, false); + mAppOpsService.noteOperation(OP_READ_SMS, mMyUid, sMyPackageName, null, false, null, false); mAppOpsService.shutdown(); // Create a new app ops service which will initialize its state from XML. @@ -311,10 +297,7 @@ public class AppOpsServiceTest { @Test public void testGetOpsForPackage() { mAppOpsService.setMode(OP_READ_SMS, mMyUid, sMyPackageName, MODE_ALLOWED); - AttributionSource attributionSource = - new AttributionSource.Builder(mMyUid).setPackageName(sMyPackageName).build(); - mAppOpsService.noteOperationWithState(OP_READ_SMS, attributionSource.asState(), false, - null, false); + mAppOpsService.noteOperation(OP_READ_SMS, mMyUid, sMyPackageName, null, false, null, false); // Query all ops List<PackageOps> loggedOps = mAppOpsService.getOpsForPackage( @@ -343,10 +326,7 @@ public class AppOpsServiceTest { @Test public void testPackageRemoved() { mAppOpsService.setMode(OP_READ_SMS, mMyUid, sMyPackageName, MODE_ALLOWED); - AttributionSource attributionSource = - new AttributionSource.Builder(mMyUid).setPackageName(sMyPackageName).build(); - mAppOpsService.noteOperationWithState(OP_READ_SMS, attributionSource.asState(), false, - null, false); + mAppOpsService.noteOperation(OP_READ_SMS, mMyUid, sMyPackageName, null, false, null, false); List<PackageOps> loggedOps = getLoggedOps(); assertContainsOp(loggedOps, OP_READ_SMS, mTestStartMillis, -1, MODE_ALLOWED); @@ -361,8 +341,7 @@ public class AppOpsServiceTest { @Test public void testPackageRemovedHistoricalOps() throws InterruptedException { mAppOpsService.setMode(OP_READ_SMS, mMyUid, sMyPackageName, MODE_ALLOWED); - mAppOpsService.noteOperationWithState(OP_READ_SMS, mMyUid, sMyPackageName, null, false, - null, false); + mAppOpsService.noteOperation(OP_READ_SMS, mMyUid, sMyPackageName, null, false, null, false); AppOpsManager.HistoricalOps historicalOps = new AppOpsManager.HistoricalOps(0, 15000); historicalOps.increaseAccessCount(OP_READ_SMS, mMyUid, sMyPackageName, null, @@ -402,10 +381,7 @@ public class AppOpsServiceTest { @Test public void testUidRemoved() { mAppOpsService.setMode(OP_READ_SMS, mMyUid, sMyPackageName, MODE_ALLOWED); - AttributionSource attributionSource = - new AttributionSource.Builder(mMyUid).setPackageName(sMyPackageName).build(); - mAppOpsService.noteOperationWithState(OP_READ_SMS, attributionSource.asState(), - false, null, false); + mAppOpsService.noteOperation(OP_READ_SMS, mMyUid, sMyPackageName, null, false, null, false); List<PackageOps> loggedOps = getLoggedOps(); assertContainsOp(loggedOps, OP_READ_SMS, mTestStartMillis, -1, MODE_ALLOWED); @@ -417,10 +393,7 @@ public class AppOpsServiceTest { @Test public void testUidStateInitializationDoesntClearState() throws InterruptedException { mAppOpsService.setMode(OP_READ_SMS, mMyUid, sMyPackageName, MODE_ALLOWED); - AttributionSource attributionSource = - new AttributionSource.Builder(mMyUid).setPackageName(sMyPackageName).build(); - mAppOpsService.noteOperationWithState(OP_READ_SMS, attributionSource.asState(), false, - null, false); + mAppOpsService.noteOperation(OP_READ_SMS, mMyUid, sMyPackageName, null, false, null, false); mAppOpsService.initializeUidStates(); List<PackageOps> ops = mAppOpsService.getOpsForPackage(mMyUid, sMyPackageName, new int[]{OP_READ_SMS}); diff --git a/services/tests/mockingservicestests/src/com/android/server/job/controllers/ConnectivityControllerTest.java b/services/tests/mockingservicestests/src/com/android/server/job/controllers/ConnectivityControllerTest.java index 64e86f9ab1fd..10f8510c7c70 100644 --- a/services/tests/mockingservicestests/src/com/android/server/job/controllers/ConnectivityControllerTest.java +++ b/services/tests/mockingservicestests/src/com/android/server/job/controllers/ConnectivityControllerTest.java @@ -24,7 +24,9 @@ import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_VCN_MANAGED; import static android.net.NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED; import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED; import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR; +import static android.net.NetworkCapabilities.TRANSPORT_TEST; import static android.net.NetworkCapabilities.TRANSPORT_VPN; +import static android.net.NetworkCapabilities.TRANSPORT_WIFI; import static android.text.format.DateUtils.SECOND_IN_MILLIS; import static com.android.dx.mockito.inline.extended.ExtendedMockito.doAnswer; @@ -38,6 +40,10 @@ import static com.android.server.job.Flags.FLAG_RELAX_PREFETCH_CONNECTIVITY_CONS import static com.android.server.job.JobSchedulerService.FREQUENT_INDEX; import static com.android.server.job.JobSchedulerService.RARE_INDEX; import static com.android.server.job.JobSchedulerService.RESTRICTED_INDEX; +import static com.android.server.job.controllers.ConnectivityController.CcConfig.KEY_AVOID_UNDEFINED_TRANSPORT_AFFINITY; +import static com.android.server.job.controllers.ConnectivityController.TRANSPORT_AFFINITY_AVOID; +import static com.android.server.job.controllers.ConnectivityController.TRANSPORT_AFFINITY_PREFER; +import static com.android.server.job.controllers.ConnectivityController.TRANSPORT_AFFINITY_UNDEFINED; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -64,16 +70,19 @@ import android.net.ConnectivityManager.NetworkCallback; import android.net.Network; import android.net.NetworkCapabilities; import android.net.NetworkPolicyManager; +import android.net.NetworkRequest; import android.os.Build; import android.os.Looper; import android.os.SystemClock; import android.platform.test.flag.junit.SetFlagsRule; +import android.provider.DeviceConfig; import android.telephony.CellSignalStrength; import android.telephony.SignalStrength; import android.telephony.TelephonyCallback; import android.telephony.TelephonyManager; import android.util.DataUnit; +import com.android.server.AppSchedulingModuleThread; import com.android.server.LocalServices; import com.android.server.job.JobSchedulerInternal; import com.android.server.job.JobSchedulerService; @@ -114,6 +123,7 @@ public class ConnectivityControllerTest { public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); private Constants mConstants; + private DeviceConfig.Properties.Builder mDeviceConfigPropertiesBuilder; private FlexibilityController mFlexibilityController; private static final int UID_RED = 10001; @@ -135,6 +145,9 @@ public class ConnectivityControllerTest { LocalServices.removeServiceForTest(JobSchedulerInternal.class); LocalServices.addService(JobSchedulerInternal.class, mock(JobSchedulerInternal.class)); + mDeviceConfigPropertiesBuilder = + new DeviceConfig.Properties.Builder(DeviceConfig.NAMESPACE_JOB_SCHEDULER); + // Freeze the clocks at this moment in time JobSchedulerService.sSystemClock = Clock.fixed(Clock.systemUTC().instant(), ZoneOffset.UTC); @@ -164,7 +177,7 @@ public class ConnectivityControllerTest { when(mPackageManager.hasSystemFeature( PackageManager.FEATURE_AUTOMOTIVE)).thenReturn(false); mFlexibilityController = - new FlexibilityController(mService, mock(PrefetchController.class)); + spy(new FlexibilityController(mService, mock(PrefetchController.class))); } @Test @@ -954,6 +967,12 @@ public class ConnectivityControllerTest { @Test public void testUpdates() throws Exception { + ConnectivityController.sNetworkTransportAffinities.put( + NetworkCapabilities.TRANSPORT_CELLULAR, TRANSPORT_AFFINITY_AVOID); + ConnectivityController.sNetworkTransportAffinities.put( + NetworkCapabilities.TRANSPORT_WIFI, TRANSPORT_AFFINITY_PREFER); + ConnectivityController.sNetworkTransportAffinities.put( + NetworkCapabilities.TRANSPORT_TEST, TRANSPORT_AFFINITY_UNDEFINED); final ArgumentCaptor<NetworkCallback> callbackCaptor = ArgumentCaptor.forClass(NetworkCallback.class); doNothing().when(mConnManager).registerNetworkCallback(any(), callbackCaptor.capture()); @@ -966,16 +985,24 @@ public class ConnectivityControllerTest { doNothing().when(mConnManager).registerDefaultNetworkCallbackForUid( eq(UID_BLUE), blueCallbackCaptor.capture(), any()); + doReturn(true).when(mFlexibilityController).isEnabled(); + final ConnectivityController controller = new ConnectivityController(mService, mFlexibilityController); - final Network meteredNet = mock(Network.class); final NetworkCapabilities meteredCaps = createCapabilitiesBuilder().build(); final Network unmeteredNet = mock(Network.class); final NetworkCapabilities unmeteredCaps = createCapabilitiesBuilder() .addCapability(NET_CAPABILITY_NOT_METERED) .build(); + final NetworkCapabilities meteredWifiCaps = createCapabilitiesBuilder() + .addTransportType(TRANSPORT_WIFI) + .build(); + final NetworkCapabilities unmeteredCelullarCaps = createCapabilitiesBuilder() + .addCapability(NET_CAPABILITY_NOT_METERED) + .addTransportType(TRANSPORT_CELLULAR) + .build(); final JobStatus red = createJobStatus(createJob() .setEstimatedNetworkBytes(DataUnit.MEBIBYTES.toBytes(1), 0) @@ -983,11 +1010,29 @@ public class ConnectivityControllerTest { final JobStatus blue = createJobStatus(createJob() .setEstimatedNetworkBytes(DataUnit.MEBIBYTES.toBytes(1), 0) .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY), UID_BLUE); - assertFalse(red.getPreferUnmetered()); - assertTrue(blue.getPreferUnmetered()); + final JobStatus red2 = createJobStatus(createJob() + .setEstimatedNetworkBytes(DataUnit.MEBIBYTES.toBytes(1), 0) + .setRequiredNetwork( + new NetworkRequest.Builder() + .addTransportType(TRANSPORT_CELLULAR) + .build()), + UID_RED); + final JobStatus blue2 = createJobStatus(createJob() + .setEstimatedNetworkBytes(DataUnit.MEBIBYTES.toBytes(1), 0) + .setRequiredNetwork( + new NetworkRequest.Builder() + .addTransportType(TRANSPORT_WIFI) + .build()), + UID_BLUE); + assertTrue(red.canApplyTransportAffinities()); + assertTrue(blue.canApplyTransportAffinities()); + assertFalse(red2.canApplyTransportAffinities()); + assertFalse(blue2.canApplyTransportAffinities()); controller.maybeStartTrackingJobLocked(red, null); controller.maybeStartTrackingJobLocked(blue, null); + controller.maybeStartTrackingJobLocked(red2, null); + controller.maybeStartTrackingJobLocked(blue2, null); final NetworkCallback generalCallback = callbackCaptor.getValue(); final NetworkCallback redCallback = redCallbackCaptor.getValue(); final NetworkCallback blueCallback = blueCallbackCaptor.getValue(); @@ -998,9 +1043,13 @@ public class ConnectivityControllerTest { answerNetwork(generalCallback, blueCallback, null, null, null); assertFalse(red.isConstraintSatisfied(JobStatus.CONSTRAINT_CONNECTIVITY)); - assertFalse(red.getHasAccessToUnmetered()); assertFalse(blue.isConstraintSatisfied(JobStatus.CONSTRAINT_CONNECTIVITY)); - assertFalse(blue.getHasAccessToUnmetered()); + assertFalse(red2.isConstraintSatisfied(JobStatus.CONSTRAINT_CONNECTIVITY)); + assertFalse(blue2.isConstraintSatisfied(JobStatus.CONSTRAINT_CONNECTIVITY)); + assertFalse(red.areTransportAffinitiesSatisfied()); + assertFalse(blue.areTransportAffinitiesSatisfied()); + assertFalse(red2.areTransportAffinitiesSatisfied()); + assertFalse(blue2.areTransportAffinitiesSatisfied()); } // Metered network @@ -1011,12 +1060,26 @@ public class ConnectivityControllerTest { generalCallback.onCapabilitiesChanged(meteredNet, meteredCaps); assertFalse(red.isConstraintSatisfied(JobStatus.CONSTRAINT_CONNECTIVITY)); - assertFalse(red.getHasAccessToUnmetered()); assertTrue(blue.isConstraintSatisfied(JobStatus.CONSTRAINT_CONNECTIVITY)); - assertFalse(blue.getHasAccessToUnmetered()); + assertFalse(red2.isConstraintSatisfied(JobStatus.CONSTRAINT_CONNECTIVITY)); + assertFalse(blue2.isConstraintSatisfied(JobStatus.CONSTRAINT_CONNECTIVITY)); + // No transport is specified. Accept the network for transport affinity. + setDeviceConfigBoolean(controller, KEY_AVOID_UNDEFINED_TRANSPORT_AFFINITY, false); + controller.onConstantsUpdatedLocked(); + assertFalse(red.areTransportAffinitiesSatisfied()); + assertTrue(blue.areTransportAffinitiesSatisfied()); + assertFalse(red2.areTransportAffinitiesSatisfied()); + assertFalse(blue2.areTransportAffinitiesSatisfied()); + // No transport is specified. Avoid the network for transport affinity. + setDeviceConfigBoolean(controller, KEY_AVOID_UNDEFINED_TRANSPORT_AFFINITY, true); + controller.onConstantsUpdatedLocked(); + assertFalse(red.areTransportAffinitiesSatisfied()); + assertFalse(blue.areTransportAffinitiesSatisfied()); + assertFalse(red2.areTransportAffinitiesSatisfied()); + assertFalse(blue2.areTransportAffinitiesSatisfied()); } - // Unmetered network background + // Unmetered network background for general; metered network for apps { answerNetwork(generalCallback, redCallback, meteredNet, meteredNet, meteredCaps); answerNetwork(generalCallback, blueCallback, meteredNet, meteredNet, meteredCaps); @@ -1024,10 +1087,22 @@ public class ConnectivityControllerTest { generalCallback.onCapabilitiesChanged(unmeteredNet, unmeteredCaps); assertFalse(red.isConstraintSatisfied(JobStatus.CONSTRAINT_CONNECTIVITY)); - assertFalse(red.getHasAccessToUnmetered()); - assertTrue(blue.isConstraintSatisfied(JobStatus.CONSTRAINT_CONNECTIVITY)); - assertFalse(blue.getHasAccessToUnmetered()); + + // No transport is specified. Accept the network for transport affinity. + setDeviceConfigBoolean(controller, KEY_AVOID_UNDEFINED_TRANSPORT_AFFINITY, false); + controller.onConstantsUpdatedLocked(); + assertFalse(red.areTransportAffinitiesSatisfied()); + assertTrue(blue.areTransportAffinitiesSatisfied()); + assertFalse(red2.areTransportAffinitiesSatisfied()); + assertFalse(blue2.areTransportAffinitiesSatisfied()); + // No transport is specified. Avoid the network for transport affinity. + setDeviceConfigBoolean(controller, KEY_AVOID_UNDEFINED_TRANSPORT_AFFINITY, true); + controller.onConstantsUpdatedLocked(); + assertFalse(red.areTransportAffinitiesSatisfied()); + assertFalse(blue.areTransportAffinitiesSatisfied()); + assertFalse(red2.areTransportAffinitiesSatisfied()); + assertFalse(blue2.areTransportAffinitiesSatisfied()); } // Lost metered network @@ -1038,10 +1113,7 @@ public class ConnectivityControllerTest { generalCallback.onLost(meteredNet); assertTrue(red.isConstraintSatisfied(JobStatus.CONSTRAINT_CONNECTIVITY)); - assertFalse(red.getHasAccessToUnmetered()); - assertTrue(blue.isConstraintSatisfied(JobStatus.CONSTRAINT_CONNECTIVITY)); - assertTrue(blue.getHasAccessToUnmetered()); } // Specific UID was blocked @@ -1052,9 +1124,99 @@ public class ConnectivityControllerTest { generalCallback.onCapabilitiesChanged(unmeteredNet, unmeteredCaps); assertFalse(red.isConstraintSatisfied(JobStatus.CONSTRAINT_CONNECTIVITY)); - assertFalse(red.getHasAccessToUnmetered()); assertTrue(blue.isConstraintSatisfied(JobStatus.CONSTRAINT_CONNECTIVITY)); - assertTrue(blue.getHasAccessToUnmetered()); + } + + // Metered wifi + { + answerNetwork(generalCallback, redCallback, null, meteredNet, meteredWifiCaps); + answerNetwork(generalCallback, blueCallback, unmeteredNet, meteredNet, meteredWifiCaps); + + generalCallback.onCapabilitiesChanged(meteredNet, meteredWifiCaps); + + assertFalse(red.isConstraintSatisfied(JobStatus.CONSTRAINT_CONNECTIVITY)); + assertTrue(blue.isConstraintSatisfied(JobStatus.CONSTRAINT_CONNECTIVITY)); + assertFalse(red2.isConstraintSatisfied(JobStatus.CONSTRAINT_CONNECTIVITY)); + assertTrue(blue2.isConstraintSatisfied(JobStatus.CONSTRAINT_CONNECTIVITY)); + + // Wifi is preferred. + setDeviceConfigBoolean(controller, KEY_AVOID_UNDEFINED_TRANSPORT_AFFINITY, false); + controller.onConstantsUpdatedLocked(); + assertFalse(red.areTransportAffinitiesSatisfied()); + assertTrue(blue.areTransportAffinitiesSatisfied()); + assertFalse(red2.areTransportAffinitiesSatisfied()); + assertTrue(blue2.areTransportAffinitiesSatisfied()); + // Wifi is preferred. + setDeviceConfigBoolean(controller, KEY_AVOID_UNDEFINED_TRANSPORT_AFFINITY, true); + controller.onConstantsUpdatedLocked(); + assertFalse(red.areTransportAffinitiesSatisfied()); + assertTrue(blue.areTransportAffinitiesSatisfied()); + assertFalse(red2.areTransportAffinitiesSatisfied()); + assertTrue(blue2.areTransportAffinitiesSatisfied()); + } + + // Unmetered cellular + { + answerNetwork(generalCallback, redCallback, meteredNet, + unmeteredNet, unmeteredCelullarCaps); + answerNetwork(generalCallback, blueCallback, meteredNet, + unmeteredNet, unmeteredCelullarCaps); + + generalCallback.onCapabilitiesChanged(unmeteredNet, unmeteredCelullarCaps); + + assertTrue(red.isConstraintSatisfied(JobStatus.CONSTRAINT_CONNECTIVITY)); + assertTrue(blue.isConstraintSatisfied(JobStatus.CONSTRAINT_CONNECTIVITY)); + assertTrue(red2.isConstraintSatisfied(JobStatus.CONSTRAINT_CONNECTIVITY)); + assertFalse(blue2.isConstraintSatisfied(JobStatus.CONSTRAINT_CONNECTIVITY)); + + // Cellular is avoided. + setDeviceConfigBoolean(controller, KEY_AVOID_UNDEFINED_TRANSPORT_AFFINITY, false); + controller.onConstantsUpdatedLocked(); + assertFalse(red.areTransportAffinitiesSatisfied()); + assertFalse(blue.areTransportAffinitiesSatisfied()); + assertFalse(red2.areTransportAffinitiesSatisfied()); + assertFalse(blue2.areTransportAffinitiesSatisfied()); + // Cellular is avoided. + setDeviceConfigBoolean(controller, KEY_AVOID_UNDEFINED_TRANSPORT_AFFINITY, true); + controller.onConstantsUpdatedLocked(); + assertFalse(red.areTransportAffinitiesSatisfied()); + assertFalse(blue.areTransportAffinitiesSatisfied()); + assertFalse(red2.areTransportAffinitiesSatisfied()); + assertFalse(blue2.areTransportAffinitiesSatisfied()); + } + + // Undefined affinity + final NetworkCapabilities unmeteredTestCaps = createCapabilitiesBuilder() + .addCapability(NET_CAPABILITY_NOT_METERED) + .addTransportType(TRANSPORT_TEST) + .build(); + { + answerNetwork(generalCallback, redCallback, unmeteredNet, + unmeteredNet, unmeteredTestCaps); + answerNetwork(generalCallback, blueCallback, unmeteredNet, + unmeteredNet, unmeteredTestCaps); + + generalCallback.onCapabilitiesChanged(unmeteredNet, unmeteredTestCaps); + + assertTrue(red.isConstraintSatisfied(JobStatus.CONSTRAINT_CONNECTIVITY)); + assertTrue(blue.isConstraintSatisfied(JobStatus.CONSTRAINT_CONNECTIVITY)); + assertFalse(red2.isConstraintSatisfied(JobStatus.CONSTRAINT_CONNECTIVITY)); + assertFalse(blue2.isConstraintSatisfied(JobStatus.CONSTRAINT_CONNECTIVITY)); + + // Undefined is preferred. + setDeviceConfigBoolean(controller, KEY_AVOID_UNDEFINED_TRANSPORT_AFFINITY, false); + controller.onConstantsUpdatedLocked(); + assertTrue(red.areTransportAffinitiesSatisfied()); + assertTrue(blue.areTransportAffinitiesSatisfied()); + assertFalse(red2.areTransportAffinitiesSatisfied()); + assertFalse(blue2.areTransportAffinitiesSatisfied()); + // Undefined is avoided. + setDeviceConfigBoolean(controller, KEY_AVOID_UNDEFINED_TRANSPORT_AFFINITY, true); + controller.onConstantsUpdatedLocked(); + assertFalse(red.areTransportAffinitiesSatisfied()); + assertFalse(blue.areTransportAffinitiesSatisfied()); + assertFalse(red2.areTransportAffinitiesSatisfied()); + assertFalse(blue2.areTransportAffinitiesSatisfied()); } } @@ -1462,4 +1624,24 @@ public class ConnectivityControllerTest { return new JobStatus(job.build(), uid, null, -1, 0, null, null, earliestRunTimeElapsedMillis, latestRunTimeElapsedMillis, 0, 0, 0, null, 0, 0); } + + private void setDeviceConfigBoolean(ConnectivityController connectivityController, + String key, boolean val) { + mDeviceConfigPropertiesBuilder.setBoolean(key, val); + synchronized (connectivityController.mLock) { + connectivityController.prepareForUpdatedConstantsLocked(); + mFlexibilityController.prepareForUpdatedConstantsLocked(); + connectivityController.getCcConfig() + .processConstantLocked(mDeviceConfigPropertiesBuilder.build(), key); + mFlexibilityController.getFcConfig() + .processConstantLocked(mDeviceConfigPropertiesBuilder.build(), key); + connectivityController.onConstantsUpdatedLocked(); + mFlexibilityController.onConstantsUpdatedLocked(); + } + waitForNonDelayedMessagesProcessed(); + } + + private void waitForNonDelayedMessagesProcessed() { + AppSchedulingModuleThread.getHandler().runWithScissors(() -> {}, 15_000); + } } diff --git a/services/tests/mockingservicestests/src/com/android/server/job/controllers/FlexibilityControllerTest.java b/services/tests/mockingservicestests/src/com/android/server/job/controllers/FlexibilityControllerTest.java index bb9dcf1c85cc..ee68b6d0e546 100644 --- a/services/tests/mockingservicestests/src/com/android/server/job/controllers/FlexibilityControllerTest.java +++ b/services/tests/mockingservicestests/src/com/android/server/job/controllers/FlexibilityControllerTest.java @@ -692,15 +692,15 @@ public class FlexibilityControllerTest { } @Test - public void testConnectionToUnMeteredNetwork() { + public void testTransportAffinity() { JobInfo.Builder jb = createJob(0).setRequiredNetworkType(NETWORK_TYPE_ANY); JobStatus js = createJobStatus("testTopAppBypass", jb); synchronized (mFlexibilityController.mLock) { - js.setHasAccessToUnmetered(false); + js.setTransportAffinitiesSatisfied(false); assertEquals(0, mFlexibilityController.getNumSatisfiedRequiredConstraintsLocked(js)); - js.setHasAccessToUnmetered(true); + js.setTransportAffinitiesSatisfied(true); assertEquals(1, mFlexibilityController.getNumSatisfiedRequiredConstraintsLocked(js)); - js.setHasAccessToUnmetered(false); + js.setTransportAffinitiesSatisfied(false); assertEquals(0, mFlexibilityController.getNumSatisfiedRequiredConstraintsLocked(js)); } } @@ -937,10 +937,10 @@ public class FlexibilityControllerTest { ArraySet<JobStatus> jobs = trackedJobs.get(i); for (int j = 0; j < jobs.size(); j++) { JobStatus js = jobs.valueAt(j); - final int isUnMetered = js.getPreferUnmetered() - && js.getHasAccessToUnmetered() ? 1 : 0; + final int transportAffinitySatisfied = js.canApplyTransportAffinities() + && js.areTransportAffinitiesSatisfied() ? 1 : 0; assertEquals(js.getNumRequiredFlexibleConstraints() - <= numSatisfiedConstraints + isUnMetered, + <= numSatisfiedConstraints + transportAffinitySatisfied, js.isConstraintSatisfied(CONSTRAINT_FLEXIBLE)); } } diff --git a/services/tests/powerservicetests/src/com/android/server/power/PowerGroupTest.java b/services/tests/powerservicetests/src/com/android/server/power/PowerGroupTest.java index fe31b9cbe558..a776eec4546f 100644 --- a/services/tests/powerservicetests/src/com/android/server/power/PowerGroupTest.java +++ b/services/tests/powerservicetests/src/com/android/server/power/PowerGroupTest.java @@ -267,7 +267,8 @@ public class PowerGroupTest { /* dozeAfterScreenOff= */ false, /* bootCompleted= */ true, /* screenBrightnessBoostInProgress= */ false, - /* waitForNegativeProximity= */ false); + /* waitForNegativeProximity= */ false, + /* brightWhenDozing= */ false); DisplayManagerInternal.DisplayPowerRequest displayPowerRequest = mPowerGroup.mDisplayPowerRequest; assertThat(displayPowerRequest.policy).isEqualTo(POLICY_DIM); @@ -305,7 +306,8 @@ public class PowerGroupTest { /* dozeAfterScreenOff= */ false, /* bootCompleted= */ true, /* screenBrightnessBoostInProgress= */ false, - /* waitForNegativeProximity= */ false); + /* waitForNegativeProximity= */ false, + /* brightWhenDozing= */ false); DisplayManagerInternal.DisplayPowerRequest displayPowerRequest = mPowerGroup.mDisplayPowerRequest; assertThat(displayPowerRequest.policy).isEqualTo(POLICY_DOZE); @@ -342,7 +344,8 @@ public class PowerGroupTest { /* dozeAfterScreenOff= */ true, /* bootCompleted= */ true, /* screenBrightnessBoostInProgress= */ false, - /* waitForNegativeProximity= */ false); + /* waitForNegativeProximity= */ false, + /* brightWhenDozing= */ false); DisplayManagerInternal.DisplayPowerRequest displayPowerRequest = mPowerGroup.mDisplayPowerRequest; assertThat(displayPowerRequest.policy).isEqualTo(POLICY_OFF); @@ -378,7 +381,8 @@ public class PowerGroupTest { /* dozeAfterScreenOff= */ true, /* bootCompleted= */ true, /* screenBrightnessBoostInProgress= */ false, - /* waitForNegativeProximity= */ false); + /* waitForNegativeProximity= */ false, + /* brightWhenDozing= */ false); DisplayManagerInternal.DisplayPowerRequest displayPowerRequest = mPowerGroup.mDisplayPowerRequest; assertThat(displayPowerRequest.policy).isEqualTo(POLICY_OFF); @@ -414,7 +418,8 @@ public class PowerGroupTest { /* dozeAfterScreenOff= */ false, /* bootCompleted= */ true, /* screenBrightnessBoostInProgress= */ false, - /* waitForNegativeProximity= */ false); + /* waitForNegativeProximity= */ false, + /* brightWhenDozing= */ false); DisplayManagerInternal.DisplayPowerRequest displayPowerRequest = mPowerGroup.mDisplayPowerRequest; assertThat(displayPowerRequest.policy).isEqualTo(POLICY_OFF); @@ -451,7 +456,8 @@ public class PowerGroupTest { /* dozeAfterScreenOff= */ false, /* bootCompleted= */ true, /* screenBrightnessBoostInProgress= */ false, - /* waitForNegativeProximity= */ false); + /* waitForNegativeProximity= */ false, + /* brightWhenDozing= */ false); DisplayManagerInternal.DisplayPowerRequest displayPowerRequest = mPowerGroup.mDisplayPowerRequest; assertThat(displayPowerRequest.policy).isEqualTo(POLICY_BRIGHT); @@ -486,7 +492,8 @@ public class PowerGroupTest { /* dozeAfterScreenOff= */ false, /* bootCompleted= */ false, /* screenBrightnessBoostInProgress= */ false, - /* waitForNegativeProximity= */ false); + /* waitForNegativeProximity= */ false, + /* brightWhenDozing= */ false); DisplayManagerInternal.DisplayPowerRequest displayPowerRequest = mPowerGroup.mDisplayPowerRequest; assertThat(displayPowerRequest.policy).isEqualTo(POLICY_BRIGHT); @@ -522,7 +529,8 @@ public class PowerGroupTest { /* dozeAfterScreenOff= */ false, /* bootCompleted= */ true, /* screenBrightnessBoostInProgress= */ false, - /* waitForNegativeProximity= */ false); + /* waitForNegativeProximity= */ false, + /* brightWhenDozing= */ false); DisplayManagerInternal.DisplayPowerRequest displayPowerRequest = mPowerGroup.mDisplayPowerRequest; assertThat(displayPowerRequest.policy).isEqualTo(POLICY_BRIGHT); @@ -557,7 +565,8 @@ public class PowerGroupTest { /* dozeAfterScreenOff= */ false, /* bootCompleted= */ true, /* screenBrightnessBoostInProgress= */ true, - /* waitForNegativeProximity= */ false); + /* waitForNegativeProximity= */ false, + /* brightWhenDozing= */ false); DisplayManagerInternal.DisplayPowerRequest displayPowerRequest = mPowerGroup.mDisplayPowerRequest; assertThat(displayPowerRequest.policy).isEqualTo(POLICY_BRIGHT); diff --git a/services/tests/servicestests/src/com/android/internal/location/timezone/OWNERS b/services/tests/servicestests/src/com/android/internal/location/timezone/OWNERS deleted file mode 100644 index 28aff188dbd8..000000000000 --- a/services/tests/servicestests/src/com/android/internal/location/timezone/OWNERS +++ /dev/null @@ -1,3 +0,0 @@ -# Bug component: 847766 -nfuller@google.com -include /core/java/android/app/timedetector/OWNERS diff --git a/services/tests/servicestests/src/com/android/server/audio/FadeConfigurationsTest.java b/services/tests/servicestests/src/com/android/server/audio/FadeConfigurationsTest.java new file mode 100644 index 000000000000..6fca56134393 --- /dev/null +++ b/services/tests/servicestests/src/com/android/server/audio/FadeConfigurationsTest.java @@ -0,0 +1,159 @@ +/* + * 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.server.audio; + +import static android.media.AudioAttributes.USAGE_MEDIA; +import static android.media.AudioAttributes.USAGE_GAME; +import static android.media.AudioAttributes.USAGE_ASSISTANT; +import static android.media.AudioAttributes.CONTENT_TYPE_SPEECH; +import static android.media.AudioPlaybackConfiguration.PLAYER_TYPE_AAUDIO; +import static android.media.AudioPlaybackConfiguration.PLAYER_TYPE_JAM_SOUNDPOOL; +import static android.media.AudioPlaybackConfiguration.PLAYER_TYPE_JAM_AUDIOTRACK; +import static android.media.AudioPlaybackConfiguration.PLAYER_TYPE_UNKNOWN; + +import android.media.AudioAttributes; +import android.media.VolumeShaper; + +import com.google.common.truth.Expect; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +import java.util.List; + +@RunWith(JUnit4.class) +public final class FadeConfigurationsTest { + private FadeConfigurations mFadeConfigurations; + private static final long DEFAULT_FADE_OUT_DURATION_MS = 2_000; + private static final long DEFAULT_DELAY_FADE_IN_OFFENDERS_MS = 2000; + private static final long DURATION_FOR_UNFADEABLE_MS = 0; + private static final int TEST_UID_SYSTEM = 1000; + private static final int TEST_UID_USER = 10100; + private static final List<Integer> DEFAULT_UNFADEABLE_PLAYER_TYPES = List.of( + PLAYER_TYPE_AAUDIO, + PLAYER_TYPE_JAM_SOUNDPOOL + ); + private static final List<Integer> DEFAULT_UNFADEABLE_CONTENT_TYPES = List.of( + CONTENT_TYPE_SPEECH + ); + private static final List<Integer> DEFAULT_FADEABLE_USAGES = List.of( + USAGE_GAME, + USAGE_MEDIA + ); + private static final VolumeShaper.Configuration DEFAULT_FADEOUT_VSHAPE = + new VolumeShaper.Configuration.Builder() + .setId(PlaybackActivityMonitor.VOLUME_SHAPER_SYSTEM_FADEOUT_ID) + .setCurve(/* times= */new float[]{0.f, 0.25f, 1.0f} , + /* volumes= */new float[]{1.f, 0.65f, 0.0f}) + .setOptionFlags(VolumeShaper.Configuration.OPTION_FLAG_CLOCK_TIME) + .setDuration(DEFAULT_FADE_OUT_DURATION_MS) + .build(); + + private static final AudioAttributes TEST_MEDIA_AUDIO_ATTRIBUTE = + new AudioAttributes.Builder().setUsage(USAGE_MEDIA).build(); + private static final AudioAttributes TEST_GAME_AUDIO_ATTRIBUTE = + new AudioAttributes.Builder().setUsage(USAGE_GAME).build(); + private static final AudioAttributes TEST_ASSISTANT_AUDIO_ATTRIBUTE = + new AudioAttributes.Builder().setUsage(USAGE_ASSISTANT).build(); + private static final AudioAttributes TEST_SPEECH_AUDIO_ATTRIBUTE = + new AudioAttributes.Builder().setContentType(CONTENT_TYPE_SPEECH).build(); + + @Rule + public final Expect expect = Expect.create(); + + @Before + public void setUp() { + mFadeConfigurations = new FadeConfigurations(); + } + + @Test + public void testGetFadeableUsages_forDefaultConstr_equalsDefaultFadeableUsages() { + expect.withMessage("Fadeable usages for default constructor") + .that(mFadeConfigurations.getFadeableUsages()).isEqualTo(DEFAULT_FADEABLE_USAGES); + } + + @Test + public void testGetUnfadeableContentTypes_forDefaultConstr_equalsDefaultContentTypes() { + expect.withMessage("Unfadeable content types for default constructor") + .that(mFadeConfigurations.getUnfadeableContentTypes()) + .isEqualTo(DEFAULT_UNFADEABLE_CONTENT_TYPES); + } + + @Test + public void testGetUnfadeablePlayerTypes_forDefaultConstr_equalsDefaultPlayerTypes() { + expect.withMessage("Unfadeable player types for default constructor") + .that(mFadeConfigurations.getUnfadeablePlayerTypes()) + .isEqualTo(DEFAULT_UNFADEABLE_PLAYER_TYPES); + } + + @Test + public void testGetFadeOutVolumeShaperConfig_forDefaultConstr_equalsDefaultVolShaperConfig() { + expect.withMessage("Fadeout VolumeShaper config for default constructor") + .that(mFadeConfigurations.getFadeOutVolumeShaperConfig(TEST_MEDIA_AUDIO_ATTRIBUTE)) + .isEqualTo(DEFAULT_FADEOUT_VSHAPE); + } + + @Test + public void testGetFadeOutDuration_forFadeableAttrribute_equalsDefaultDuration() { + expect.withMessage("Fade out duration for media attribute with default constructor") + .that(mFadeConfigurations.getFadeOutDuration(TEST_MEDIA_AUDIO_ATTRIBUTE)) + .isEqualTo(DEFAULT_FADE_OUT_DURATION_MS); + expect.withMessage("Fade out duration for media attribute with default constructor") + .that(mFadeConfigurations.getFadeOutDuration(TEST_GAME_AUDIO_ATTRIBUTE)) + .isEqualTo(DEFAULT_FADE_OUT_DURATION_MS); + } + + @Test + public void testGetFadeOutDuration_forUnFadeableAttrribute_equalsZeroDuration() { + expect.withMessage("Fade out duration for assistant attribute with default constructor") + .that(mFadeConfigurations.getFadeOutDuration(TEST_ASSISTANT_AUDIO_ATTRIBUTE)) + .isEqualTo(DURATION_FOR_UNFADEABLE_MS); + expect.withMessage("Fade out duration for speech attribute with default constructor") + .that(mFadeConfigurations.getFadeOutDuration(TEST_SPEECH_AUDIO_ATTRIBUTE)) + .isEqualTo(DURATION_FOR_UNFADEABLE_MS); + } + + @Test + public void testGetDelayFadeInOffenders_equalsDefaultDelay() { + expect.withMessage("Fade out duration for media attribute with default constructor") + .that(mFadeConfigurations.getDelayFadeInOffenders(TEST_MEDIA_AUDIO_ATTRIBUTE)) + .isEqualTo(DEFAULT_DELAY_FADE_IN_OFFENDERS_MS); + } + + @Test + public void testIsFadeable_forDefaultConstr_forFadableAttributes_returnsTrue() { + expect.withMessage("Is fadable for media audio attribute returns") + .that(mFadeConfigurations.isFadeable(TEST_MEDIA_AUDIO_ATTRIBUTE, TEST_UID_SYSTEM, + PLAYER_TYPE_JAM_AUDIOTRACK)).isTrue(); + expect.withMessage("Is fadable for game audio attribute returns") + .that(mFadeConfigurations.isFadeable(TEST_GAME_AUDIO_ATTRIBUTE, TEST_UID_USER, + PLAYER_TYPE_UNKNOWN)).isTrue(); + } + + @Test + public void testIsFadeable_forDefaultConstr_forUnfadableAttributes_returnsFalse() { + expect.withMessage("Is fadable for speech audio attribute returns") + .that(mFadeConfigurations.isFadeable(TEST_SPEECH_AUDIO_ATTRIBUTE, TEST_UID_SYSTEM, + PLAYER_TYPE_JAM_AUDIOTRACK)).isFalse(); + expect.withMessage("Is fadable for AAudio player type returns") + .that(mFadeConfigurations.isFadeable(TEST_GAME_AUDIO_ATTRIBUTE, TEST_UID_USER, + PLAYER_TYPE_AAUDIO)).isFalse(); + } +} diff --git a/services/tests/servicestests/src/com/android/server/audio/FadeOutManagerTest.java b/services/tests/servicestests/src/com/android/server/audio/FadeOutManagerTest.java new file mode 100644 index 000000000000..65059d5ca8fd --- /dev/null +++ b/services/tests/servicestests/src/com/android/server/audio/FadeOutManagerTest.java @@ -0,0 +1,225 @@ +/* + * 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.server.audio; + +import static android.media.AudioAttributes.USAGE_MEDIA; +import static android.media.AudioAttributes.USAGE_GAME; +import static android.media.AudioAttributes.CONTENT_TYPE_SPEECH; +import static android.media.AudioPlaybackConfiguration.PLAYER_TYPE_AAUDIO; +import static android.media.AudioPlaybackConfiguration.PLAYER_TYPE_JAM_AUDIOTRACK; +import static android.media.AudioPlaybackConfiguration.PLAYER_TYPE_UNKNOWN; + +import static org.junit.Assert.assertThrows; + +import android.content.Context; +import android.media.AudioAttributes; +import android.media.AudioManager; +import android.media.AudioPlaybackConfiguration; +import android.media.PlayerBase; +import android.os.Parcel; + +import androidx.test.core.app.ApplicationProvider; + +import com.google.common.truth.Expect; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; +import org.mockito.Mock; + +import java.util.ArrayList; +import java.util.HashMap; + +@RunWith(JUnit4.class) +public final class FadeOutManagerTest { + private static final int TEST_UID_SYSTEM = 1000; + private static final int TEST_UID_USER = 10100; + private static final int TEST_SESSION_ID = 10; + private static final int TEST_PIID_1 = 101; + private static final int TEST_PIID_2 = 102; + private static final int TEST_PIID_3 = 103; + private static final int TEST_PID = 10101; + + private static final AudioAttributes TEST_MEDIA_AUDIO_ATTRIBUTE = + new AudioAttributes.Builder().setUsage(USAGE_MEDIA).build(); + private static final AudioAttributes TEST_GAME_AUDIO_ATTRIBUTE = + new AudioAttributes.Builder().setUsage(USAGE_GAME).build(); + private static final AudioAttributes TEST_SPEECH_AUDIO_ATTRIBUTE = + new AudioAttributes.Builder().setContentType(CONTENT_TYPE_SPEECH).build(); + private FadeOutManager mFadeOutManager; + private Context mContext; + + @Mock + PlayerBase.PlayerIdCard mMockPlayerIdCard; + @Mock + AudioPlaybackConfiguration mMockPlaybackConfiguration; + + @Rule + public final Expect expect = Expect.create(); + + @Before + public void setUp() { + mFadeOutManager = new FadeOutManager(new FadeConfigurations()); + mContext = ApplicationProvider.getApplicationContext(); + } + + @Test + public void constructor_nullFadeConfigurations_fails() { + Throwable thrown = assertThrows(NullPointerException.class, () -> new FadeOutManager( + /* FadeConfigurations= */ null)); + + expect.withMessage("Constructor exception") + .that(thrown).hasMessageThat().contains("Fade configurations can not be null"); + } + + @Test + public void testCanCauseFadeOut_forFaders_returnsTrue() { + FocusRequester winner = createFocusRequester(TEST_MEDIA_AUDIO_ATTRIBUTE, "winning-client", + "unit-test", TEST_UID_USER, + AudioManager.AUDIOFOCUS_FLAG_PAUSES_ON_DUCKABLE_LOSS); + FocusRequester loser = createFocusRequester(TEST_SPEECH_AUDIO_ATTRIBUTE, "losing-client", + "unit-test", TEST_UID_USER, AudioManager.AUDIOFOCUS_FLAG_TEST); + + expect.withMessage("Can cause fade out").that(mFadeOutManager.canCauseFadeOut( + winner, loser)).isTrue(); + } + + @Test + public void testCanCauseFadeOut_forUnfaderSpeechAttribute_returnsFalse() { + FocusRequester winner = createFocusRequester(TEST_SPEECH_AUDIO_ATTRIBUTE, "winning-client", + "unit-test", TEST_UID_USER, AudioManager.AUDIOFOCUS_FLAG_TEST); + FocusRequester loser = createFocusRequester(TEST_SPEECH_AUDIO_ATTRIBUTE, "losing-client", + "unit-test", TEST_UID_USER, AudioManager.AUDIOFOCUS_FLAG_TEST); + + expect.withMessage("Can cause fade out for speech attribute") + .that(mFadeOutManager.canCauseFadeOut(winner, loser)).isFalse(); + } + + @Test + public void testCanCauseFadeOut_forUnfaderFlag_returnsFalse() { + FocusRequester winner = createFocusRequester(TEST_SPEECH_AUDIO_ATTRIBUTE, "winning-client", + "unit-test", TEST_UID_USER, AudioManager.AUDIOFOCUS_FLAG_TEST); + FocusRequester loser = createFocusRequester(TEST_MEDIA_AUDIO_ATTRIBUTE, "losing-client", + "unit-test", TEST_UID_USER, + AudioManager.AUDIOFOCUS_FLAG_PAUSES_ON_DUCKABLE_LOSS); + + expect.withMessage("Can cause fade out for flag pause on duckable loss") + .that(mFadeOutManager.canCauseFadeOut(winner, loser)).isFalse(); + } + + @Test + public void testCanBeFadedOut_forFadableConfig_returnsTrue() { + AudioPlaybackConfiguration apcMedia = createAudioPlaybackConfiguration( + TEST_MEDIA_AUDIO_ATTRIBUTE, TEST_UID_USER, TEST_PIID_1, TEST_PID, + PLAYER_TYPE_JAM_AUDIOTRACK); + AudioPlaybackConfiguration apcGame = createAudioPlaybackConfiguration( + TEST_GAME_AUDIO_ATTRIBUTE, TEST_UID_USER, TEST_PIID_2, TEST_PID, + PLAYER_TYPE_UNKNOWN); + + expect.withMessage("Fadability for media audio attribute") + .that(mFadeOutManager.canBeFadedOut(apcMedia)).isTrue(); + expect.withMessage("Fadability for game audio attribute") + .that(mFadeOutManager.canBeFadedOut(apcGame)).isTrue(); + } + + @Test + public void testCanBeFadedOut_forUnFadableConfig_returnsFalse() { + AudioPlaybackConfiguration apcSpeech = createAudioPlaybackConfiguration( + TEST_SPEECH_AUDIO_ATTRIBUTE, TEST_UID_USER, TEST_PIID_1, TEST_PID, + PLAYER_TYPE_JAM_AUDIOTRACK); + AudioPlaybackConfiguration apcAAudio = createAudioPlaybackConfiguration( + TEST_GAME_AUDIO_ATTRIBUTE, TEST_UID_USER, TEST_PIID_2, TEST_PID, + PLAYER_TYPE_AAUDIO); + + expect.withMessage("Fadability for speech audio attribute") + .that(mFadeOutManager.canBeFadedOut(apcSpeech)).isFalse(); + expect.withMessage("Fadability for AAudio player type") + .that(mFadeOutManager.canBeFadedOut(apcAAudio)).isFalse(); + } + + @Test + public void testFadeOutUid_getsFadedOut_isFadedReturnsTrue() { + final ArrayList<AudioPlaybackConfiguration> apcsToFadeOut = + new ArrayList<AudioPlaybackConfiguration>(); + apcsToFadeOut.add(createAudioPlaybackConfiguration( + TEST_MEDIA_AUDIO_ATTRIBUTE, TEST_UID_USER, TEST_PIID_1, TEST_PID, + PLAYER_TYPE_JAM_AUDIOTRACK)); + + mFadeOutManager.fadeOutUid(TEST_UID_USER, apcsToFadeOut); + + expect.withMessage("Fade out state for uid") + .that(mFadeOutManager.isUidFadedOut(TEST_UID_USER)).isTrue(); + } + + @Test + public void testUnfadeOutUid_getsUnfaded_isFadedReturnsFalse() { + final ArrayList<AudioPlaybackConfiguration> apcsToUnfade = + new ArrayList<AudioPlaybackConfiguration>(); + final ArrayList<AudioPlaybackConfiguration> apcsToKeepfaded = + new ArrayList<AudioPlaybackConfiguration>(); + AudioPlaybackConfiguration apcMediaPiid1 = createAudioPlaybackConfiguration( + TEST_MEDIA_AUDIO_ATTRIBUTE, TEST_UID_USER, TEST_PIID_1, TEST_PID, + PLAYER_TYPE_JAM_AUDIOTRACK); + AudioPlaybackConfiguration apcGamePiid2 = createAudioPlaybackConfiguration( + TEST_GAME_AUDIO_ATTRIBUTE, TEST_UID_USER, TEST_PIID_2, TEST_PID, + PLAYER_TYPE_JAM_AUDIOTRACK); + AudioPlaybackConfiguration apcMediaPiid3 = createAudioPlaybackConfiguration( + TEST_MEDIA_AUDIO_ATTRIBUTE, TEST_UID_SYSTEM, TEST_PIID_3, TEST_PID, + PLAYER_TYPE_JAM_AUDIOTRACK); + HashMap<Integer, AudioPlaybackConfiguration> mapPiidToApcs = new HashMap<>(); + apcsToUnfade.add(apcMediaPiid1); + apcsToUnfade.add(apcGamePiid2); + apcsToKeepfaded.add(apcMediaPiid3); + mFadeOutManager.fadeOutUid(TEST_UID_USER, apcsToUnfade); + mFadeOutManager.fadeOutUid(TEST_UID_SYSTEM, apcsToKeepfaded); + mapPiidToApcs.put(TEST_PIID_1, apcMediaPiid1); + mapPiidToApcs.put(TEST_PIID_2, apcGamePiid2); + + mFadeOutManager.unfadeOutUid(TEST_UID_USER, mapPiidToApcs); + + expect.withMessage("Fade out state after unfading for uid") + .that(mFadeOutManager.isUidFadedOut(TEST_UID_USER)).isFalse(); + expect.withMessage("Fade out state for uid") + .that(mFadeOutManager.isUidFadedOut(TEST_UID_SYSTEM)).isTrue(); + + } + + private FocusRequester createFocusRequester(AudioAttributes aa, String clientId, + String packageName, int uid, int flags) { + MediaFocusControl mfc = new MediaFocusControl(mContext, null); + return new FocusRequester(aa, AudioManager.AUDIOFOCUS_GAIN, flags, null, null, clientId, + null, packageName, uid, mfc, 1); + } + + private PlayerBase.PlayerIdCard createPlayerIdCard(AudioAttributes aa, int playerType) { + + Parcel p = Parcel.obtain(); + p.writeInt(playerType); + aa.writeToParcel(p, 0); + p.writeStrongInterface(null); + p.writeInt(TEST_SESSION_ID); + p.setDataPosition(0); + return PlayerBase.PlayerIdCard.CREATOR.createFromParcel(p); + } + + private AudioPlaybackConfiguration createAudioPlaybackConfiguration(AudioAttributes aa, int uid, + int piid, int pid, int playerType) { + return new AudioPlaybackConfiguration(createPlayerIdCard(aa, playerType), piid, uid, pid); + } +} diff --git a/services/tests/servicestests/src/com/android/server/biometrics/sensors/face/aidl/FaceEnrollClientTest.java b/services/tests/servicestests/src/com/android/server/biometrics/sensors/face/aidl/FaceEnrollClientTest.java index 128f3149e6d4..d662620407e8 100644 --- a/services/tests/servicestests/src/com/android/server/biometrics/sensors/face/aidl/FaceEnrollClientTest.java +++ b/services/tests/servicestests/src/com/android/server/biometrics/sensors/face/aidl/FaceEnrollClientTest.java @@ -28,6 +28,7 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.hardware.biometrics.common.OperationContext; +import android.hardware.biometrics.face.FaceEnrollOptions; import android.hardware.biometrics.face.ISession; import android.hardware.face.Face; import android.os.IBinder; @@ -123,7 +124,7 @@ public class FaceEnrollClientTest { @Test public void notifyHalWhenContextChanges() throws RemoteException { - final FaceEnrollClient client = createClient(); + final FaceEnrollClient client = createClient(3); client.start(mCallback); final ArgumentCaptor<OperationContext> captor = @@ -143,6 +144,14 @@ public class FaceEnrollClientTest { verify(mBiometricContext).unsubscribe(same(mOperationContextCaptor.getValue())); } + @Test + public void enrollWithFaceOptions() throws RemoteException { + final FaceEnrollClient client = createClient(4); + client.start(mCallback); + + verify(mHal).enrollWithOptions(any()); + } + private FaceEnrollClient createClient() throws RemoteException { return createClient(200 /* version */); } diff --git a/services/tests/servicestests/src/com/android/server/pdb/PersistentDataBlockServiceTest.java b/services/tests/servicestests/src/com/android/server/pdb/PersistentDataBlockServiceTest.java new file mode 100644 index 000000000000..f537efd9736d --- /dev/null +++ b/services/tests/servicestests/src/com/android/server/pdb/PersistentDataBlockServiceTest.java @@ -0,0 +1,552 @@ +/* + * 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.server.pdb; + +import static com.android.server.pdb.PersistentDataBlockService.DIGEST_SIZE_BYTES; +import static com.android.server.pdb.PersistentDataBlockService.MAX_DATA_BLOCK_SIZE; +import static com.android.server.pdb.PersistentDataBlockService.MAX_FRP_CREDENTIAL_HANDLE_SIZE; +import static com.android.server.pdb.PersistentDataBlockService.MAX_TEST_MODE_DATA_SIZE; + +import static com.google.common.truth.Truth.assertThat; + +import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.when; +import static org.junit.Assert.assertThrows; + +import android.Manifest; +import android.content.Context; +import android.content.pm.PackageManager; +import android.os.Binder; +import android.os.RemoteException; +import android.os.UserManager; +import android.service.persistentdata.IPersistentDataBlockService; + +import androidx.test.core.app.ApplicationProvider; + +import junitparams.JUnitParamsRunner; +import junitparams.Parameters; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.TemporaryFolder; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; + +import java.io.File; +import java.nio.ByteBuffer; +import java.nio.channels.FileChannel; +import java.nio.file.StandardOpenOption; + +@RunWith(JUnitParamsRunner.class) +public class PersistentDataBlockServiceTest { + private static final String TAG = "PersistentDataBlockServiceTest"; + + private static final byte[] SMALL_DATA = "data to write".getBytes(); + private static final byte[] ANOTHER_SMALL_DATA = "something else".getBytes(); + + private Context mContext; + private PersistentDataBlockService mPdbService; + private IPersistentDataBlockService mInterface; + private PersistentDataBlockManagerInternal mInternalInterface; + private File mDataBlockFile; + private String mOemUnlockPropertyValue; + + @Mock private UserManager mUserManager; + + private class FakePersistentDataBlockService extends PersistentDataBlockService { + FakePersistentDataBlockService(Context context, String dataBlockFile, + long blockDeviceSize) { + super(context, /* isFileBacked */ true, dataBlockFile, blockDeviceSize); + } + + @Override + void setProperty(String key, String value) { + // Override to capture the value instead of actually setting the property. + assertThat(key).isEqualTo("sys.oem_unlock_allowed"); + mOemUnlockPropertyValue = value; + } + } + + @Rule public TemporaryFolder mTemporaryFolder = new TemporaryFolder(); + + @Before + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + + mDataBlockFile = mTemporaryFolder.newFile(); + mContext = spy(ApplicationProvider.getApplicationContext()); + mPdbService = new FakePersistentDataBlockService(mContext, mDataBlockFile.getPath(), + /* blockDeviceSize */ -1); + mPdbService.setAllowedUid(Binder.getCallingUid()); + mPdbService.formatPartitionLocked(/* setOemUnlockEnabled */ false); + mInterface = mPdbService.getInterfaceForTesting(); + mInternalInterface = mPdbService.getInternalInterfaceForTesting(); + + when(mContext.getSystemService(eq(Context.USER_SERVICE))).thenReturn(mUserManager); + when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager); + } + + abstract static class Block { + public PersistentDataBlockService service; + + abstract int write(byte[] data) throws RemoteException; + abstract byte[] read() throws RemoteException; + } + + /** + * Configuration for parameterizing tests, including the block name, maximum block size, and + * a block implementation for the read/write operations. + */ + public Object[][] getTestParametersForBlocks() { + return new Object[][] { + { + new Block() { + @Override public int write(byte[] data) throws RemoteException { + return service.getInterfaceForTesting().write(data); + } + + @Override public byte[] read() throws RemoteException { + return service.getInterfaceForTesting().read(); + } + }, + }, + { + new Block() { + @Override public int write(byte[] data) { + service.getInternalInterfaceForTesting().setFrpCredentialHandle(data); + // The written size isn't returned. Pretend it's fully written in the + // test for now. + return data.length; + } + + @Override public byte[] read() { + return service.getInternalInterfaceForTesting().getFrpCredentialHandle(); + } + }, + }, + { + new Block() { + @Override public int write(byte[] data) { + service.getInternalInterfaceForTesting().setTestHarnessModeData(data); + // The written size isn't returned. Pretend it's fully written in the + // test for now. + return data.length; + } + + @Override public byte[] read() { + return service.getInternalInterfaceForTesting().getTestHarnessModeData(); + } + }, + }, + }; + } + + @Test + @Parameters(method = "getTestParametersForBlocks") + public void writeThenRead(Block block) throws Exception { + block.service = mPdbService; + assertThat(block.write(SMALL_DATA)).isEqualTo(SMALL_DATA.length); + assertThat(block.read()).isEqualTo(SMALL_DATA); + } + + @Test + @Parameters(method = "getTestParametersForBlocks") + public void writeWhileAlreadyCorrupted(Block block) throws Exception { + block.service = mPdbService; + assertThat(block.write(SMALL_DATA)).isEqualTo(SMALL_DATA.length); + assertThat(block.read()).isEqualTo(SMALL_DATA); + + tamperWithDigest(); + + // In the currently implementation, expect the write to not trigger formatting. + assertThat(block.write(ANOTHER_SMALL_DATA)).isEqualTo(ANOTHER_SMALL_DATA.length); + } + + @Test + public void frpWriteOutOfBound() throws Exception { + byte[] maxData = new byte[mPdbService.getMaximumFrpDataSize()]; + assertThat(mInterface.write(maxData)).isEqualTo(maxData.length); + + byte[] overflowData = new byte[mPdbService.getMaximumFrpDataSize() + 1]; + assertThat(mInterface.write(overflowData)).isLessThan(0); + } + + @Test + public void frpCredentialWriteOutOfBound() throws Exception { + byte[] maxData = new byte[MAX_FRP_CREDENTIAL_HANDLE_SIZE]; + mInternalInterface.setFrpCredentialHandle(maxData); + + byte[] overflowData = new byte[MAX_FRP_CREDENTIAL_HANDLE_SIZE + 1]; + assertThrows(IllegalArgumentException.class, () -> + mInternalInterface.setFrpCredentialHandle(overflowData)); + } + + @Test + public void testHardnessWriteOutOfBound() throws Exception { + byte[] maxData = new byte[MAX_TEST_MODE_DATA_SIZE]; + mInternalInterface.setTestHarnessModeData(maxData); + + byte[] overflowData = new byte[MAX_TEST_MODE_DATA_SIZE + 1]; + assertThrows(IllegalArgumentException.class, () -> + mInternalInterface.setTestHarnessModeData(overflowData)); + } + + @Test + public void readCorruptedFrpData() throws Exception { + assertThat(mInterface.write(SMALL_DATA)).isEqualTo(SMALL_DATA.length); + assertThat(mInterface.read()).isEqualTo(SMALL_DATA); + + tamperWithDigest(); + + // Expect the read to trigger formatting, resulting in reading empty data. + assertThat(mInterface.read()).hasLength(0); + } + + @Test + public void readCorruptedFrpCredentialData() throws Exception { + mInternalInterface.setFrpCredentialHandle(SMALL_DATA); + assertThat(mInternalInterface.getFrpCredentialHandle()).isEqualTo(SMALL_DATA); + + tamperWithDigest(); + + assertThrows(IllegalStateException.class, () -> + mInternalInterface.getFrpCredentialHandle()); + } + + @Test + public void readCorruptedTestHarnessData() throws Exception { + mInternalInterface.setTestHarnessModeData(SMALL_DATA); + assertThat(mInternalInterface.getTestHarnessModeData()).isEqualTo(SMALL_DATA); + + tamperWithDigest(); + + assertThrows(IllegalStateException.class, () -> + mInternalInterface.getTestHarnessModeData()); + } + + @Test + public void nullWrite() throws Exception { + assertThrows(NullPointerException.class, () -> mInterface.write(null)); + mInternalInterface.setFrpCredentialHandle(null); // no exception + mInternalInterface.setTestHarnessModeData(null); // no exception + } + + @Test + public void emptyDataWrite() throws Exception { + var empty = new byte[0]; + assertThat(mInterface.write(empty)).isEqualTo(0); + + assertThrows(IllegalArgumentException.class, () -> + mInternalInterface.setFrpCredentialHandle(empty)); + assertThrows(IllegalArgumentException.class, () -> + mInternalInterface.setTestHarnessModeData(empty)); + } + + @Test + public void frpWriteMoreThan100K() throws Exception { + File dataBlockFile = mTemporaryFolder.newFile(); + PersistentDataBlockService pdbService = new FakePersistentDataBlockService(mContext, + dataBlockFile.getPath(), /* blockDeviceSize */ 128 * 1000); + pdbService.setAllowedUid(Binder.getCallingUid()); + pdbService.formatPartitionLocked(/* setOemUnlockEnabled */ false); + + IPersistentDataBlockService service = pdbService.getInterfaceForTesting(); + int maxDataSize = (int) service.getMaximumDataBlockSize(); + assertThat(service.write(new byte[maxDataSize])).isEqualTo(maxDataSize); + assertThat(service.write(new byte[maxDataSize + 1])).isEqualTo(-MAX_DATA_BLOCK_SIZE); + } + + @Test + public void frpBlockReadWriteWithoutPermission() throws Exception { + mPdbService.setAllowedUid(Binder.getCallingUid() + 1); // unexpected uid + assertThrows(SecurityException.class, () -> mInterface.write(SMALL_DATA)); + assertThrows(SecurityException.class, () -> mInterface.read()); + } + + @Test + public void getMaximumDataBlockSizeDenied() throws Exception { + mPdbService.setAllowedUid(Binder.getCallingUid() + 1); // unexpected uid + assertThrows(SecurityException.class, () -> mInterface.getMaximumDataBlockSize()); + } + + @Test + public void getMaximumDataBlockSize() throws Exception { + mPdbService.setAllowedUid(Binder.getCallingUid()); + assertThat(mInterface.getMaximumDataBlockSize()) + .isEqualTo(mPdbService.getMaximumFrpDataSize()); + } + + @Test + public void getMaximumDataBlockSizeOfLargerPartition() throws Exception { + File dataBlockFile = mTemporaryFolder.newFile(); + PersistentDataBlockService pdbService = new FakePersistentDataBlockService(mContext, + dataBlockFile.getPath(), /* blockDeviceSize */ 128 * 1000); + pdbService.setAllowedUid(Binder.getCallingUid()); + pdbService.formatPartitionLocked(/* setOemUnlockEnabled */ false); + + IPersistentDataBlockService service = pdbService.getInterfaceForTesting(); + assertThat(service.getMaximumDataBlockSize()).isEqualTo(MAX_DATA_BLOCK_SIZE); + } + + @Test + public void getFrpDataBlockSizeGrantedByUid() throws Exception { + assertThat(mInterface.write(SMALL_DATA)).isEqualTo(SMALL_DATA.length); + + mPdbService.setAllowedUid(Binder.getCallingUid()); + assertThat(mInterface.getDataBlockSize()).isEqualTo(SMALL_DATA.length); + + // Modify the magic / type marker. In the current implementation, getting the FRP data block + // size does not check digest. + tamperWithMagic(); + assertThat(mInterface.getDataBlockSize()).isEqualTo(0); + } + + @Test + public void getFrpDataBlockSizeGrantedByPermission() throws Exception { + assertThat(mInterface.write(SMALL_DATA)).isEqualTo(SMALL_DATA.length); + + mPdbService.setAllowedUid(Binder.getCallingUid() + 1); // unexpected uid + grantAccessPdbStatePermission(); + + assertThat(mInterface.getDataBlockSize()).isEqualTo(SMALL_DATA.length); + + // Modify the magic / type marker. In the current implementation, getting the FRP data block + // size does not check digest. + tamperWithMagic(); + assertThat(mInterface.getDataBlockSize()).isEqualTo(0); + } + + @Test + public void wipePermissionCheck() throws Exception { + denyOemUnlockPermission(); + assertThrows(SecurityException.class, () -> mInterface.wipe()); + } + + @Test + public void wipeMakesItNotWritable() throws Exception { + grantOemUnlockPermission(); + mInterface.wipe(); + + // Verify that nothing is written. + final int headerAndDataBytes = 4 + SMALL_DATA.length; + assertThat(mInterface.write(SMALL_DATA)).isLessThan(0); + assertThat(readBackingFile(DIGEST_SIZE_BYTES + 4, headerAndDataBytes).array()) + .isEqualTo(new byte[headerAndDataBytes]); + + mInternalInterface.setFrpCredentialHandle(SMALL_DATA); + assertThat(readBackingFile(mPdbService.getFrpCredentialDataOffset() + 4, + headerAndDataBytes) + .array()) + .isEqualTo(new byte[headerAndDataBytes]); + + mInternalInterface.setTestHarnessModeData(SMALL_DATA); + assertThat(readBackingFile(mPdbService.getTestHarnessModeDataOffset() + 4, + headerAndDataBytes) + .array()) + .isEqualTo(new byte[headerAndDataBytes]); + } + + @Test + public void hasFrpCredentialHandleGrantedByUid() throws Exception { + mPdbService.setAllowedUid(Binder.getCallingUid()); + + assertThat(mInterface.hasFrpCredentialHandle()).isFalse(); + mInternalInterface.setFrpCredentialHandle(SMALL_DATA); + assertThat(mInterface.hasFrpCredentialHandle()).isTrue(); + } + + @Test + public void hasFrpCredentialHandleGrantedByPermission() throws Exception { + mPdbService.setAllowedUid(Binder.getCallingUid() + 1); // unexpected uid + grantAccessPdbStatePermission(); + + assertThat(mInterface.hasFrpCredentialHandle()).isFalse(); + mInternalInterface.setFrpCredentialHandle(SMALL_DATA); + assertThat(mInterface.hasFrpCredentialHandle()).isTrue(); + } + + @Test + public void clearTestHarnessModeData() throws Exception { + mInternalInterface.setTestHarnessModeData(SMALL_DATA); + mInternalInterface.clearTestHarnessModeData(); + + assertThat(readBackingFile(mPdbService.getTestHarnessModeDataOffset(), + MAX_TEST_MODE_DATA_SIZE).array()) + .isEqualTo(new byte[MAX_TEST_MODE_DATA_SIZE]); + } + + @Test + public void getAllowedUid() throws Exception { + assertThat(mInternalInterface.getAllowedUid()).isEqualTo(Binder.getCallingUid()); + } + + @Test + public void oemUnlockWithoutPermission() throws Exception { + denyOemUnlockPermission(); + + assertThrows(SecurityException.class, () -> mInterface.setOemUnlockEnabled(true)); + } + + @Test + public void oemUnlockNotAdmin() throws Exception { + grantOemUnlockPermission(); + makeUserAdmin(false); + + assertThrows(SecurityException.class, () -> mInterface.setOemUnlockEnabled(true)); + } + + @Test + public void oemUnlock() throws Exception { + grantOemUnlockPermission(); + makeUserAdmin(true); + + mInterface.setOemUnlockEnabled(true); + assertThat(mInterface.getOemUnlockEnabled()).isTrue(); + assertThat(mOemUnlockPropertyValue).isEqualTo("1"); + } + + @Test + public void oemUnlockUserRestriction_OemUnlock() throws Exception { + grantOemUnlockPermission(); + makeUserAdmin(true); + when(mUserManager.hasUserRestriction(eq(UserManager.DISALLOW_OEM_UNLOCK))) + .thenReturn(true); + + assertThrows(SecurityException.class, () -> mInterface.setOemUnlockEnabled(true)); + } + + @Test + public void oemUnlockUserRestriction_FactoryReset() throws Exception { + grantOemUnlockPermission(); + makeUserAdmin(true); + when(mUserManager.hasUserRestriction(eq(UserManager.DISALLOW_FACTORY_RESET))) + .thenReturn(true); + + assertThrows(SecurityException.class, () -> mInterface.setOemUnlockEnabled(true)); + } + + @Test + public void oemUnlockIgnoreTampering() throws Exception { + grantOemUnlockPermission(); + makeUserAdmin(true); + + // The current implementation does not check digest before set or get the oem unlock bit. + tamperWithDigest(); + mInterface.setOemUnlockEnabled(true); + assertThat(mOemUnlockPropertyValue).isEqualTo("1"); + tamperWithDigest(); + assertThat(mInterface.getOemUnlockEnabled()).isTrue(); + } + + @Test + public void getOemUnlockEnabledPermissionCheck_NoPermission() throws Exception { + assertThrows(SecurityException.class, () -> mInterface.getOemUnlockEnabled()); + } + + @Test + public void getOemUnlockEnabledPermissionCheck_OemUnlcokState() throws Exception { + doReturn(PackageManager.PERMISSION_GRANTED).when(mContext) + .checkCallingOrSelfPermission(eq(Manifest.permission.OEM_UNLOCK_STATE)); + assertThat(mInterface.getOemUnlockEnabled()).isFalse(); + } + + @Test + public void getOemUnlockEnabledPermissionCheck_ReadOemUnlcokState() throws Exception { + doReturn(PackageManager.PERMISSION_GRANTED).when(mContext) + .checkCallingOrSelfPermission(eq(Manifest.permission.READ_OEM_UNLOCK_STATE)); + assertThat(mInterface.getOemUnlockEnabled()).isFalse(); + } + + @Test + public void forceOemUnlock_RequiresNoPermission() throws Exception { + denyOemUnlockPermission(); + + mInternalInterface.forceOemUnlockEnabled(true); + + assertThat(mOemUnlockPropertyValue).isEqualTo("1"); + assertThat(readBackingFile(mPdbService.getOemUnlockDataOffset(), 1).array()) + .isEqualTo(new byte[] { 1 }); + } + + @Test + public void getFlashLockStatePermissionCheck_NoPermission() throws Exception { + assertThrows(SecurityException.class, () -> mInterface.getFlashLockState()); + } + + @Test + public void getFlashLockStatePermissionCheck_OemUnlcokState() throws Exception { + doReturn(PackageManager.PERMISSION_GRANTED).when(mContext) + .checkCallingOrSelfPermission(eq(Manifest.permission.OEM_UNLOCK_STATE)); + mInterface.getFlashLockState(); // Do not throw + } + + @Test + public void getFlashLockStatePermissionCheck_ReadOemUnlcokState() throws Exception { + doReturn(PackageManager.PERMISSION_GRANTED).when(mContext) + .checkCallingOrSelfPermission(eq(Manifest.permission.READ_OEM_UNLOCK_STATE)); + mInterface.getFlashLockState(); // Do not throw + } + + private void tamperWithDigest() throws Exception { + try (var ch = FileChannel.open(mDataBlockFile.toPath(), StandardOpenOption.WRITE)) { + ch.write(ByteBuffer.wrap("tampered-digest".getBytes())); + } + } + + private void tamperWithMagic() throws Exception { + try (var ch = FileChannel.open(mDataBlockFile.toPath(), StandardOpenOption.WRITE)) { + ch.write(ByteBuffer.wrap("mark".getBytes()), DIGEST_SIZE_BYTES); + } + } + + private void makeUserAdmin(boolean isAdmin) { + when(mUserManager.isUserAdmin(anyInt())).thenReturn(isAdmin); + } + + private void grantOemUnlockPermission() { + doReturn(PackageManager.PERMISSION_GRANTED).when(mContext) + .checkCallingOrSelfPermission(eq(Manifest.permission.OEM_UNLOCK_STATE)); + doNothing().when(mContext) + .enforceCallingOrSelfPermission(eq(Manifest.permission.OEM_UNLOCK_STATE), + anyString()); + } + + private void denyOemUnlockPermission() { + doReturn(PackageManager.PERMISSION_DENIED).when(mContext) + .checkCallingOrSelfPermission(eq(Manifest.permission.OEM_UNLOCK_STATE)); + } + + private void grantAccessPdbStatePermission() { + doReturn(PackageManager.PERMISSION_GRANTED).when(mContext) + .checkCallingPermission(eq(Manifest.permission.ACCESS_PDB_STATE)); + } + + private ByteBuffer readBackingFile(long position, int size) throws Exception { + try (var ch = FileChannel.open(mDataBlockFile.toPath(), StandardOpenOption.READ)) { + var buffer = ByteBuffer.allocate(size); + assertThat(ch.read(buffer, position)).isGreaterThan(0); + return buffer; + } + } +} diff --git a/services/tests/servicestests/src/com/android/server/pm/SuspendPackagesTest.java b/services/tests/servicestests/src/com/android/server/pm/SuspendPackagesTest.java index 01a91c1db1e6..398148ff4d3b 100644 --- a/services/tests/servicestests/src/com/android/server/pm/SuspendPackagesTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/SuspendPackagesTest.java @@ -30,7 +30,6 @@ import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import android.app.AppGlobals; -import android.content.AttributionSource; import android.content.Context; import android.content.pm.IPackageManager; import android.content.pm.LauncherApps; @@ -282,16 +281,12 @@ public class SuspendPackagesTest { }; iAppOps.startWatchingMode(code, TEST_APP_PACKAGE_NAME, watcher); final int testPackageUid = mPackageManager.getPackageUid(TEST_APP_PACKAGE_NAME, 0); - AttributionSource attributionSource = - new AttributionSource.Builder(testPackageUid) - .setPackageName(TEST_APP_PACKAGE_NAME) - .build(); - int opMode = iAppOps.checkOperationWithState(code, attributionSource.asState()); + int opMode = iAppOps.checkOperation(code, testPackageUid, TEST_APP_PACKAGE_NAME); assertEquals("Op " + opToName(code) + " disallowed for unsuspended package", MODE_ALLOWED, opMode); suspendTestPackage(null, null, null); assertTrue("AppOpsWatcher did not callback", latch.await(5, TimeUnit.SECONDS)); - opMode = iAppOps.checkOperationWithState(code, attributionSource.asState()); + opMode = iAppOps.checkOperation(code, testPackageUid, TEST_APP_PACKAGE_NAME); assertEquals("Op " + opToName(code) + " allowed for suspended package", MODE_IGNORED, opMode); iAppOps.stopWatchingMode(watcher); diff --git a/services/tests/servicestests/src/com/android/server/pm/UserManagerTest.java b/services/tests/servicestests/src/com/android/server/pm/UserManagerTest.java index 89c6a2201434..775d42a4df5f 100644 --- a/services/tests/servicestests/src/com/android/server/pm/UserManagerTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/UserManagerTest.java @@ -21,6 +21,7 @@ import static com.google.common.truth.Truth.assertWithMessage; import static org.junit.Assert.fail; import static org.junit.Assume.assumeTrue; +import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertThrows; import android.annotation.UserIdInt; @@ -34,6 +35,7 @@ import android.os.Bundle; import android.os.UserHandle; import android.os.UserManager; import android.platform.test.annotations.Postsubmit; +import android.platform.test.annotations.RequiresFlagsEnabled; import android.provider.Settings; import android.test.suitebuilder.annotation.LargeTest; import android.test.suitebuilder.annotation.MediumTest; @@ -267,6 +269,34 @@ public final class UserManagerTest { } @Test + @RequiresFlagsEnabled(android.multiuser.Flags.FLAG_SUPPORT_COMMUNAL_PROFILE) + public void testGetProfilesIncludingCommunal() throws Exception { + int mainUserId = mUserManager.getMainUser().getIdentifier(); + final UserInfo otherUser = createUser("TestUser", /* flags= */ 0); + final UserInfo profile = createProfileForUser("Profile", + UserManager.USER_TYPE_PROFILE_MANAGED, mainUserId); + + final UserHandle communalProfile = mUserManager.getCommunalProfile(); + + final List<UserInfo> mainsActual = mUserManager.getProfilesIncludingCommunal(mainUserId); + final List<UserInfo> othersActual = mUserManager.getProfilesIncludingCommunal(otherUser.id); + + final List<Integer> mainsExpected = new ArrayList<>(); + mainsExpected.add(mainUserId); + if (profile != null) mainsExpected.add(profile.id); + if (communalProfile != null) mainsExpected.add(communalProfile.getIdentifier()); + assertEquals(mainsExpected.stream().sorted().toList(), + mainsActual.stream().map(ui -> ui.id).sorted().toList()); + + + final List<Integer> othersExpected = new ArrayList<>(); + othersExpected.add(otherUser.id); + if (communalProfile != null) othersExpected.add(communalProfile.getIdentifier()); + assertEquals(othersExpected.stream().sorted().toList(), + othersActual.stream().map(ui -> ui.id).sorted().toList()); + } + + @Test public void testPrivateProfile() throws Exception { UserHandle mainUser = mUserManager.getMainUser(); assumeTrue("Main user is null", mainUser != null); diff --git a/services/tests/servicestests/src/com/android/server/pm/parsing/AndroidPackageParsingValidationTest.kt b/services/tests/servicestests/src/com/android/server/pm/parsing/AndroidPackageParsingValidationTest.kt index 20c0b0a3af66..cf2b748f7752 100644 --- a/services/tests/servicestests/src/com/android/server/pm/parsing/AndroidPackageParsingValidationTest.kt +++ b/services/tests/servicestests/src/com/android/server/pm/parsing/AndroidPackageParsingValidationTest.kt @@ -427,7 +427,7 @@ class AndroidPackageParsingValidationTest { fun parseMetaDataTag() { val tag = "meta-data" validateTagAttr(tag, "name", R.styleable.AndroidManifestMetaData_name, 1024) - validateTagAttr(tag, "value", R.styleable.AndroidManifestMetaData_value, 4000) + validateTagAttr(tag, "value", R.styleable.AndroidManifestMetaData_value, 32_768) } @Test diff --git a/services/tests/servicestests/src/com/android/server/timedetector/OWNERS b/services/tests/servicestests/src/com/android/server/timedetector/OWNERS deleted file mode 100644 index a0f46e172da6..000000000000 --- a/services/tests/servicestests/src/com/android/server/timedetector/OWNERS +++ /dev/null @@ -1,2 +0,0 @@ -# Bug component: 847766 -include /services/core/java/com/android/server/timedetector/OWNERS diff --git a/services/tests/servicestests/src/com/android/server/timedetector/TEST_MAPPING b/services/tests/servicestests/src/com/android/server/timedetector/TEST_MAPPING deleted file mode 100644 index a83d8bf20dc6..000000000000 --- a/services/tests/servicestests/src/com/android/server/timedetector/TEST_MAPPING +++ /dev/null @@ -1,13 +0,0 @@ -{ - // TODO(b/182461754): Change to "presubmit" when go/test-mapping-slo-guide allows. - "postsubmit": [ - { - "name": "FrameworksServicesTests", - "options": [ - { - "include-filter": "com.android.server.timedetector." - } - ] - } - ] -} diff --git a/services/tests/servicestests/src/com/android/server/timezone/OWNERS b/services/tests/servicestests/src/com/android/server/timezone/OWNERS deleted file mode 100644 index d64cbcdc2814..000000000000 --- a/services/tests/servicestests/src/com/android/server/timezone/OWNERS +++ /dev/null @@ -1,2 +0,0 @@ -# Bug component: 847766 -include /services/core/java/com/android/server/timezone/OWNERS diff --git a/services/tests/servicestests/src/com/android/server/timezonedetector/TEST_MAPPING b/services/tests/servicestests/src/com/android/server/timezonedetector/TEST_MAPPING deleted file mode 100644 index f59188cb9a52..000000000000 --- a/services/tests/servicestests/src/com/android/server/timezonedetector/TEST_MAPPING +++ /dev/null @@ -1,13 +0,0 @@ -{ - // TODO(b/182461754): Change to "presubmit" when go/test-mapping-slo-guide allows. - "postsubmit": [ - { - "name": "FrameworksServicesTests", - "options": [ - { - "include-filter": "com.android.server.timezonedetector." - } - ] - } - ] -} diff --git a/services/tests/timetests/Android.bp b/services/tests/timetests/Android.bp new file mode 100644 index 000000000000..23ab85996fff --- /dev/null +++ b/services/tests/timetests/Android.bp @@ -0,0 +1,27 @@ +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_test { + name: "FrameworksTimeServicesTests", + srcs: ["src/**/*.java"], + static_libs: [ + "androidx.test.rules", + "device-time-shell-utils", + "junit", + "junit-params", + "mockito-target-minus-junit4", + "platform-test-annotations", + "services.core", + "truth", + ], + libs: ["android.test.runner"], + platform_apis: true, + certificate: "platform", + test_suites: ["device-tests"], +} diff --git a/services/tests/timetests/AndroidManifest.xml b/services/tests/timetests/AndroidManifest.xml new file mode 100644 index 000000000000..a21d383c3233 --- /dev/null +++ b/services/tests/timetests/AndroidManifest.xml @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- 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. +--> + +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.android.framework.services.tests.time"> + + <application> + <uses-library android:name="android.test.runner" /> + </application> + + <instrumentation + android:name="androidx.test.runner.AndroidJUnitRunner" + android:targetPackage="com.android.framework.services.tests.time" + android:label="Frameworks Time Services Tests" /> + +</manifest> diff --git a/services/tests/servicestests/src/com/android/server/timezonedetector/OWNERS b/services/tests/timetests/OWNERS index a6ff1ba8a8cb..a6ff1ba8a8cb 100644 --- a/services/tests/servicestests/src/com/android/server/timezonedetector/OWNERS +++ b/services/tests/timetests/OWNERS diff --git a/services/tests/timetests/TEST_MAPPING b/services/tests/timetests/TEST_MAPPING new file mode 100644 index 000000000000..b24010ce447a --- /dev/null +++ b/services/tests/timetests/TEST_MAPPING @@ -0,0 +1,8 @@ +{ + // TODO(b/182461754): Change to "presubmit" when go/test-mapping-slo-guide allows. + "postsubmit": [ + { + "name": "FrameworksTimeServicesTests" + } + ] +} diff --git a/services/tests/servicestests/src/com/android/server/timedetector/ArrayMapWithHistoryTest.java b/services/tests/timetests/src/com/android/server/timedetector/ArrayMapWithHistoryTest.java index b6eea461d222..b6eea461d222 100644 --- a/services/tests/servicestests/src/com/android/server/timedetector/ArrayMapWithHistoryTest.java +++ b/services/tests/timetests/src/com/android/server/timedetector/ArrayMapWithHistoryTest.java diff --git a/services/tests/servicestests/src/com/android/server/timedetector/ConfigurationInternalTest.java b/services/tests/timetests/src/com/android/server/timedetector/ConfigurationInternalTest.java index 808c1ec2603b..392a48f5a7ca 100644 --- a/services/tests/servicestests/src/com/android/server/timedetector/ConfigurationInternalTest.java +++ b/services/tests/timetests/src/com/android/server/timedetector/ConfigurationInternalTest.java @@ -33,14 +33,14 @@ import android.app.time.TimeConfiguration; import com.android.server.timedetector.TimeDetectorStrategy.Origin; +import junitparams.JUnitParamsRunner; +import junitparams.Parameters; + import org.junit.Test; import org.junit.runner.RunWith; import java.time.Instant; -import junitparams.JUnitParamsRunner; -import junitparams.Parameters; - /** * Tests for {@link ConfigurationInternal} and associated {@link TimeCapabilitiesAndConfig} * behavior. diff --git a/services/tests/servicestests/src/com/android/server/timedetector/FakeServiceConfigAccessor.java b/services/tests/timetests/src/com/android/server/timedetector/FakeServiceConfigAccessor.java index d9bc74dfb1cb..d9bc74dfb1cb 100644 --- a/services/tests/servicestests/src/com/android/server/timedetector/FakeServiceConfigAccessor.java +++ b/services/tests/timetests/src/com/android/server/timedetector/FakeServiceConfigAccessor.java diff --git a/services/tests/servicestests/src/com/android/server/timedetector/FakeTimeDetectorStrategy.java b/services/tests/timetests/src/com/android/server/timedetector/FakeTimeDetectorStrategy.java index a7a9c0cd86f2..a7a9c0cd86f2 100644 --- a/services/tests/servicestests/src/com/android/server/timedetector/FakeTimeDetectorStrategy.java +++ b/services/tests/timetests/src/com/android/server/timedetector/FakeTimeDetectorStrategy.java diff --git a/services/tests/servicestests/src/com/android/server/timedetector/GnssTimeSuggestionTest.java b/services/tests/timetests/src/com/android/server/timedetector/GnssTimeSuggestionTest.java index 57d546929d8b..57d546929d8b 100644 --- a/services/tests/servicestests/src/com/android/server/timedetector/GnssTimeSuggestionTest.java +++ b/services/tests/timetests/src/com/android/server/timedetector/GnssTimeSuggestionTest.java diff --git a/services/tests/servicestests/src/com/android/server/timedetector/GnssTimeUpdateServiceTest.java b/services/tests/timetests/src/com/android/server/timedetector/GnssTimeUpdateServiceTest.java index c8afb78bc12f..c8afb78bc12f 100644 --- a/services/tests/servicestests/src/com/android/server/timedetector/GnssTimeUpdateServiceTest.java +++ b/services/tests/timetests/src/com/android/server/timedetector/GnssTimeUpdateServiceTest.java diff --git a/services/tests/servicestests/src/com/android/server/timedetector/NetworkTimeSuggestionTest.java b/services/tests/timetests/src/com/android/server/timedetector/NetworkTimeSuggestionTest.java index fcc76d37de2b..fcc76d37de2b 100644 --- a/services/tests/servicestests/src/com/android/server/timedetector/NetworkTimeSuggestionTest.java +++ b/services/tests/timetests/src/com/android/server/timedetector/NetworkTimeSuggestionTest.java diff --git a/services/tests/servicestests/src/com/android/server/timedetector/NetworkTimeUpdateServiceTest.java b/services/tests/timetests/src/com/android/server/timedetector/NetworkTimeUpdateServiceTest.java index d91ee92e005e..d91ee92e005e 100644 --- a/services/tests/servicestests/src/com/android/server/timedetector/NetworkTimeUpdateServiceTest.java +++ b/services/tests/timetests/src/com/android/server/timedetector/NetworkTimeUpdateServiceTest.java diff --git a/services/tests/servicestests/src/com/android/server/timedetector/ReferenceWithHistoryTest.java b/services/tests/timetests/src/com/android/server/timedetector/ReferenceWithHistoryTest.java index d5d2cbd0749e..d5d2cbd0749e 100644 --- a/services/tests/servicestests/src/com/android/server/timedetector/ReferenceWithHistoryTest.java +++ b/services/tests/timetests/src/com/android/server/timedetector/ReferenceWithHistoryTest.java diff --git a/services/tests/servicestests/src/com/android/server/timedetector/TimeDetectorInternalImplTest.java b/services/tests/timetests/src/com/android/server/timedetector/TimeDetectorInternalImplTest.java index de5a37b43df8..de5a37b43df8 100644 --- a/services/tests/servicestests/src/com/android/server/timedetector/TimeDetectorInternalImplTest.java +++ b/services/tests/timetests/src/com/android/server/timedetector/TimeDetectorInternalImplTest.java diff --git a/services/tests/servicestests/src/com/android/server/timedetector/TimeDetectorServiceTest.java b/services/tests/timetests/src/com/android/server/timedetector/TimeDetectorServiceTest.java index 6b2d4b01dd08..6b2d4b01dd08 100644 --- a/services/tests/servicestests/src/com/android/server/timedetector/TimeDetectorServiceTest.java +++ b/services/tests/timetests/src/com/android/server/timedetector/TimeDetectorServiceTest.java diff --git a/services/tests/servicestests/src/com/android/server/timedetector/TimeDetectorStrategyImplTest.java b/services/tests/timetests/src/com/android/server/timedetector/TimeDetectorStrategyImplTest.java index dd58135a8e87..c64ec724b641 100644 --- a/services/tests/servicestests/src/com/android/server/timedetector/TimeDetectorStrategyImplTest.java +++ b/services/tests/timetests/src/com/android/server/timedetector/TimeDetectorStrategyImplTest.java @@ -51,6 +51,9 @@ import com.android.server.timedetector.TimeDetectorStrategy.Origin; import com.android.server.timezonedetector.StateChangeListener; import com.android.server.timezonedetector.TestStateChangeListener; +import junitparams.JUnitParamsRunner; +import junitparams.Parameters; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -62,9 +65,6 @@ import java.time.ZoneOffset; import java.util.ArrayList; import java.util.List; -import junitparams.JUnitParamsRunner; -import junitparams.Parameters; - @RunWith(JUnitParamsRunner.class) public class TimeDetectorStrategyImplTest { diff --git a/services/tests/servicestests/src/com/android/server/timezonedetector/ConfigurationInternalTest.java b/services/tests/timetests/src/com/android/server/timezonedetector/ConfigurationInternalTest.java index 566c6b03555d..c77fe3943b95 100644 --- a/services/tests/servicestests/src/com/android/server/timezonedetector/ConfigurationInternalTest.java +++ b/services/tests/timetests/src/com/android/server/timezonedetector/ConfigurationInternalTest.java @@ -35,12 +35,12 @@ import android.app.time.TimeZoneCapabilities; import android.app.time.TimeZoneCapabilitiesAndConfig; import android.app.time.TimeZoneConfiguration; -import org.junit.Test; -import org.junit.runner.RunWith; - import junitparams.JUnitParamsRunner; import junitparams.Parameters; +import org.junit.Test; +import org.junit.runner.RunWith; + /** * Tests for {@link ConfigurationInternal} and associated {@link TimeZoneCapabilitiesAndConfig} * behavior. diff --git a/services/tests/servicestests/src/com/android/server/timezonedetector/FakeServiceConfigAccessor.java b/services/tests/timetests/src/com/android/server/timezonedetector/FakeServiceConfigAccessor.java index fc6afe486187..fc6afe486187 100644 --- a/services/tests/servicestests/src/com/android/server/timezonedetector/FakeServiceConfigAccessor.java +++ b/services/tests/timetests/src/com/android/server/timezonedetector/FakeServiceConfigAccessor.java diff --git a/services/tests/servicestests/src/com/android/server/timezonedetector/FakeTimeZoneDetectorStrategy.java b/services/tests/timetests/src/com/android/server/timezonedetector/FakeTimeZoneDetectorStrategy.java index 1e72369ac3a6..74393070209e 100644 --- a/services/tests/servicestests/src/com/android/server/timezonedetector/FakeTimeZoneDetectorStrategy.java +++ b/services/tests/timetests/src/com/android/server/timezonedetector/FakeTimeZoneDetectorStrategy.java @@ -43,7 +43,7 @@ public class FakeTimeZoneDetectorStrategy implements TimeZoneDetectorStrategy { this::notifyChangeListeners); } - public void initializeConfigurationAndStatus( + void initializeConfigurationAndStatus( ConfigurationInternal configuration, TimeZoneDetectorStatus status) { mFakeServiceConfigAccessor.initializeCurrentUserConfiguration(configuration); mStatus = Objects.requireNonNull(status); diff --git a/services/tests/servicestests/src/com/android/server/timezonedetector/GeolocationTimeZoneSuggestionTest.java b/services/tests/timetests/src/com/android/server/timezonedetector/GeolocationTimeZoneSuggestionTest.java index 602842addff2..602842addff2 100644 --- a/services/tests/servicestests/src/com/android/server/timezonedetector/GeolocationTimeZoneSuggestionTest.java +++ b/services/tests/timetests/src/com/android/server/timezonedetector/GeolocationTimeZoneSuggestionTest.java diff --git a/services/tests/servicestests/src/com/android/server/timezonedetector/LocationAlgorithmEventTest.java b/services/tests/timetests/src/com/android/server/timezonedetector/LocationAlgorithmEventTest.java index 4c14014405f4..4c14014405f4 100644 --- a/services/tests/servicestests/src/com/android/server/timezonedetector/LocationAlgorithmEventTest.java +++ b/services/tests/timetests/src/com/android/server/timezonedetector/LocationAlgorithmEventTest.java diff --git a/services/tests/servicestests/src/com/android/server/timezonedetector/MetricsTimeZoneDetectorStateTest.java b/services/tests/timetests/src/com/android/server/timezonedetector/MetricsTimeZoneDetectorStateTest.java index 8207c1915edb..8207c1915edb 100644 --- a/services/tests/servicestests/src/com/android/server/timezonedetector/MetricsTimeZoneDetectorStateTest.java +++ b/services/tests/timetests/src/com/android/server/timezonedetector/MetricsTimeZoneDetectorStateTest.java diff --git a/services/tests/servicestests/src/com/android/server/timezonedetector/OrdinalGeneratorTest.java b/services/tests/timetests/src/com/android/server/timezonedetector/OrdinalGeneratorTest.java index 3fdac66225a8..3fdac66225a8 100644 --- a/services/tests/servicestests/src/com/android/server/timezonedetector/OrdinalGeneratorTest.java +++ b/services/tests/timetests/src/com/android/server/timezonedetector/OrdinalGeneratorTest.java diff --git a/services/tests/servicestests/src/com/android/server/timezonedetector/ShellCommandTestSupport.java b/services/tests/timetests/src/com/android/server/timezonedetector/ShellCommandTestSupport.java index b96c82fc396c..72b181984123 100644 --- a/services/tests/servicestests/src/com/android/server/timezonedetector/ShellCommandTestSupport.java +++ b/services/tests/timetests/src/com/android/server/timezonedetector/ShellCommandTestSupport.java @@ -29,10 +29,17 @@ import java.util.List; public final class ShellCommandTestSupport { private ShellCommandTestSupport() {} + /** + * Returns a {@link ShellCommand} from the supplied String, where elements of the command are + * separated with spaces. No escaping is performed. + */ public static ShellCommand createShellCommandWithArgsAndOptions(String argsWithSpaces) { return createShellCommandWithArgsAndOptions(Arrays.asList(argsWithSpaces.split(" "))); } + /** + * Returns a {@link ShellCommand} from the supplied list of command line elements. + */ public static ShellCommand createShellCommandWithArgsAndOptions(List<String> args) { ShellCommand command = mock(ShellCommand.class); class ArgProvider { diff --git a/services/tests/servicestests/src/com/android/server/timezonedetector/TestCallerIdentityInjector.java b/services/tests/timetests/src/com/android/server/timezonedetector/TestCallerIdentityInjector.java index f45b3a822f1a..56db9ccd68e7 100644 --- a/services/tests/servicestests/src/com/android/server/timezonedetector/TestCallerIdentityInjector.java +++ b/services/tests/timetests/src/com/android/server/timezonedetector/TestCallerIdentityInjector.java @@ -28,12 +28,18 @@ public class TestCallerIdentityInjector implements CallerIdentityInjector { private int mCallingUserId; private Integer mCurrentCallingUserId; + /** Initializes the calling user ID. */ public void initializeCallingUserId(@UserIdInt int userId) { mCallingUserId = userId; mCurrentCallingUserId = userId; } @Override + public int resolveUserId(int userId, String debugInfo) { + return userId; + } + + @Override public int getCallingUserId() { assertNotNull("callingUserId has been cleared", mCurrentCallingUserId); return mCurrentCallingUserId; diff --git a/services/tests/servicestests/src/com/android/server/timezonedetector/TestCurrentUserIdentityInjector.java b/services/tests/timetests/src/com/android/server/timezonedetector/TestCurrentUserIdentityInjector.java index aad06d87f111..61f92602295c 100644 --- a/services/tests/servicestests/src/com/android/server/timezonedetector/TestCurrentUserIdentityInjector.java +++ b/services/tests/timetests/src/com/android/server/timezonedetector/TestCurrentUserIdentityInjector.java @@ -23,6 +23,7 @@ public class TestCurrentUserIdentityInjector implements CurrentUserIdentityInjec private Integer mCurrentUserId; + /** Initializes the current user ID. */ public void initializeCurrentUserId(@UserIdInt int userId) { mCurrentUserId = userId; } diff --git a/services/tests/servicestests/src/com/android/server/timezonedetector/TestHandler.java b/services/tests/timetests/src/com/android/server/timezonedetector/TestHandler.java index eb6f00c9250b..eb6f00c9250b 100644 --- a/services/tests/servicestests/src/com/android/server/timezonedetector/TestHandler.java +++ b/services/tests/timetests/src/com/android/server/timezonedetector/TestHandler.java diff --git a/services/tests/servicestests/src/com/android/server/timezonedetector/TestState.java b/services/tests/timetests/src/com/android/server/timezonedetector/TestState.java index 97095c4f675f..97095c4f675f 100644 --- a/services/tests/servicestests/src/com/android/server/timezonedetector/TestState.java +++ b/services/tests/timetests/src/com/android/server/timezonedetector/TestState.java diff --git a/services/tests/servicestests/src/com/android/server/timezonedetector/TestStateChangeListener.java b/services/tests/timetests/src/com/android/server/timezonedetector/TestStateChangeListener.java index 9cbf0a34f8fe..23f96a21786b 100644 --- a/services/tests/servicestests/src/com/android/server/timezonedetector/TestStateChangeListener.java +++ b/services/tests/timetests/src/com/android/server/timezonedetector/TestStateChangeListener.java @@ -27,6 +27,7 @@ public class TestStateChangeListener implements StateChangeListener { mNotificationsReceived++; } + /** Asserts the expected number of notifications have been received, then resets the count. */ public void assertNotificationsReceivedAndReset(int expectedCount) { assertNotificationsReceived(expectedCount); resetNotificationsReceivedCount(); diff --git a/services/tests/servicestests/src/com/android/server/timezonedetector/TimeZoneCanonicalizerTest.java b/services/tests/timetests/src/com/android/server/timezonedetector/TimeZoneCanonicalizerTest.java index 0c78f5b85fac..0c78f5b85fac 100644 --- a/services/tests/servicestests/src/com/android/server/timezonedetector/TimeZoneCanonicalizerTest.java +++ b/services/tests/timetests/src/com/android/server/timezonedetector/TimeZoneCanonicalizerTest.java diff --git a/services/tests/servicestests/src/com/android/server/timezonedetector/TimeZoneDetectorInternalImplTest.java b/services/tests/timetests/src/com/android/server/timezonedetector/TimeZoneDetectorInternalImplTest.java index a02c8ca001ce..a02c8ca001ce 100644 --- a/services/tests/servicestests/src/com/android/server/timezonedetector/TimeZoneDetectorInternalImplTest.java +++ b/services/tests/timetests/src/com/android/server/timezonedetector/TimeZoneDetectorInternalImplTest.java diff --git a/services/tests/servicestests/src/com/android/server/timezonedetector/TimeZoneDetectorServiceTest.java b/services/tests/timetests/src/com/android/server/timezonedetector/TimeZoneDetectorServiceTest.java index d9d8053e6220..d9d8053e6220 100644 --- a/services/tests/servicestests/src/com/android/server/timezonedetector/TimeZoneDetectorServiceTest.java +++ b/services/tests/timetests/src/com/android/server/timezonedetector/TimeZoneDetectorServiceTest.java diff --git a/services/tests/servicestests/src/com/android/server/timezonedetector/TimeZoneDetectorStrategyImplTest.java b/services/tests/timetests/src/com/android/server/timezonedetector/TimeZoneDetectorStrategyImplTest.java index 03d406f94696..e52e8b60a61d 100644 --- a/services/tests/servicestests/src/com/android/server/timezonedetector/TimeZoneDetectorStrategyImplTest.java +++ b/services/tests/timetests/src/com/android/server/timezonedetector/TimeZoneDetectorStrategyImplTest.java @@ -72,6 +72,9 @@ import android.service.timezone.TimeZoneProviderStatus; import com.android.server.SystemTimeZone.TimeZoneConfidence; import com.android.server.timezonedetector.TimeZoneDetectorStrategyImpl.QualifiedTelephonyTimeZoneSuggestion; +import junitparams.JUnitParamsRunner; +import junitparams.Parameters; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -83,9 +86,6 @@ import java.util.Collections; import java.util.List; import java.util.function.Function; -import junitparams.JUnitParamsRunner; -import junitparams.Parameters; - /** * White-box unit tests for {@link TimeZoneDetectorStrategyImpl}. */ diff --git a/services/tests/servicestests/src/com/android/server/timezonedetector/location/FakeTimeZoneProviderEventPreProcessor.java b/services/tests/timetests/src/com/android/server/timezonedetector/location/FakeTimeZoneProviderEventPreProcessor.java index f8d169b54bca..e05d84f50465 100644 --- a/services/tests/servicestests/src/com/android/server/timezonedetector/location/FakeTimeZoneProviderEventPreProcessor.java +++ b/services/tests/timetests/src/com/android/server/timezonedetector/location/FakeTimeZoneProviderEventPreProcessor.java @@ -38,6 +38,7 @@ public final class FakeTimeZoneProviderEventPreProcessor return timeZoneProviderEvent; } + /** Enters a mode where {@link #preProcess} will always return "uncertain" events. */ public void enterUncertainMode() { mIsUncertain = true; } diff --git a/services/tests/servicestests/src/com/android/server/timezonedetector/location/HandlerThreadingDomainTest.java b/services/tests/timetests/src/com/android/server/timezonedetector/location/HandlerThreadingDomainTest.java index e7dd97949bb0..e7dd97949bb0 100644 --- a/services/tests/servicestests/src/com/android/server/timezonedetector/location/HandlerThreadingDomainTest.java +++ b/services/tests/timetests/src/com/android/server/timezonedetector/location/HandlerThreadingDomainTest.java diff --git a/services/tests/servicestests/src/com/android/server/timezonedetector/location/LocationTimeZoneProviderControllerTest.java b/services/tests/timetests/src/com/android/server/timezonedetector/location/LocationTimeZoneProviderControllerTest.java index 7ff015dd8370..7ff015dd8370 100644 --- a/services/tests/servicestests/src/com/android/server/timezonedetector/location/LocationTimeZoneProviderControllerTest.java +++ b/services/tests/timetests/src/com/android/server/timezonedetector/location/LocationTimeZoneProviderControllerTest.java diff --git a/services/tests/servicestests/src/com/android/server/timezonedetector/location/LocationTimeZoneProviderTest.java b/services/tests/timetests/src/com/android/server/timezonedetector/location/LocationTimeZoneProviderTest.java index 1ae74c679b53..1ae74c679b53 100644 --- a/services/tests/servicestests/src/com/android/server/timezonedetector/location/LocationTimeZoneProviderTest.java +++ b/services/tests/timetests/src/com/android/server/timezonedetector/location/LocationTimeZoneProviderTest.java diff --git a/services/tests/servicestests/src/com/android/server/timezonedetector/location/TestSupport.java b/services/tests/timetests/src/com/android/server/timezonedetector/location/TestSupport.java index 042e3ef892f9..042e3ef892f9 100644 --- a/services/tests/servicestests/src/com/android/server/timezonedetector/location/TestSupport.java +++ b/services/tests/timetests/src/com/android/server/timezonedetector/location/TestSupport.java diff --git a/services/tests/servicestests/src/com/android/server/timezonedetector/location/TestThreadingDomain.java b/services/tests/timetests/src/com/android/server/timezonedetector/location/TestThreadingDomain.java index a3fb5e620c20..a3fb5e620c20 100644 --- a/services/tests/servicestests/src/com/android/server/timezonedetector/location/TestThreadingDomain.java +++ b/services/tests/timetests/src/com/android/server/timezonedetector/location/TestThreadingDomain.java diff --git a/services/tests/servicestests/src/com/android/server/timezonedetector/location/ZoneInfoDbTimeZoneProviderEventPreProcessorTest.java b/services/tests/timetests/src/com/android/server/timezonedetector/location/ZoneInfoDbTimeZoneProviderEventPreProcessorTest.java index f3440f7c9d1c..f3440f7c9d1c 100644 --- a/services/tests/servicestests/src/com/android/server/timezonedetector/location/ZoneInfoDbTimeZoneProviderEventPreProcessorTest.java +++ b/services/tests/timetests/src/com/android/server/timezonedetector/location/ZoneInfoDbTimeZoneProviderEventPreProcessorTest.java diff --git a/services/tests/uiservicestests/src/com/android/server/notification/ZenModeConfigTest.java b/services/tests/uiservicestests/src/com/android/server/notification/ZenModeConfigTest.java index 3ba94000d4a5..261b5d33b635 100644 --- a/services/tests/uiservicestests/src/com/android/server/notification/ZenModeConfigTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/ZenModeConfigTest.java @@ -16,6 +16,7 @@ package com.android.server.notification; +import static android.app.AutomaticZenRule.TYPE_BEDTIME; import static android.service.notification.ZenPolicy.CONVERSATION_SENDERS_IMPORTANT; import static junit.framework.TestCase.assertEquals; @@ -24,9 +25,12 @@ import static junit.framework.TestCase.assertNotNull; import static junit.framework.TestCase.assertNull; import static junit.framework.TestCase.assertTrue; +import android.app.Flags; import android.app.NotificationManager.Policy; import android.content.ComponentName; import android.net.Uri; +import android.os.Parcel; +import android.platform.test.flag.junit.SetFlagsRule; import android.provider.Settings; import android.service.notification.Condition; import android.service.notification.ZenModeConfig; @@ -41,6 +45,7 @@ import com.android.modules.utils.TypedXmlPullParser; import com.android.modules.utils.TypedXmlSerializer; import com.android.server.UiServiceTestCase; +import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.xmlpull.v1.XmlPullParserException; @@ -55,6 +60,28 @@ import java.io.IOException; @RunWith(AndroidJUnit4.class) public class ZenModeConfigTest extends UiServiceTestCase { + private final String NAME = "name"; + private final ComponentName OWNER = new ComponentName("pkg", "cls"); + private final ComponentName CONFIG_ACTIVITY = new ComponentName("pkg", "act"); + private final ZenPolicy POLICY = new ZenPolicy.Builder().allowAlarms(true).build(); + private final Uri CONDITION_ID = new Uri.Builder().scheme("scheme") + .authority("authority") + .appendPath("path") + .appendPath("test") + .build(); + + private final Condition CONDITION = new Condition(CONDITION_ID, "", Condition.STATE_TRUE); + private final String TRIGGER_DESC = "Every Night, 10pm to 6am"; + private final int TYPE = TYPE_BEDTIME; + private final boolean ALLOW_MANUAL = true; + private final int ICON_RES_ID = 1234; + private final int INTERRUPTION_FILTER = Settings.Global.ZEN_MODE_ALARMS; + private final boolean ENABLED = true; + private final int CREATION_TIME = 123; + + @Rule + public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); + @Test public void testPriorityOnlyMutingAllNotifications() { ZenModeConfig config = getMutedRingerConfig(); @@ -202,7 +229,59 @@ public class ZenModeConfigTest extends UiServiceTestCase { } @Test - public void testRuleXml() throws Exception { + public void testWriteToParcel() { + mSetFlagsRule.enableFlags(Flags.FLAG_MODES_API); + + ZenModeConfig.ZenRule rule = new ZenModeConfig.ZenRule(); + rule.configurationActivity = CONFIG_ACTIVITY; + rule.component = OWNER; + rule.conditionId = CONDITION_ID; + rule.condition = CONDITION; + rule.enabled = ENABLED; + rule.creationTime = 123; + rule.id = "id"; + rule.zenMode = INTERRUPTION_FILTER; + rule.modified = true; + rule.name = NAME; + rule.snoozing = true; + rule.pkg = OWNER.getPackageName(); + rule.zenPolicy = POLICY; + + rule.allowManualInvocation = ALLOW_MANUAL; + rule.type = TYPE; + rule.iconResId = ICON_RES_ID; + rule.triggerDescription = TRIGGER_DESC; + + Parcel parcel = Parcel.obtain(); + rule.writeToParcel(parcel, 0); + parcel.setDataPosition(0); + ZenModeConfig.ZenRule parceled = new ZenModeConfig.ZenRule(parcel); + + assertEquals(rule.pkg, parceled.pkg); + assertEquals(rule.snoozing, parceled.snoozing); + assertEquals(rule.enabler, parceled.enabler); + assertEquals(rule.component, parceled.component); + assertEquals(rule.configurationActivity, parceled.configurationActivity); + assertEquals(rule.condition, parceled.condition); + assertEquals(rule.enabled, parceled.enabled); + assertEquals(rule.creationTime, parceled.creationTime); + assertEquals(rule.modified, parceled.modified); + assertEquals(rule.conditionId, parceled.conditionId); + assertEquals(rule.name, parceled.name); + assertEquals(rule.zenMode, parceled.zenMode); + + assertEquals(rule.allowManualInvocation, parceled.allowManualInvocation); + assertEquals(rule.iconResId, parceled.iconResId); + assertEquals(rule.type, parceled.type); + assertEquals(rule.triggerDescription, parceled.triggerDescription); + assertEquals(rule.zenPolicy, parceled.zenPolicy); + assertEquals(rule, parceled); + assertEquals(rule.hashCode(), parceled.hashCode()); + + } + + @Test + public void testRuleXml_classic() throws Exception { ZenModeConfig.ZenRule rule = new ZenModeConfig.ZenRule(); rule.configurationActivity = new ComponentName("a", "a"); rule.component = new ComponentName("b", "b"); @@ -239,6 +318,58 @@ public class ZenModeConfigTest extends UiServiceTestCase { } @Test + public void testRuleXml() throws Exception { + mSetFlagsRule.enableFlags(Flags.FLAG_MODES_API); + + ZenModeConfig.ZenRule rule = new ZenModeConfig.ZenRule(); + rule.configurationActivity = CONFIG_ACTIVITY; + rule.component = OWNER; + rule.conditionId = CONDITION_ID; + rule.condition = CONDITION; + rule.enabled = ENABLED; + rule.creationTime = 123; + rule.id = "id"; + rule.zenMode = INTERRUPTION_FILTER; + rule.modified = true; + rule.name = NAME; + rule.snoozing = true; + rule.pkg = OWNER.getPackageName(); + rule.zenPolicy = POLICY; + rule.creationTime = CREATION_TIME; + + rule.allowManualInvocation = ALLOW_MANUAL; + rule.type = TYPE; + rule.iconResId = ICON_RES_ID; + rule.triggerDescription = TRIGGER_DESC; + + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + writeRuleXml(rule, baos); + ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); + ZenModeConfig.ZenRule fromXml = readRuleXml(bais); + + assertEquals(rule.pkg, fromXml.pkg); + // always resets on reboot + assertFalse(fromXml.snoozing); + //should all match original + assertEquals(rule.component, fromXml.component); + assertEquals(rule.configurationActivity, fromXml.configurationActivity); + assertNull(fromXml.enabler); + assertEquals(rule.condition, fromXml.condition); + assertEquals(rule.enabled, fromXml.enabled); + assertEquals(rule.creationTime, fromXml.creationTime); + assertEquals(rule.modified, fromXml.modified); + assertEquals(rule.conditionId, fromXml.conditionId); + assertEquals(rule.name, fromXml.name); + assertEquals(rule.zenMode, fromXml.zenMode); + assertEquals(rule.creationTime, fromXml.creationTime); + + assertEquals(rule.allowManualInvocation, fromXml.allowManualInvocation); + assertEquals(rule.type, fromXml.type); + assertEquals(rule.triggerDescription, fromXml.triggerDescription); + assertEquals(rule.iconResId, fromXml.iconResId); + } + + @Test public void testRuleXml_pkg_component() throws Exception { ZenModeConfig.ZenRule rule = new ZenModeConfig.ZenRule(); rule.configurationActivity = new ComponentName("a", "a"); 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 bcd807ab6d2f..fd3d5e9bf863 100644 --- a/services/tests/uiservicestests/src/com/android/server/notification/ZenModeDiffTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/ZenModeDiffTest.java @@ -23,6 +23,7 @@ import static junit.framework.Assert.assertNull; import static junit.framework.Assert.assertTrue; import static junit.framework.Assert.fail; +import android.app.AutomaticZenRule; import android.content.ComponentName; import android.net.Uri; import android.provider.Settings; @@ -229,6 +230,10 @@ public class ZenModeDiffTest extends UiServiceTestCase { rule.name = "name"; rule.snoozing = true; rule.pkg = "a"; + rule.allowManualInvocation = true; + rule.type = AutomaticZenRule.TYPE_SCHEDULE_TIME; + rule.iconResId = 123; + rule.triggerDescription = "At night"; return rule; } diff --git a/services/tests/uiservicestests/src/com/android/server/notification/ZenModeHelperTest.java b/services/tests/uiservicestests/src/com/android/server/notification/ZenModeHelperTest.java index e22c10489d4d..e8201fdef8de 100644 --- a/services/tests/uiservicestests/src/com/android/server/notification/ZenModeHelperTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/ZenModeHelperTest.java @@ -16,6 +16,11 @@ package com.android.server.notification; +import static android.app.AutomaticZenRule.TYPE_BEDTIME; +import static android.app.NotificationManager.AUTOMATIC_RULE_STATUS_ACTIVATED; +import static android.app.NotificationManager.AUTOMATIC_RULE_STATUS_DEACTIVATED; +import static android.app.NotificationManager.AUTOMATIC_RULE_STATUS_DISABLED; +import static android.app.NotificationManager.AUTOMATIC_RULE_STATUS_ENABLED; import static android.app.NotificationManager.Policy.CONVERSATION_SENDERS_ANYONE; import static android.app.NotificationManager.Policy.PRIORITY_CATEGORY_ALARMS; import static android.app.NotificationManager.Policy.PRIORITY_CATEGORY_CALLS; @@ -71,6 +76,7 @@ import android.annotation.SuppressLint; import android.app.AppGlobals; import android.app.AppOpsManager; import android.app.AutomaticZenRule; +import android.app.Flags; import android.app.NotificationManager; import android.app.NotificationManager.Policy; import android.content.ComponentName; @@ -88,6 +94,7 @@ import android.media.VolumePolicy; import android.net.Uri; import android.os.Process; import android.os.UserHandle; +import android.platform.test.flag.junit.SetFlagsRule; import android.provider.Settings; import android.provider.Settings.Global; import android.service.notification.Condition; @@ -120,6 +127,7 @@ import com.google.common.collect.ImmutableList; import com.google.protobuf.InvalidProtocolBufferException; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; @@ -137,6 +145,8 @@ import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.Objects; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; @SmallTest @SuppressLint("GuardedBy") // It's ok for this test to access guarded methods from the service. @@ -150,6 +160,28 @@ public class ZenModeHelperTest extends UiServiceTestCase { private static final int CUSTOM_PKG_UID = 1; private static final String CUSTOM_RULE_ID = "custom_rule"; + private final String NAME = "name"; + private final ComponentName OWNER = new ComponentName("pkg", "cls"); + private final ComponentName CONFIG_ACTIVITY = new ComponentName("pkg", "act"); + private final ZenPolicy POLICY = new ZenPolicy.Builder().allowAlarms(true).build(); + private final Uri CONDITION_ID = new Uri.Builder().scheme("scheme") + .authority("authority") + .appendPath("path") + .appendPath("test") + .build(); + + private final Condition CONDITION = new Condition(CONDITION_ID, "", Condition.STATE_TRUE); + private final String TRIGGER_DESC = "Every Night, 10pm to 6am"; + private final int TYPE = TYPE_BEDTIME; + private final boolean ALLOW_MANUAL = true; + private final int ICON_RES_ID = 1234; + private final int INTERRUPTION_FILTER = Settings.Global.ZEN_MODE_ALARMS; + private final boolean ENABLED = true; + private final int CREATION_TIME = 123; + + @Rule + public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); + ConditionProviders mConditionProviders; @Mock NotificationManager mNotificationManager; @Mock PackageManager mPackageManager; @@ -1961,6 +1993,26 @@ public class ZenModeHelperTest extends UiServiceTestCase { @Test public void testSetManualZenMode() { + mSetFlagsRule.enableFlags(Flags.FLAG_MODES_API); + setupZenConfig(); + + // note that caller=null because that's how it comes in from NMS.setZenMode + mZenModeHelper.setManualZenMode(ZEN_MODE_IMPORTANT_INTERRUPTIONS, null, null, "", + Process.SYSTEM_UID, true); + + // confirm that setting zen mode via setManualZenMode changed the zen mode correctly + assertEquals(ZEN_MODE_IMPORTANT_INTERRUPTIONS, mZenModeHelper.mZenMode); + assertEquals(true, mZenModeHelper.mConfig.manualRule.allowManualInvocation); + + // and also that it works to turn it back off again + mZenModeHelper.setManualZenMode(Global.ZEN_MODE_OFF, null, null, "", + Process.SYSTEM_UID, true); + + assertEquals(Global.ZEN_MODE_OFF, mZenModeHelper.mZenMode); + } + + @Test + public void testSetManualZenMode_legacy() { setupZenConfig(); // note that caller=null because that's how it comes in from NMS.setZenMode @@ -2607,6 +2659,262 @@ public class ZenModeHelperTest extends UiServiceTestCase { assertFalse(mZenModeHelper.mConsolidatedPolicy.showPeeking()); // custom stricter } + @Test + public void testCreateAutomaticZenRule_allFields() { + mSetFlagsRule.enableFlags(Flags.FLAG_MODES_API); + ZenModeConfig.ZenRule rule = new ZenModeConfig.ZenRule(); + rule.configurationActivity = CONFIG_ACTIVITY; + rule.component = OWNER; + rule.conditionId = CONDITION_ID; + rule.condition = CONDITION; + rule.enabled = ENABLED; + rule.creationTime = 123; + rule.id = "id"; + rule.zenMode = INTERRUPTION_FILTER; + rule.modified = true; + rule.name = NAME; + rule.snoozing = true; + rule.pkg = OWNER.getPackageName(); + rule.zenPolicy = POLICY; + + rule.allowManualInvocation = ALLOW_MANUAL; + rule.type = TYPE; + rule.iconResId = ICON_RES_ID; + rule.triggerDescription = TRIGGER_DESC; + + AutomaticZenRule actual = mZenModeHelper.createAutomaticZenRule(rule); + + assertEquals(NAME, actual.getName()); + assertEquals(OWNER, actual.getOwner()); + assertEquals(CONDITION_ID, actual.getConditionId()); + assertEquals(NotificationManager.INTERRUPTION_FILTER_ALARMS, + actual.getInterruptionFilter()); + assertEquals(ENABLED, actual.isEnabled()); + assertEquals(POLICY, actual.getZenPolicy()); + assertEquals(CONFIG_ACTIVITY, actual.getConfigurationActivity()); + assertEquals(TYPE, actual.getType()); + assertEquals(ALLOW_MANUAL, actual.isManualInvocationAllowed()); + assertEquals(CREATION_TIME, actual.getCreationTime()); + assertEquals(OWNER.getPackageName(), actual.getPackageName()); + assertEquals(ICON_RES_ID, actual.getIconResId()); + assertEquals(TRIGGER_DESC, actual.getTriggerDescription()); + } + + @Test + public void testUpdateAutomaticRule_disabled_triggersBroadcast() throws Exception { + setupZenConfig(); + + // Add a new automatic zen rule that's enabled + AutomaticZenRule zenRule = new AutomaticZenRule("name", + null, + new ComponentName(CUSTOM_PKG_NAME, "ScheduleConditionProvider"), + ZenModeConfig.toScheduleConditionId(new ScheduleInfo()), + null, + NotificationManager.INTERRUPTION_FILTER_PRIORITY, true); + final String createdId = mZenModeHelper.addAutomaticZenRule(mContext.getPackageName(), + zenRule, "test", Process.SYSTEM_UID, true); + + CountDownLatch latch = new CountDownLatch(1); + final int[] actualStatus = new int[1]; + ZenModeHelper.Callback callback = new ZenModeHelper.Callback() { + @Override + void onAutomaticRuleStatusChanged(int userId, String pkg, String id, int status) { + if (Objects.equals(createdId, id)) { + actualStatus[0] = status; + latch.countDown(); + } + } + }; + mZenModeHelper.addCallback(callback); + + zenRule.setEnabled(false); + mZenModeHelper.updateAutomaticZenRule(createdId, zenRule, "", Process.SYSTEM_UID, true); + + assertTrue(latch.await(500, TimeUnit.MILLISECONDS)); + assertEquals(AUTOMATIC_RULE_STATUS_DISABLED, actualStatus[0]); + } + + @Test + public void testUpdateAutomaticRule_enabled_triggersBroadcast() throws Exception { + setupZenConfig(); + + // Add a new automatic zen rule that's enabled + AutomaticZenRule zenRule = new AutomaticZenRule("name", + null, + new ComponentName(CUSTOM_PKG_NAME, "ScheduleConditionProvider"), + ZenModeConfig.toScheduleConditionId(new ScheduleInfo()), + null, + NotificationManager.INTERRUPTION_FILTER_PRIORITY, false); + final String createdId = mZenModeHelper.addAutomaticZenRule(mContext.getPackageName(), + zenRule, "test", Process.SYSTEM_UID, true); + + CountDownLatch latch = new CountDownLatch(1); + final int[] actualStatus = new int[1]; + ZenModeHelper.Callback callback = new ZenModeHelper.Callback() { + @Override + void onAutomaticRuleStatusChanged(int userId, String pkg, String id, int status) { + if (Objects.equals(createdId, id)) { + actualStatus[0] = status; + latch.countDown(); + } + } + }; + mZenModeHelper.addCallback(callback); + + zenRule.setEnabled(true); + mZenModeHelper.updateAutomaticZenRule(createdId, zenRule, "", Process.SYSTEM_UID, true); + + assertTrue(latch.await(500, TimeUnit.MILLISECONDS)); + assertEquals(AUTOMATIC_RULE_STATUS_ENABLED, actualStatus[0]); + } + + @Test + public void testUpdateAutomaticRule_activated_triggersBroadcast() throws Exception { + mSetFlagsRule.enableFlags(Flags.FLAG_MODES_API); + setupZenConfig(); + + // Add a new automatic zen rule that's enabled + AutomaticZenRule zenRule = new AutomaticZenRule("name", + null, + new ComponentName(CUSTOM_PKG_NAME, "ScheduleConditionProvider"), + ZenModeConfig.toScheduleConditionId(new ScheduleInfo()), + null, + NotificationManager.INTERRUPTION_FILTER_PRIORITY, true); + final String createdId = mZenModeHelper.addAutomaticZenRule(mContext.getPackageName(), + zenRule, "test", Process.SYSTEM_UID, true); + + CountDownLatch latch = new CountDownLatch(1); + final int[] actualStatus = new int[1]; + ZenModeHelper.Callback callback = new ZenModeHelper.Callback() { + @Override + void onAutomaticRuleStatusChanged(int userId, String pkg, String id, int status) { + if (Objects.equals(createdId, id)) { + actualStatus[0] = status; + latch.countDown(); + } + } + }; + mZenModeHelper.addCallback(callback); + + mZenModeHelper.setAutomaticZenRuleState(createdId, + new Condition(zenRule.getConditionId(), "", STATE_TRUE), + Process.SYSTEM_UID, true); + + assertTrue(latch.await(500, TimeUnit.MILLISECONDS)); + assertEquals(AUTOMATIC_RULE_STATUS_ACTIVATED, actualStatus[0]); + } + + @Test + public void testUpdateAutomaticRule_deactivatedByUser_triggersBroadcast() throws Exception { + mSetFlagsRule.enableFlags(Flags.FLAG_MODES_API); + setupZenConfig(); + + // Add a new automatic zen rule that's enabled + AutomaticZenRule zenRule = new AutomaticZenRule("name", + null, + new ComponentName(CUSTOM_PKG_NAME, "ScheduleConditionProvider"), + ZenModeConfig.toScheduleConditionId(new ScheduleInfo()), + null, + NotificationManager.INTERRUPTION_FILTER_PRIORITY, true); + final String createdId = mZenModeHelper.addAutomaticZenRule(mContext.getPackageName(), + zenRule, "test", Process.SYSTEM_UID, true); + + CountDownLatch latch = new CountDownLatch(1); + final int[] actualStatus = new int[2]; + ZenModeHelper.Callback callback = new ZenModeHelper.Callback() { + int i = 0; + @Override + void onAutomaticRuleStatusChanged(int userId, String pkg, String id, int status) { + if (Objects.equals(createdId, id)) { + actualStatus[i++] = status; + latch.countDown(); + } + } + }; + mZenModeHelper.addCallback(callback); + + mZenModeHelper.setAutomaticZenRuleState(createdId, + new Condition(zenRule.getConditionId(), "", STATE_TRUE), + Process.SYSTEM_UID, true); + + mZenModeHelper.setManualZenMode(Global.ZEN_MODE_OFF, null, null, "", + Process.SYSTEM_UID, true); + + assertTrue(latch.await(500, TimeUnit.MILLISECONDS)); + assertEquals(AUTOMATIC_RULE_STATUS_DEACTIVATED, actualStatus[1]); + } + + @Test + public void testUpdateAutomaticRule_deactivatedByApp_triggersBroadcast() throws Exception { + mSetFlagsRule.enableFlags(Flags.FLAG_MODES_API); + setupZenConfig(); + + // Add a new automatic zen rule that's enabled + AutomaticZenRule zenRule = new AutomaticZenRule("name", + null, + new ComponentName(CUSTOM_PKG_NAME, "ScheduleConditionProvider"), + ZenModeConfig.toScheduleConditionId(new ScheduleInfo()), + null, + NotificationManager.INTERRUPTION_FILTER_PRIORITY, true); + final String createdId = mZenModeHelper.addAutomaticZenRule(mContext.getPackageName(), + zenRule, "test", Process.SYSTEM_UID, true); + + CountDownLatch latch = new CountDownLatch(1); + final int[] actualStatus = new int[2]; + ZenModeHelper.Callback callback = new ZenModeHelper.Callback() { + int i = 0; + @Override + void onAutomaticRuleStatusChanged(int userId, String pkg, String id, int status) { + if (Objects.equals(createdId, id)) { + actualStatus[i++] = status; + latch.countDown(); + } + } + }; + mZenModeHelper.addCallback(callback); + + mZenModeHelper.setAutomaticZenRuleState(createdId, + new Condition(zenRule.getConditionId(), "", STATE_TRUE), + Process.SYSTEM_UID, true); + + mZenModeHelper.setAutomaticZenRuleState(createdId, + new Condition(zenRule.getConditionId(), "", STATE_FALSE), + Process.SYSTEM_UID, true); + + assertTrue(latch.await(500, TimeUnit.MILLISECONDS)); + assertEquals(AUTOMATIC_RULE_STATUS_DEACTIVATED, actualStatus[1]); + } + + @Test + public void testUpdateAutomaticRule_unsnoozes() throws IllegalArgumentException { + setupZenConfig(); + + // Add a new automatic zen rule that's enabled + AutomaticZenRule zenRule = new AutomaticZenRule("name", + null, + new ComponentName(CUSTOM_PKG_NAME, "ScheduleConditionProvider"), + ZenModeConfig.toScheduleConditionId(new ScheduleInfo()), + null, + NotificationManager.INTERRUPTION_FILTER_PRIORITY, true); + final String createdId = mZenModeHelper.addAutomaticZenRule(mContext.getPackageName(), + zenRule, "test", Process.SYSTEM_UID, true); + + // Event 1: Mimic the rule coming on automatically by setting the Condition to STATE_TRUE + mZenModeHelper.setAutomaticZenRuleState(createdId, + new Condition(zenRule.getConditionId(), "", STATE_TRUE), + Process.SYSTEM_UID, true); + + // Event 2: Snooze rule by turning off DND + mZenModeHelper.setManualZenMode(Global.ZEN_MODE_OFF, null, null, "", + Process.SYSTEM_UID, true); + + // Event 3: "User" turns off the automatic rule (sets it to not enabled) + zenRule.setEnabled(false); + mZenModeHelper.updateAutomaticZenRule(createdId, zenRule, "", Process.SYSTEM_UID, true); + + assertEquals(false, mZenModeHelper.mConfig.automaticRules.get(createdId).snoozing); + } + private void setupZenConfig() { mZenModeHelper.mZenMode = Global.ZEN_MODE_OFF; mZenModeHelper.mConfig.allowAlarms = false; diff --git a/services/tests/wmtests/src/com/android/server/wm/DisplayPolicyTests.java b/services/tests/wmtests/src/com/android/server/wm/DisplayPolicyTests.java index bf86563e3d86..c782d3e90e96 100644 --- a/services/tests/wmtests/src/com/android/server/wm/DisplayPolicyTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/DisplayPolicyTests.java @@ -384,33 +384,36 @@ public class DisplayPolicyTests extends WindowTestsBase { assertNotEquals(prevScreenHeightDp, mDisplayContent.getConfiguration().screenHeightDp); assertFalse(navbar.providesDisplayDecorInsets() && displayPolicy.updateDecorInsetsInfo()); - navbar.removeIfPossible(); - assertEquals(0, displayPolicy.getDecorInsetsInfo(di.rotation, di.logicalWidth, - di.logicalHeight).mNonDecorInsets.bottom); - final WindowState statusBar = createStatusBarWithProvidedInsets(mDisplayContent); - assertTrue(statusBar.providesDisplayDecorInsets() - && displayPolicy.updateDecorInsetsInfo()); - assertEquals(STATUS_BAR_HEIGHT, displayPolicy.getDecorInsetsInfo(di.rotation, - di.logicalWidth, di.logicalHeight).mConfigInsets.top); + if (mWm.mConfigTypes == WindowInsets.Type.navigationBars()) { + assertFalse(statusBar.providesDisplayDecorInsets() + && displayPolicy.updateDecorInsetsInfo()); + assertEquals(0, displayPolicy.getDecorInsetsInfo(di.rotation, + di.logicalWidth, di.logicalHeight).mConfigInsets.top); + } else { + assertTrue(statusBar.providesDisplayDecorInsets() + && displayPolicy.updateDecorInsetsInfo()); + assertEquals(STATUS_BAR_HEIGHT, displayPolicy.getDecorInsetsInfo(di.rotation, + di.logicalWidth, di.logicalHeight).mConfigInsets.top); + } // Add a window that provides the same insets in current rotation. But it specifies // different insets in other rotations. - final WindowState bar2 = createWindow(null, statusBar.mAttrs.type, "bar2"); + final WindowState bar2 = createWindow(null, navbar.mAttrs.type, "bar2"); bar2.mAttrs.providedInsets = new InsetsFrameProvider[] { - new InsetsFrameProvider(bar2, 0, WindowInsets.Type.statusBars()) - .setInsetsSize(Insets.of(0, STATUS_BAR_HEIGHT, 0, 0)) + new InsetsFrameProvider(bar2, 0, WindowInsets.Type.navigationBars()) + .setInsetsSize(Insets.of(0, 0, 0, NAV_BAR_HEIGHT)) }; bar2.mAttrs.setFitInsetsTypes(0); bar2.mAttrs.paramsForRotation = new WindowManager.LayoutParams[4]; - final int doubleHeightFor90 = STATUS_BAR_HEIGHT * 2; + final int doubleHeightFor90 = NAV_BAR_HEIGHT * 2; for (int i = ROTATION_0; i <= Surface.ROTATION_270; i++) { final WindowManager.LayoutParams params = new WindowManager.LayoutParams(); params.setFitInsetsTypes(0); if (i == Surface.ROTATION_90) { params.providedInsets = new InsetsFrameProvider[] { - new InsetsFrameProvider(bar2, 0, WindowInsets.Type.statusBars()) - .setInsetsSize(Insets.of(0, doubleHeightFor90, 0, 0)) + new InsetsFrameProvider(bar2, 0, WindowInsets.Type.navigationBars()) + .setInsetsSize(Insets.of(0, 0, 0, doubleHeightFor90)) }; } else { params.providedInsets = bar2.mAttrs.providedInsets; @@ -422,7 +425,12 @@ public class DisplayPolicyTests extends WindowTestsBase { assertFalse(displayPolicy.updateDecorInsetsInfo()); // The insets in other rotations should be still updated. assertEquals(doubleHeightFor90, displayPolicy.getDecorInsetsInfo(Surface.ROTATION_90, - di.logicalHeight, di.logicalWidth).mConfigInsets.top); + di.logicalHeight, di.logicalWidth).mConfigInsets.bottom); + + navbar.removeIfPossible(); + bar2.removeIfPossible(); + assertEquals(0, displayPolicy.getDecorInsetsInfo(di.rotation, di.logicalWidth, + di.logicalHeight).mNonDecorInsets.bottom); } @SetupWindows(addWindows = { W_NAVIGATION_BAR, W_INPUT_METHOD }) diff --git a/services/tests/wmtests/src/com/android/server/wm/RefreshRatePolicyTest.java b/services/tests/wmtests/src/com/android/server/wm/RefreshRatePolicyTest.java index c4d03bebc751..49a888689e60 100644 --- a/services/tests/wmtests/src/com/android/server/wm/RefreshRatePolicyTest.java +++ b/services/tests/wmtests/src/com/android/server/wm/RefreshRatePolicyTest.java @@ -20,6 +20,7 @@ import static android.view.SurfaceControl.RefreshRateRange.FLOAT_TOLERANCE; import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION; import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_APP_TRANSITION; +import static com.android.window.flags.Flags.explicitRefreshRateHints; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -282,6 +283,9 @@ public class RefreshRatePolicyTest extends WindowTestsBase { assertEquals(0, mPolicy.getPreferredMinRefreshRate(overrideWindow), FLOAT_TOLERANCE); assertEquals(0, mPolicy.getPreferredMaxRefreshRate(overrideWindow), FLOAT_TOLERANCE); + if (explicitRefreshRateHints()) { + return; + } overrideWindow.mActivityRecord.mSurfaceAnimator.startAnimation( overrideWindow.getPendingTransaction(), mock(AnimationAdapter.class), false /* hidden */, ANIMATION_TYPE_APP_TRANSITION); @@ -320,6 +324,9 @@ public class RefreshRatePolicyTest extends WindowTestsBase { assertEquals(0, mPolicy.getPreferredMinRefreshRate(overrideWindow), FLOAT_TOLERANCE); assertEquals(0, mPolicy.getPreferredMaxRefreshRate(overrideWindow), FLOAT_TOLERANCE); + if (explicitRefreshRateHints()) { + return; + } overrideWindow.mActivityRecord.mSurfaceAnimator.startAnimation( overrideWindow.getPendingTransaction(), mock(AnimationAdapter.class), false /* hidden */, ANIMATION_TYPE_APP_TRANSITION); @@ -342,6 +349,9 @@ public class RefreshRatePolicyTest extends WindowTestsBase { assertEquals(0, mPolicy.getPreferredMinRefreshRate(window), FLOAT_TOLERANCE); assertEquals(0, mPolicy.getPreferredMaxRefreshRate(window), FLOAT_TOLERANCE); + if (explicitRefreshRateHints()) { + return; + } window.mActivityRecord.mSurfaceAnimator.startAnimation( window.getPendingTransaction(), mock(AnimationAdapter.class), false /* hidden */, ANIMATION_TYPE_APP_TRANSITION); diff --git a/services/tests/wmtests/src/com/android/server/wm/SystemServicesTestRule.java b/services/tests/wmtests/src/com/android/server/wm/SystemServicesTestRule.java index 03188f813555..9af5ba57d6c9 100644 --- a/services/tests/wmtests/src/com/android/server/wm/SystemServicesTestRule.java +++ b/services/tests/wmtests/src/com/android/server/wm/SystemServicesTestRule.java @@ -376,6 +376,9 @@ public class SystemServicesTestRule implements TestRule { mWmService.onInitReady(); mAtmService.setWindowManager(mWmService); + // Avoid real display events interfering with the test. Also avoid leaking registration. + mContext.getSystemService(DisplayManager.class) + .unregisterDisplayListener(mAtmService.mRootWindowContainer); mWmService.mDisplayEnabled = true; mWmService.mDisplayReady = true; mAtmService.getTransitionController().mIsWaitingForDisplayEnabled = false; @@ -413,12 +416,6 @@ public class SystemServicesTestRule implements TestRule { } } - if (mAtmService != null) { - // Unregister display listener from root to avoid issues with subsequent tests. - mContext.getSystemService(DisplayManager.class) - .unregisterDisplayListener(mAtmService.mRootWindowContainer); - } - for (int i = mDeviceConfigListeners.size() - 1; i >= 0; i--) { DeviceConfig.removeOnPropertiesChangedListener(mDeviceConfigListeners.get(i)); } diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskFragmentTest.java b/services/tests/wmtests/src/com/android/server/wm/TaskFragmentTest.java index 7822071f3933..ec068bed1a3b 100644 --- a/services/tests/wmtests/src/com/android/server/wm/TaskFragmentTest.java +++ b/services/tests/wmtests/src/com/android/server/wm/TaskFragmentTest.java @@ -27,12 +27,8 @@ import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED; import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION; import static com.android.dx.mockito.inline.extended.ExtendedMockito.any; -import static com.android.dx.mockito.inline.extended.ExtendedMockito.anyFloat; -import static com.android.dx.mockito.inline.extended.ExtendedMockito.anyInt; -import static com.android.dx.mockito.inline.extended.ExtendedMockito.clearInvocations; import static com.android.dx.mockito.inline.extended.ExtendedMockito.doNothing; import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn; -import static com.android.dx.mockito.inline.extended.ExtendedMockito.eq; import static com.android.dx.mockito.inline.extended.ExtendedMockito.never; import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn; import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify; @@ -130,17 +126,6 @@ public class TaskFragmentTest extends WindowTestsBase { } @Test - public void testUpdateOrganizedTaskFragmentSurface_noSurfaceUpdateWhenOrganizedBySystem() { - clearInvocations(mTransaction); - mTaskFragment.mIsSurfaceManagedBySystemOrganizer = true; - - mTaskFragment.updateOrganizedTaskFragmentSurface(); - - verify(mTransaction, never()).setPosition(eq(mLeash), anyFloat(), anyFloat()); - verify(mTransaction, never()).setWindowCrop(eq(mLeash), anyInt(), anyInt()); - } - - @Test public void testShouldStartChangeTransition_relativePositionChange() { final Task task = createTask(mDisplayContent, WINDOWING_MODE_MULTI_WINDOW, ACTIVITY_TYPE_STANDARD); diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotPersisterLoaderTest.java b/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotPersisterLoaderTest.java index 8fecbb9d4dec..4b54e4464ca7 100644 --- a/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotPersisterLoaderTest.java +++ b/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotPersisterLoaderTest.java @@ -132,6 +132,10 @@ public class TaskSnapshotPersisterLoaderTest extends TaskSnapshotPersisterTestBa mPersister.persistSnapshot(2, mTestUserId, createSnapshot()); mPersister.persistSnapshot(3, mTestUserId, createSnapshot()); mPersister.persistSnapshot(4, mTestUserId, createSnapshot()); + // Verify there should only keep the latest request when received a duplicated id. + mPersister.persistSnapshot(4, mTestUserId, createSnapshot()); + // Expected 3: One remove obsolete request, two persist request. + assertEquals(3, mSnapshotPersistQueue.peekQueueSize()); mSnapshotPersistQueue.setPaused(false); mSnapshotPersistQueue.waitForQueueEmpty(); diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskTests.java b/services/tests/wmtests/src/com/android/server/wm/TaskTests.java index 898b7514a6aa..013be2587d76 100644 --- a/services/tests/wmtests/src/com/android/server/wm/TaskTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/TaskTests.java @@ -1583,6 +1583,35 @@ public class TaskTests extends WindowTestsBase { task.getTopChild()); } + @Test + public void testSetDragResizing() { + final Task task = createTask(mDisplayContent); + + // Allowed for freeform. + task.setWindowingMode(WINDOWING_MODE_FREEFORM); + + task.setDragResizing(true); + assertTrue(task.isDragResizing()); + task.setDragResizing(false); + assertFalse(task.isDragResizing()); + + // Allowed for multi-window. + task.setWindowingMode(WINDOWING_MODE_MULTI_WINDOW); + + task.setDragResizing(true); + assertTrue(task.isDragResizing()); + task.setDragResizing(false); + assertFalse(task.isDragResizing()); + + // Disallowed for fullscreen. + task.setWindowingMode(WINDOWING_MODE_FULLSCREEN); + + task.setDragResizing(true); + assertFalse(task.isDragResizing()); + task.setDragResizing(false); + assertFalse(task.isDragResizing()); + } + private Task getTestTask() { return new TaskBuilder(mSupervisor).setCreateActivity(true).build(); } 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 2689e9d14c00..a83caa4a4e95 100644 --- a/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java @@ -2454,6 +2454,7 @@ public class TransitionTests extends WindowTestsBase { spyOn(perfHinter); doAnswer(invocation -> { session[0] = (SystemPerformanceHinter.HighPerfSession) invocation.callRealMethod(); + spyOn(session[0]); return session[0]; }).when(perfHinter).createSession(anyInt(), anyInt(), anyString()); } diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java index 4250bd14da52..baeff06a5836 100644 --- a/telephony/java/android/telephony/CarrierConfigManager.java +++ b/telephony/java/android/telephony/CarrierConfigManager.java @@ -9471,6 +9471,22 @@ public class CarrierConfigManager { "satellite_attach_supported_bool"; /** + * The carrier-enabled satellite connection hysteresis time in seconds to determine whether to + * recommend Dialer to prompt users to use satellite emergency messaging. + * <p> + * A timer is started when there is an ongoing emergency call, and the IMS is not registered, + * and cellular service is not available, and the device was connected to a satellite network + * within this time in the past. When the timer expires, Telephony will send the event + * {@link TelephonyManager#EVENT_DISPLAY_EMERGENCY_MESSAGE} to Dialer, which will then prompt + * users to switch to using satellite emergency messaging. + * <p> + * The default value is 300 seconds. + */ + @FlaggedApi(Flags.FLAG_CARRIER_ENABLED_SATELLITE_FLAG) + public static final String KEY_SATELLITE_CONNECTION_HYSTERESIS_SEC_INT = + "satellite_connection_hysteresis_sec_int"; + + /** * Indicating whether DUN APN should be disabled when the device is roaming. In that case, * the default APN (i.e. internet) will be used for tethering. * @@ -10500,6 +10516,7 @@ public class CarrierConfigManager { KEY_CARRIER_SUPPORTED_SATELLITE_SERVICES_PER_PROVIDER_BUNDLE, PersistableBundle.EMPTY); sDefaults.putBoolean(KEY_SATELLITE_ATTACH_SUPPORTED_BOOL, false); + sDefaults.putInt(KEY_SATELLITE_CONNECTION_HYSTERESIS_SEC_INT, 300); sDefaults.putBoolean(KEY_DISABLE_DUN_APN_WHILE_ROAMING_WITH_PRESET_APN_BOOL, false); sDefaults.putString(KEY_DEFAULT_PREFERRED_APN_NAME_STRING, ""); sDefaults.putBoolean(KEY_SUPPORTS_CALL_COMPOSER_BOOL, false); diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index e9ea5a7c2ce2..1c5761dcebe0 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -1192,14 +1192,58 @@ public class TelephonyManager { /** * Event reported from the Telephony stack to indicate that the {@link Connection} is not * able to find any network and likely will not get connected. Upon receiving this event, - * the dialer app should show satellite SOS button if satellite is provisioned. + * the dialer app should start the app included in the extras bundle of this event if satellite + * is provisioned. * <p> * The dialer app receives this event via * {@link Call.Callback#onConnectionEvent(Call, String, Bundle)}. + * <p> + * The {@link Bundle} parameter is expected to include the following extras: + * <ul> + * <li>{@link #EXTRA_EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE} - the recommending handover + * type.</li> + * <li>{@link #EXTRA_EMERGENCY_CALL_TO_SATELLITE_LAUNCH_INTENT} - the {@link PendingIntent} + * which will be launched by the Dialer app when receiving this connection event.</li> + * </ul> + * <p> + * If the device is connected to satellite via carrier within the hysteresis time defined by + * the carrier config + * {@link CarrierConfigManager#KEY_SATELLITE_CONNECTION_HYSTERESIS_SEC_INT}, the component of + * the {@link #EXTRA_EMERGENCY_CALL_TO_SATELLITE_LAUNCH_INTENT} will be set to the default SMS + * app. + * <p> + * Otherwise, if the overlay config {@code config_oem_enabled_satellite_handover_app} is + * present, the app defined by this config will be used as the component of the + * {@link #EXTRA_EMERGENCY_CALL_TO_SATELLITE_LAUNCH_INTENT}. If this overlay config is empty, + * {@link #EXTRA_EMERGENCY_CALL_TO_SATELLITE_LAUNCH_INTENT} will not be included in the event + * {@link #EVENT_DISPLAY_EMERGENCY_MESSAGE}. + */ + @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG) + public static final String EVENT_DISPLAY_EMERGENCY_MESSAGE = + "android.telephony.event.DISPLAY_EMERGENCY_MESSAGE"; + + /** + * Integer extra key used with {@link #EVENT_DISPLAY_EMERGENCY_MESSAGE} which indicates + * the type of handover from emergency call to satellite messaging. + * <p> + * Will be either + * android.telephony.satellite.SatelliteManager#EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE_SOS + * or + * android.telephony.satellite.SatelliteManager#EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE_T911 + * <p> + * Set in the extras for the {@link #EVENT_DISPLAY_EMERGENCY_MESSAGE} connection event. + */ + @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG) + public static final String EXTRA_EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE = + "android.telephony.extra.EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE"; + + /** + * Extra key used with the {@link #EVENT_DISPLAY_EMERGENCY_MESSAGE} for a {@link PendingIntent} + * which will be launched by the Dialer app. */ @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG) - public static final String EVENT_DISPLAY_SOS_MESSAGE = - "android.telephony.event.DISPLAY_SOS_MESSAGE"; + public static final String EXTRA_EMERGENCY_CALL_TO_SATELLITE_LAUNCH_INTENT = + "android.telephony.extra.EMERGENCY_CALL_TO_SATELLITE_LAUNCH_INTENT"; /** * Integer extra key used with {@link #EVENT_SUPPLEMENTARY_SERVICE_NOTIFICATION} which indicates diff --git a/telephony/java/android/telephony/data/ApnSetting.java b/telephony/java/android/telephony/data/ApnSetting.java index 11cbcb1c149d..4b1a72695e50 100644 --- a/telephony/java/android/telephony/data/ApnSetting.java +++ b/telephony/java/android/telephony/data/ApnSetting.java @@ -568,6 +568,7 @@ public class ApnSetting implements Parcelable { private final int mSkip464Xlat; private final boolean mAlwaysOn; private final @InfrastructureBitmask int mInfrastructureBitmask; + private final boolean mEsimBootstrapProvisioning; /** * Returns the default MTU (Maximum Transmission Unit) size in bytes of the IPv4 routes brought @@ -979,6 +980,18 @@ public class ApnSetting implements Parcelable { return mInfrastructureBitmask; } + /** + * Returns esim bootstrap provisioning flag for which the APN can be used on. For example, + * some APNs are only allowed to bring up network, when the device esim bootstrap provisioning + * is being activated. + * + * {@code true} if the APN is used for eSIM bootstrap provisioning, {@code false} otherwise. + * @hide + */ + public boolean isEsimBootstrapProvisioning() { + return mEsimBootstrapProvisioning; + } + private ApnSetting(Builder builder) { this.mEntryName = builder.mEntryName; this.mApnName = builder.mApnName; @@ -1016,6 +1029,7 @@ public class ApnSetting implements Parcelable { this.mSkip464Xlat = builder.mSkip464Xlat; this.mAlwaysOn = builder.mAlwaysOn; this.mInfrastructureBitmask = builder.mInfrastructureBitmask; + this.mEsimBootstrapProvisioning = builder.mEsimBootstrapProvisioning; } /** @@ -1097,6 +1111,8 @@ public class ApnSetting implements Parcelable { .setAlwaysOn(cursor.getInt(cursor.getColumnIndexOrThrow(Carriers.ALWAYS_ON)) == 1) .setInfrastructureBitmask(cursor.getInt(cursor.getColumnIndexOrThrow( Telephony.Carriers.INFRASTRUCTURE_BITMASK))) + .setEsimBootstrapProvisioning(cursor.getInt( + cursor.getColumnIndexOrThrow(Carriers.ESIM_BOOTSTRAP_PROVISIONING)) == 1) .buildWithoutCheck(); } @@ -1137,6 +1153,7 @@ public class ApnSetting implements Parcelable { .setSkip464Xlat(apn.mSkip464Xlat) .setAlwaysOn(apn.mAlwaysOn) .setInfrastructureBitmask(apn.mInfrastructureBitmask) + .setEsimBootstrapProvisioning(apn.mEsimBootstrapProvisioning) .buildWithoutCheck(); } @@ -1184,6 +1201,7 @@ public class ApnSetting implements Parcelable { sb.append(", ").append(mAlwaysOn); sb.append(", ").append(mInfrastructureBitmask); sb.append(", ").append(Objects.hash(mUser, mPassword)); + sb.append(", ").append(mEsimBootstrapProvisioning); return sb.toString(); } @@ -1247,7 +1265,7 @@ public class ApnSetting implements Parcelable { mProtocol, mRoamingProtocol, mMtuV4, mMtuV6, mCarrierEnabled, mNetworkTypeBitmask, mLingeringNetworkTypeBitmask, mProfileId, mPersistent, mMaxConns, mWaitTime, mMaxConnsTime, mMvnoType, mMvnoMatchData, mApnSetId, mCarrierId, mSkip464Xlat, - mAlwaysOn, mInfrastructureBitmask); + mAlwaysOn, mInfrastructureBitmask, mEsimBootstrapProvisioning); } @Override @@ -1289,7 +1307,8 @@ public class ApnSetting implements Parcelable { && mCarrierId == other.mCarrierId && mSkip464Xlat == other.mSkip464Xlat && mAlwaysOn == other.mAlwaysOn - && mInfrastructureBitmask == other.mInfrastructureBitmask; + && mInfrastructureBitmask == other.mInfrastructureBitmask + && mEsimBootstrapProvisioning == other.mEsimBootstrapProvisioning; } /** @@ -1340,7 +1359,8 @@ public class ApnSetting implements Parcelable { && Objects.equals(mCarrierId, other.mCarrierId) && Objects.equals(mSkip464Xlat, other.mSkip464Xlat) && Objects.equals(mAlwaysOn, other.mAlwaysOn) - && Objects.equals(mInfrastructureBitmask, other.mInfrastructureBitmask); + && Objects.equals(mInfrastructureBitmask, other.mInfrastructureBitmask) + && Objects.equals(mEsimBootstrapProvisioning, other.mEsimBootstrapProvisioning); } /** @@ -1378,7 +1398,9 @@ public class ApnSetting implements Parcelable { && Objects.equals(this.mCarrierId, other.mCarrierId) && Objects.equals(this.mSkip464Xlat, other.mSkip464Xlat) && Objects.equals(this.mAlwaysOn, other.mAlwaysOn) - && Objects.equals(this.mInfrastructureBitmask, other.mInfrastructureBitmask); + && Objects.equals(this.mInfrastructureBitmask, other.mInfrastructureBitmask) + && Objects.equals(this.mEsimBootstrapProvisioning, + other.mEsimBootstrapProvisioning); } // Equal or one is null. @@ -1451,6 +1473,7 @@ public class ApnSetting implements Parcelable { apnValue.put(Telephony.Carriers.SKIP_464XLAT, mSkip464Xlat); apnValue.put(Telephony.Carriers.ALWAYS_ON, mAlwaysOn); apnValue.put(Telephony.Carriers.INFRASTRUCTURE_BITMASK, mInfrastructureBitmask); + apnValue.put(Telephony.Carriers.ESIM_BOOTSTRAP_PROVISIONING, mEsimBootstrapProvisioning); return apnValue; } @@ -1724,6 +1747,7 @@ public class ApnSetting implements Parcelable { dest.writeInt(mSkip464Xlat); dest.writeBoolean(mAlwaysOn); dest.writeInt(mInfrastructureBitmask); + dest.writeBoolean(mEsimBootstrapProvisioning); } private static ApnSetting readFromParcel(Parcel in) { @@ -1760,6 +1784,7 @@ public class ApnSetting implements Parcelable { .setSkip464Xlat(in.readInt()) .setAlwaysOn(in.readBoolean()) .setInfrastructureBitmask(in.readInt()) + .setEsimBootstrapProvisioning(in.readBoolean()) .buildWithoutCheck(); } @@ -1842,6 +1867,7 @@ public class ApnSetting implements Parcelable { private int mSkip464Xlat = Carriers.SKIP_464XLAT_DEFAULT; private boolean mAlwaysOn; private int mInfrastructureBitmask = INFRASTRUCTURE_CELLULAR; + private boolean mEsimBootstrapProvisioning; /** * Default constructor for Builder. @@ -2280,6 +2306,19 @@ public class ApnSetting implements Parcelable { } /** + * Sets esim bootstrap provisioning flag + * + * @param esimBootstrapProvisioning {@code true} if the APN is used for eSIM bootstrap + * provisioning, {@code false} otherwise. + * @hide + */ + @NonNull + public Builder setEsimBootstrapProvisioning(boolean esimBootstrapProvisioning) { + this.mEsimBootstrapProvisioning = esimBootstrapProvisioning; + return this; + } + + /** * Builds {@link ApnSetting} from this builder. * * @return {@code null} if {@link #setApnName(String)} or {@link #setEntryName(String)} diff --git a/telephony/java/android/telephony/satellite/SatelliteManager.java b/telephony/java/android/telephony/satellite/SatelliteManager.java index 21d93bd3077f..f18cbeafe752 100644 --- a/telephony/java/android/telephony/satellite/SatelliteManager.java +++ b/telephony/java/android/telephony/satellite/SatelliteManager.java @@ -445,6 +445,19 @@ public final class SatelliteManager { public @interface DisplayMode {} /** + * The emergency call is handed over to oem-enabled satellite SOS messaging. SOS messages are + * sent to SOS providers, which will then forward the messages to emergency providers. + */ + @FlaggedApi(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG) + public static final int EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE_SOS = 1; + /** + * The emergency call is handed over to carrier-enabled satellite T911 messaging. T911 messages + * are sent directly to local emergency providers. + */ + @FlaggedApi(Flags.FLAG_CARRIER_ENABLED_SATELLITE_FLAG) + public static final int EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE_T911 = 2; + + /** * Request to enable or disable the satellite modem and demo mode. * If satellite modem and cellular modem cannot work concurrently, * then this will disable the cellular modem if satellite modem is enabled, diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl index 58e702688bd3..c212e3575276 100644 --- a/telephony/java/com/android/internal/telephony/ITelephony.aidl +++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl @@ -3029,6 +3029,21 @@ interface ITelephony { boolean setSatelliteDeviceAlignedTimeoutDuration(long timeoutMillis); /** + * This API can be used in only testing to override connectivity status in monitoring emergency + * calls and sending EVENT_DISPLAY_EMERGENCY_MESSAGE to Dialer. + * + * @param handoverType The type of handover from emergency call to satellite messaging. Use one + * of the following values to enable the override: + * 0 - EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE_SOS + * 1 - EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE_T911 + * To disable the override, use -1 for handoverType. + * @param delaySeconds The event EVENT_DISPLAY_EMERGENCY_MESSAGE will be sent to Dialer + * delaySeconds after the emergency call starts. + * @return {@code true} if the handover type is set successfully, {@code false} otherwise. + */ + boolean setEmergencyCallToSatelliteHandoverType(int handoverType, int delaySeconds); + + /** * Test method to confirm the file contents are not altered. */ @JavaPassthrough(annotation="@android.annotation.RequiresPermission(" diff --git a/test-mock/api/current.txt b/test-mock/api/current.txt index f61cce666cca..daaab3314679 100644 --- a/test-mock/api/current.txt +++ b/test-mock/api/current.txt @@ -156,6 +156,7 @@ package android.test.mock { method @Deprecated public int getInt(int); method @Deprecated public long getLong(int); method @Deprecated public android.net.Uri getNotificationUri(); + method @Deprecated public java.util.List<android.net.Uri> getNotificationUris(); method @Deprecated public int getPosition(); method @Deprecated public short getShort(int); method @Deprecated public String getString(int); @@ -179,6 +180,7 @@ package android.test.mock { method @Deprecated public android.os.Bundle respond(android.os.Bundle); method @Deprecated public void setExtras(android.os.Bundle); method @Deprecated public void setNotificationUri(android.content.ContentResolver, android.net.Uri); + method @Deprecated public void setNotificationUris(android.content.ContentResolver, java.util.List<android.net.Uri>); method @Deprecated public void unregisterContentObserver(android.database.ContentObserver); method @Deprecated public void unregisterDataSetObserver(android.database.DataSetObserver); } diff --git a/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/pip/SecondaryActivityEnterPipTest.kt b/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/pip/SecondaryActivityEnterPipTest.kt index 790da34b1b08..12a57d52491a 100644 --- a/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/pip/SecondaryActivityEnterPipTest.kt +++ b/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/pip/SecondaryActivityEnterPipTest.kt @@ -18,6 +18,7 @@ package com.android.server.wm.flicker.activityembedding.pip import android.platform.test.annotations.Presubmit import android.tools.common.datatypes.Rect +import android.tools.common.flicker.subject.layers.LayersTraceSubject import android.tools.common.traces.component.ComponentNameMatcher import android.tools.common.traces.component.ComponentNameMatcher.Companion.TRANSITION_SNAPSHOT import android.tools.device.flicker.junit.FlickerParametersRunnerFactory @@ -149,8 +150,12 @@ class SecondaryActivityEnterPipTest(flicker: LegacyFlickerTest) : ComponentNameMatcher.PIP_CONTENT_OVERLAY.layerMatchesAnyOf(it) && it.isVisible } pipLayerList.zipWithNext { previous, current -> - // TODO(b/290987990): Add checks for visibleRegion. - current.screenBounds.isToTheRightBottom(previous.screenBounds.region, 3) + if (startDisplayBounds.width > startDisplayBounds.height) { + // Only verify when the display is landscape, because otherwise the final pip + // window can be to the left of the original secondary activity. + current.screenBounds.isToTheRightBottom(previous.screenBounds.region, 3) + } + current.screenBounds.overlaps(previous.screenBounds.region) current.screenBounds.notBiggerThan(previous.screenBounds.region) } } @@ -161,6 +166,61 @@ class SecondaryActivityEnterPipTest(flicker: LegacyFlickerTest) : } } + /** The secondary layer should never jump to the left. */ + @Presubmit + @Test + fun secondaryLayerNotJumpToLeft() { + flicker.assertLayers { + invoke("secondaryLayerNotJumpToLeft") { + val secondaryVisibleRegion = + it.visibleRegion(ActivityEmbeddingAppHelper.SECONDARY_ACTIVITY_COMPONENT) + if (secondaryVisibleRegion.region.isNotEmpty) { + check { "left" } + .that(secondaryVisibleRegion.region.bounds.left) + .isGreater(0) + } + } + } + } + + /** + * The pip overlay layer should cover exactly the secondary activity layer when both are + * visible. + */ + @Presubmit + @Test + fun pipContentOverlayLayerCoversExactlySecondaryLayer() { + flicker.assertLayers { + isInvisible(ComponentNameMatcher.PIP_CONTENT_OVERLAY) + .then() + .isVisible(ComponentNameMatcher.PIP_CONTENT_OVERLAY) + .isVisible(ActivityEmbeddingAppHelper.SECONDARY_ACTIVITY_COMPONENT) + .invoke("pipContentOverlayLayerCoversExactlySecondaryLayer") { + val overlayVisibleRegion = + it.visibleRegion(ComponentNameMatcher.PIP_CONTENT_OVERLAY) + val secondaryVisibleRegion = + it.visibleRegion(ActivityEmbeddingAppHelper.SECONDARY_ACTIVITY_COMPONENT) + overlayVisibleRegion.coversExactly(secondaryVisibleRegion.region) + } + .then() + .isInvisible(ComponentNameMatcher.PIP_CONTENT_OVERLAY) + .isVisible(ActivityEmbeddingAppHelper.SECONDARY_ACTIVITY_COMPONENT) + } + } + + @Presubmit + @Test + override fun visibleLayersShownMoreThanOneConsecutiveEntry() { + // Expected for the main activity to become invisible for 1-2 frames because the snapshot + // covers it. + flicker.assertLayers { + visibleLayersShownMoreThanOneConsecutiveEntry( + LayersTraceSubject.VISIBLE_FOR_MORE_THAN_ONE_ENTRY_IGNORE_LAYERS + + listOf(ActivityEmbeddingAppHelper.MAIN_ACTIVITY_COMPONENT) + ) + } + } + companion object { /** {@inheritDoc} */ private var startDisplayBounds = Rect.EMPTY diff --git a/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromLockscreenNotificationColdTest.kt b/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromLockscreenNotificationColdTest.kt index 6819a38c9067..620502e521c4 100644 --- a/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromLockscreenNotificationColdTest.kt +++ b/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromLockscreenNotificationColdTest.kt @@ -25,6 +25,7 @@ import android.tools.device.flicker.junit.FlickerParametersRunnerFactory import android.tools.device.flicker.legacy.FlickerBuilder import android.tools.device.flicker.legacy.LegacyFlickerTest import android.tools.device.flicker.legacy.LegacyFlickerTestFactory +import android.tools.device.helpers.wakeUpAndGoToHomeScreen import androidx.test.filters.RequiresDevice import org.junit.ClassRule import org.junit.FixMethodOrder @@ -49,21 +50,23 @@ import org.junit.runners.Parameterized open class OpenAppFromLockscreenNotificationColdTest(flicker: LegacyFlickerTest) : OpenAppFromNotificationColdTest(flicker) { - override val openingNotificationsFromLockScreen = true - override val transition: FlickerBuilder.() -> Unit get() = { - // Needs to run at start of transition, - // so before the transition defined in super.transition - transitions { device.wakeUp() } - - super.transition(this) + transitions { + device.wakeUp() + openAppFromLockNotification() + } // Needs to run at the end of the setup, so after the setup defined in super.transition setup { + device.wakeUpAndGoToHomeScreen() + launchAppAndPostNotification() + clearOverview() device.sleep() wmHelper.StateSyncBuilder().withoutTopVisibleAppWindows().waitForAndVerify() } + + teardown { testApp.exit(wmHelper) } } /** {@inheritDoc} */ diff --git a/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromLockscreenNotificationWarmTest.kt b/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromLockscreenNotificationWarmTest.kt index 972221640363..2a458ef82448 100644 --- a/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromLockscreenNotificationWarmTest.kt +++ b/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromLockscreenNotificationWarmTest.kt @@ -49,21 +49,22 @@ import org.junit.runners.Parameterized class OpenAppFromLockscreenNotificationWarmTest(flicker: LegacyFlickerTest) : OpenAppFromNotificationWarmTest(flicker) { - override val openingNotificationsFromLockScreen = true - override val transition: FlickerBuilder.() -> Unit get() = { - // Needs to run at start of transition, - // so before the transition defined in super.transition - transitions { device.wakeUp() } - - super.transition(this) + transitions { + device.wakeUp() + openAppFromLockNotification() + } // Needs to run at the end of the setup, so after the setup defined in super.transition setup { + launchAppAndPostNotification() + goHome() device.sleep() wmHelper.StateSyncBuilder().withoutTopVisibleAppWindows().waitForAndVerify() } + + teardown { testApp.exit(wmHelper) } } /** diff --git a/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromLockscreenNotificationWithOverlayAppTest.kt b/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromLockscreenNotificationWithOverlayAppTest.kt index ffd81716e728..00aad2783d5d 100644 --- a/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromLockscreenNotificationWithOverlayAppTest.kt +++ b/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromLockscreenNotificationWithOverlayAppTest.kt @@ -51,21 +51,21 @@ class OpenAppFromLockscreenNotificationWithOverlayAppTest(flicker: LegacyFlicker OpenAppFromLockscreenNotificationColdTest(flicker) { private val showWhenLockedApp = ShowWhenLockedAppHelper(instrumentation) - // Although we are technically still locked here, the overlay app means we should open the - // notification shade as if we were unlocked. - override val openingNotificationsFromLockScreen = false - override val transition: FlickerBuilder.() -> Unit get() = { - super.transition(this) - transitions { + device.wakeUp() + // Although we are technically still locked here, the overlay app means we should + // open the + // notification shade as if we were unlocked. + openAppFromNotification() wmHelper.StateSyncBuilder().withFullScreenApp(testApp).waitForAndVerify() } setup { device.wakeUpAndGoToHomeScreen() - + launchAppAndPostNotification() + clearOverview() // Launch an activity that is shown when the device is locked showWhenLockedApp.launchViaIntent(wmHelper) wmHelper.StateSyncBuilder().withFullScreenApp(showWhenLockedApp).waitForAndVerify() @@ -74,7 +74,10 @@ class OpenAppFromLockscreenNotificationWithOverlayAppTest(flicker: LegacyFlicker wmHelper.StateSyncBuilder().withoutTopVisibleAppWindows().waitForAndVerify() } - teardown { showWhenLockedApp.exit(wmHelper) } + teardown { + testApp.exit(wmHelper) + showWhenLockedApp.exit(wmHelper) + } } @Test diff --git a/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromNotificationColdTest.kt b/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromNotificationColdTest.kt index fbdba7b71d0f..f8d78b5ddd1e 100644 --- a/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromNotificationColdTest.kt +++ b/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromNotificationColdTest.kt @@ -23,6 +23,8 @@ import android.tools.device.flicker.junit.FlickerParametersRunnerFactory import android.tools.device.flicker.legacy.FlickerBuilder import android.tools.device.flicker.legacy.LegacyFlickerTest import android.tools.device.flicker.legacy.LegacyFlickerTestFactory +import android.tools.device.helpers.wakeUpAndGoToHomeScreen +import com.android.server.wm.flicker.helpers.setRotation import com.android.server.wm.flicker.statusBarLayerPositionAtEnd import org.junit.FixMethodOrder import org.junit.Ignore @@ -45,16 +47,16 @@ open class OpenAppFromNotificationColdTest(flicker: LegacyFlickerTest) : /** {@inheritDoc} */ override val transition: FlickerBuilder.() -> Unit get() = { - super.transition(this) - setup { - // Close the app that posted the notification to trigger a cold start next time - // it is open - can't just kill it because that would remove the notification. - tapl.setExpectedRotationCheckEnabled(false) - tapl.goHome() - tapl.workspace.switchToOverview() - tapl.overview.dismissAllTasks() + device.wakeUpAndGoToHomeScreen() + this.setRotation(flicker.scenario.startRotation) + launchAppAndPostNotification() + clearOverview() } + + transitions { openAppFromNotification() } + + teardown { testApp.exit(wmHelper) } } @Presubmit @Test override fun appWindowBecomesVisible() = appWindowBecomesVisible_coldStart() diff --git a/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromNotificationWarmTest.kt b/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromNotificationWarmTest.kt index 2aa444e45ea2..5c7ec46d6f04 100644 --- a/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromNotificationWarmTest.kt +++ b/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromNotificationWarmTest.kt @@ -21,6 +21,7 @@ import android.platform.test.annotations.Presubmit import android.tools.common.traces.component.ComponentNameMatcher import android.tools.device.flicker.junit.FlickerParametersRunnerFactory import android.tools.device.flicker.legacy.FlickerBuilder +import android.tools.device.flicker.legacy.FlickerTestData import android.tools.device.flicker.legacy.LegacyFlickerTest import android.tools.device.flicker.legacy.LegacyFlickerTestFactory import android.tools.device.helpers.wakeUpAndGoToHomeScreen @@ -55,63 +56,68 @@ open class OpenAppFromNotificationWarmTest(flicker: LegacyFlickerTest) : OpenAppTransition(flicker) { override val testApp: NotificationAppHelper = NotificationAppHelper(instrumentation) - open val openingNotificationsFromLockScreen = false - /** {@inheritDoc} */ override val transition: FlickerBuilder.() -> Unit get() = { setup { device.wakeUpAndGoToHomeScreen() this.setRotation(flicker.scenario.startRotation) - testApp.launchViaIntent(wmHelper) - wmHelper.StateSyncBuilder().withFullScreenApp(testApp).waitForAndVerify() - testApp.postNotification(wmHelper) - device.pressHome() - wmHelper - .StateSyncBuilder() - .withHomeActivityVisible() - .withWindowSurfaceDisappeared(ComponentNameMatcher.NOTIFICATION_SHADE) - .waitForAndVerify() + launchAppAndPostNotification() + goHome() } - transitions { - var startY = 10 - var endY = 3 * device.displayHeight / 4 - var steps = 25 - if (openingNotificationsFromLockScreen) { - val wm: WindowManager = - instrumentation.context.getSystemService(WindowManager::class.java) - ?: error("Unable to connect to WindowManager service") - val metricInsets = wm.currentWindowMetrics.windowInsets - val insets = - metricInsets.getInsetsIgnoringVisibility( - WindowInsets.Type.statusBars() or WindowInsets.Type.displayCutout() - ) - - startY = insets.top + 100 - endY = device.displayHeight / 2 - steps = 4 - } - - // Swipe down to show the notification shade - val x = device.displayWidth / 2 - device.swipe(x, startY, x, endY, steps) - device.waitForIdle(2000) - instrumentation.uiAutomation.syncInputTransactions() - - // Launch the activity by clicking the notification - val notification = - device.wait(Until.findObject(By.text("Flicker Test Notification")), 2000L) - notification?.click() ?: error("Notification not found") - instrumentation.uiAutomation.syncInputTransactions() - - // Wait for the app to launch - wmHelper.StateSyncBuilder().withFullScreenApp(testApp).waitForAndVerify() - } + transitions { openAppFromNotification() } teardown { testApp.exit(wmHelper) } } + protected fun FlickerTestData.launchAppAndPostNotification() { + testApp.launchViaIntent(wmHelper) + wmHelper.StateSyncBuilder().withFullScreenApp(testApp).waitForAndVerify() + testApp.postNotification(wmHelper) + } + + protected fun FlickerTestData.goHome() { + device.pressHome() + wmHelper + .StateSyncBuilder() + .withHomeActivityVisible() + .withWindowSurfaceDisappeared(ComponentNameMatcher.NOTIFICATION_SHADE) + .waitForAndVerify() + } + protected fun FlickerTestData.openAppFromNotification() { + doOpenAppAndWait(startY = 10, endY = 3 * device.displayHeight / 4, steps = 25) + } + + protected fun FlickerTestData.openAppFromLockNotification() { + val wm: WindowManager = + instrumentation.context.getSystemService(WindowManager::class.java) + ?: error("Unable to connect to WindowManager service") + val metricInsets = wm.currentWindowMetrics.windowInsets + val insets = + metricInsets.getInsetsIgnoringVisibility( + WindowInsets.Type.statusBars() or WindowInsets.Type.displayCutout() + ) + + doOpenAppAndWait(startY = insets.top + 100, endY = device.displayHeight / 2, steps = 4) + } + + protected fun FlickerTestData.doOpenAppAndWait(startY: Int, endY: Int, steps: Int) { + // Swipe down to show the notification shade + val x = device.displayWidth / 2 + device.swipe(x, startY, x, endY, steps) + device.waitForIdle(2000) + instrumentation.uiAutomation.syncInputTransactions() + + // Launch the activity by clicking the notification + val notification = + device.wait(Until.findObject(By.text("Flicker Test Notification")), 2000L) + notification?.click() ?: error("Notification not found") + instrumentation.uiAutomation.syncInputTransactions() + + // Wait for the app to launch + wmHelper.StateSyncBuilder().withFullScreenApp(testApp).waitForAndVerify() + } @Presubmit @Test override fun appWindowBecomesVisible() = appWindowBecomesVisible_warmStart() @Presubmit @Test override fun appLayerBecomesVisible() = appLayerBecomesVisible_warmStart() diff --git a/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppTransition.kt b/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppTransition.kt index 684b4b70f950..4e0e3c04ae5a 100644 --- a/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppTransition.kt +++ b/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppTransition.kt @@ -19,26 +19,22 @@ package com.android.server.wm.flicker.notification import android.platform.test.annotations.Presubmit import android.tools.common.traces.component.ComponentNameMatcher import android.tools.device.apphelpers.StandardAppHelper -import android.tools.device.flicker.legacy.FlickerBuilder import android.tools.device.flicker.legacy.LegacyFlickerTest -import android.tools.device.helpers.wakeUpAndGoToHomeScreen import com.android.server.wm.flicker.BaseTest import com.android.server.wm.flicker.helpers.SimpleAppHelper -import com.android.server.wm.flicker.helpers.setRotation import org.junit.Test /** Base class for app launch tests */ abstract class OpenAppTransition(flicker: LegacyFlickerTest) : BaseTest(flicker) { protected open val testApp: StandardAppHelper = SimpleAppHelper(instrumentation) - /** {@inheritDoc} */ - override val transition: FlickerBuilder.() -> Unit = { - setup { - tapl.setExpectedRotation(flicker.scenario.startRotation.value) - device.wakeUpAndGoToHomeScreen() - this.setRotation(flicker.scenario.startRotation) - } - teardown { testApp.exit(wmHelper) } + protected fun clearOverview() { + // Close the app that posted the notification to trigger a cold start next time + // it is open - can't just kill it because that would remove the notification. + tapl.expectedRotationCheckEnabled = false + tapl.goHome() + tapl.workspace.switchToOverview() + tapl.overview.dismissAllTasks() } /** diff --git a/tests/inputmethod/ConcurrentMultiSessionImeTest/Android.bp b/tests/inputmethod/ConcurrentMultiSessionImeTest/Android.bp new file mode 100644 index 000000000000..afaa3f0f293f --- /dev/null +++ b/tests/inputmethod/ConcurrentMultiSessionImeTest/Android.bp @@ -0,0 +1,36 @@ +// 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 { + default_applicable_licenses: ["frameworks_base_license"], +} + +android_test { + name: "ConcurrentMultiSessionImeTest", + srcs: ["src/**/*.java"], + libs: ["android.test.runner"], + static_libs: [ + "androidx.test.ext.junit", + "platform-test-annotations", + "platform-test-rules", + "truth", + ], + test_suites: [ + "general-tests", + ], + sdk_version: "current", + + // Store test artifacts in separated directories for easier debugging. + per_testcase_directory: true, +} diff --git a/tests/inputmethod/ConcurrentMultiSessionImeTest/AndroidManifest.xml b/tests/inputmethod/ConcurrentMultiSessionImeTest/AndroidManifest.xml new file mode 100644 index 000000000000..0defe5b3f2ff --- /dev/null +++ b/tests/inputmethod/ConcurrentMultiSessionImeTest/AndroidManifest.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?><!-- + 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. +--> + +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.android.server.inputmethod.multisessiontest"> + + <instrumentation + android:name="androidx.test.runner.AndroidJUnitRunner" + android:targetPackage="com.android.server.inputmethod.multisessiontest"></instrumentation> +</manifest> diff --git a/tests/inputmethod/ConcurrentMultiSessionImeTest/AndroidTest.xml b/tests/inputmethod/ConcurrentMultiSessionImeTest/AndroidTest.xml new file mode 100644 index 000000000000..fd598c568974 --- /dev/null +++ b/tests/inputmethod/ConcurrentMultiSessionImeTest/AndroidTest.xml @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="utf-8"?><!-- + ~ 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. + --> + +<configuration description="Config for Concurrent Multi-Session IME tests"> + <object class="com.android.tradefed.testtype.suite.module.DeviceFeatureModuleController" + type="module_controller"> + <option name="required-feature" value="android.software.input_methods" /> + + <!-- Currently enabled to automotive only --> + <option name="required-feature" value="android.hardware.type.automotive" /> + </object> + <option name="test-suite-tag" value="apct" /> + + <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer"> + <option name="run-command" value="setprop debug.wm.disable_deprecated_abi_dialog 1" /> + <option name="run-command" value="settings put secure show_ime_with_hard_keyboard 1" /> + <option name="teardown-command" + value="settings delete secure show_ime_with_hard_keyboard" /> + </target_preparer> + + <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller"> + <option name="cleanup-apks" value="true" /> + <option name="force-install-mode" value="FULL" /> + <option name="test-file-name" value="ConcurrentMultiSessionImeTest.apk" /> + </target_preparer> + + <test class="com.android.tradefed.testtype.AndroidJUnitTest"> + <option name="package" value="com.android.server.inputmethod.multisessiontest" /> + </test> +</configuration> diff --git a/tests/inputmethod/ConcurrentMultiSessionImeTest/src/com/android/server/inputmethod/multisessiontest/ConcurrentMultiUserTest.java b/tests/inputmethod/ConcurrentMultiSessionImeTest/src/com/android/server/inputmethod/multisessiontest/ConcurrentMultiUserTest.java new file mode 100644 index 000000000000..b66ceba458ac --- /dev/null +++ b/tests/inputmethod/ConcurrentMultiSessionImeTest/src/com/android/server/inputmethod/multisessiontest/ConcurrentMultiUserTest.java @@ -0,0 +1,49 @@ +/* + * 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.server.inputmethod.multisessiontest; + +import static com.google.common.truth.Truth.assertThat; + +import android.content.Context; +import android.content.pm.PackageManager; + +import androidx.test.platform.app.InstrumentationRegistry; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +@RunWith(JUnit4.class) +public final class ConcurrentMultiUserTest { + + @Before + public void doBeforeEachTest() { + // No op + } + + @Test + public void behaviorBeingTested_expectedResult() { + // Sample test + Context context = + InstrumentationRegistry.getInstrumentation().getTargetContext(); + assertThat(context.getPackageManager().hasSystemFeature( + PackageManager.FEATURE_AUTOMOTIVE)).isTrue(); + assertThat(context.getPackageManager().hasSystemFeature( + PackageManager.FEATURE_INPUT_METHODS)).isTrue(); + } +} diff --git a/tests/inputmethod/OWNERS b/tests/inputmethod/OWNERS new file mode 100644 index 000000000000..6bb4b17ed4eb --- /dev/null +++ b/tests/inputmethod/OWNERS @@ -0,0 +1,3 @@ +# Bug component: 34867 + +include /services/core/java/com/android/server/inputmethod/OWNERS diff --git a/tools/hoststubgen/TEST_MAPPING b/tools/hoststubgen/TEST_MAPPING index 970362611f53..192b6f2b5e25 100644 --- a/tools/hoststubgen/TEST_MAPPING +++ b/tools/hoststubgen/TEST_MAPPING @@ -1,6 +1,11 @@ { - // TODO: Change to presubmit. - "postsubmit": [ - { "name": "tiny-framework-dump-test" } + "presubmit": [ + { "name": "tiny-framework-dump-test" }, + { "name": "hoststubgentest" }, + { "name": "hoststubgen-invoke-test" } + + // As a smoke test. + // TODO: Enable it once the infra knows how to run it. + // { "name": "CtsUtilTestCasesRavenwood" } ] } diff --git a/tools/hoststubgen/hoststubgen/Android.bp b/tools/hoststubgen/hoststubgen/Android.bp index 182940e6f7c5..fd4ec8bd5931 100644 --- a/tools/hoststubgen/hoststubgen/Android.bp +++ b/tools/hoststubgen/hoststubgen/Android.bp @@ -99,6 +99,18 @@ java_binary_host { visibility: ["//visibility:public"], } +java_test_host { + name: "hoststubgentest", + // main_class: "com.android.hoststubgen.Main", + srcs: ["test/**/*.kt"], + static_libs: [ + "hoststubgen", + "truth", + ], + test_suites: ["general-tests"], + visibility: ["//visibility:private"], +} + // File that contains the standard command line argumetns to hoststubgen. // This is only for the prototype. The productionized version is "ravenwood-standard-options". filegroup { diff --git a/tools/hoststubgen/hoststubgen/helper-framework-runtime-src/framework/com/android/hoststubgen/nativesubstitution/Parcel_host.java b/tools/hoststubgen/hoststubgen/helper-framework-runtime-src/framework/com/android/hoststubgen/nativesubstitution/Parcel_host.java index d749f076f3b5..12c7841556fc 100644 --- a/tools/hoststubgen/hoststubgen/helper-framework-runtime-src/framework/com/android/hoststubgen/nativesubstitution/Parcel_host.java +++ b/tools/hoststubgen/hoststubgen/helper-framework-runtime-src/framework/com/android/hoststubgen/nativesubstitution/Parcel_host.java @@ -20,6 +20,7 @@ import android.os.IBinder; import java.io.FileDescriptor; import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; +import java.util.Arrays; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicLong; @@ -197,9 +198,9 @@ public class Parcel_host { if (b == null) { nativeWriteInt(nativePtr, -1); } else { - final var alignedSize = align4(b.length); + final var alignedSize = align4(len); - nativeWriteInt(nativePtr, b.length); + nativeWriteInt(nativePtr, len); p.ensureMoreCapacity(alignedSize); @@ -280,6 +281,7 @@ public class Parcel_host { + data.length + " given=" + destLen); return false; } + System.arraycopy(data, 0, dest, 0, data.length); return true; } @@ -289,7 +291,12 @@ public class Parcel_host { return null; } var p = getInstance(nativePtr); - p.ensureDataAvailable(size); + try { + p.ensureDataAvailable(align4(size)); + } catch (Exception e) { + System.err.println(e.toString()); + return null; + } var bytes = new byte[size]; System.arraycopy(p.mBuffer, p.mPos, bytes, 0, size); @@ -301,7 +308,10 @@ public class Parcel_host { public static int nativeReadInt(long nativePtr) { var p = getInstance(nativePtr); - p.ensureDataAvailable(Integer.BYTES); + if (p.mSize - p.mPos < 4) { + // Match native impl that returns "0" when not enough data + return 0; + } var ret = (((p.mBuffer[p.mPos++] & 0xff) << 24) | ((p.mBuffer[p.mPos++] & 0xff) << 16) @@ -341,11 +351,16 @@ public class Parcel_host { } public static byte[] nativeMarshall(long nativePtr) { - throw new RuntimeException("Not implemented yet"); + var p = getInstance(nativePtr); + return Arrays.copyOf(p.mBuffer, p.mSize); } public static void nativeUnmarshall( long nativePtr, byte[] data, int offset, int length) { - throw new RuntimeException("Not implemented yet"); + var p = getInstance(nativePtr); + p.ensureMoreCapacity(length); + System.arraycopy(data, offset, p.mBuffer, p.mPos, length); + p.mPos += length; + p.updateSize(); } public static int nativeCompareData(long thisNativePtr, long otherNativePtr) { throw new RuntimeException("Not implemented yet"); diff --git a/tools/hoststubgen/hoststubgen/invoketest/Android.bp b/tools/hoststubgen/hoststubgen/invoketest/Android.bp new file mode 100644 index 000000000000..7e90e421a1f9 --- /dev/null +++ b/tools/hoststubgen/hoststubgen/invoketest/Android.bp @@ -0,0 +1,20 @@ +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"], +} + +sh_test_host { + name: "hoststubgen-invoke-test", + src: "hoststubgen-invoke-test.sh", + test_suites: ["general-tests"], + + // Note: java_data: ["hoststubgen"] will only install the jar file, but not the command wrapper. + java_data: [ + "hoststubgen", + "hoststubgen-test-tiny-framework", + ], +} diff --git a/tools/hoststubgen/hoststubgen/invoketest/hoststubgen-invoke-test.sh b/tools/hoststubgen/hoststubgen/invoketest/hoststubgen-invoke-test.sh new file mode 100755 index 000000000000..0068afb66f6b --- /dev/null +++ b/tools/hoststubgen/hoststubgen/invoketest/hoststubgen-invoke-test.sh @@ -0,0 +1,195 @@ +#!/bin/bash +# 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. + +set -e # Exit when any command files + +# This script runs HostStubGen directly with various arguments and make sure +# the tool behaves in the expected way. + + +echo "# Listing files in the test environment" +ls -lR + +echo "# Dumping the environment variables" +env + +# Set up the constants and variables + +# Bazel sets $TEST_TMPDIR. +export TEMP=$TEST_TMPDIR + +if [[ "$TEMP" == "" ]] ; then + TEMP=./tmp + mkdir -p $TEMP +fi + +JAR=hoststubgen-test-tiny-framework.jar +STUB=$TEMP/stub.jar +IMPL=$TEMP/impl.jar + +ANNOTATION_FILTER=$TEMP/annotation-filter.txt + +HOSTSTUBGEN_OUT=$TEMP/output.txt + +# Because of `set -e`, we can't return non-zero from functions, so we store +# HostStubGen result in it. +HOSTSTUBGEN_RC=0 + +# Define the functions to + + +# Note, because the build rule will only install hoststubgen.jar, but not the wrapper script, +# we need to execute it manually with the java command. +hoststubgen() { + java -jar ./hoststubgen.jar "$@" +} + +run_hoststubgen() { + local test_name="$1" + local annotation_filter="$2" + + echo "# Test: $test_name" + + rm -f $HOSTSTUBGEN_OUT + + local filter_arg="" + + if [[ "$annotation_filter" != "" ]] ; then + echo "$annotation_filter" > $ANNOTATION_FILTER + filter_arg="--annotation-allowed-classes-file $ANNOTATION_FILTER" + echo "=== filter ===" + cat $ANNOTATION_FILTER + fi + + hoststubgen \ + --debug \ + --in-jar $JAR \ + --out-stub-jar $STUB \ + --out-impl-jar $IMPL \ + --stub-annotation \ + android.hosttest.annotation.HostSideTestStub \ + --keep-annotation \ + android.hosttest.annotation.HostSideTestKeep \ + --stub-class-annotation \ + android.hosttest.annotation.HostSideTestWholeClassStub \ + --keep-class-annotation \ + android.hosttest.annotation.HostSideTestWholeClassKeep \ + --throw-annotation \ + android.hosttest.annotation.HostSideTestThrow \ + --remove-annotation \ + android.hosttest.annotation.HostSideTestRemove \ + --substitute-annotation \ + android.hosttest.annotation.HostSideTestSubstitute \ + --native-substitute-annotation \ + android.hosttest.annotation.HostSideTestNativeSubstitutionClass \ + --class-load-hook-annotation \ + android.hosttest.annotation.HostSideTestClassLoadHook \ + --stub-static-initializer-annotation \ + android.hosttest.annotation.HostSideTestStaticInitializerStub \ + $filter_arg \ + |& tee $HOSTSTUBGEN_OUT + HOSTSTUBGEN_RC=${PIPESTATUS[0]} + echo "HostStubGen exited with $HOSTSTUBGEN_RC" + return 0 +} + +run_hoststubgen_for_success() { + run_hoststubgen "$@" + + if (( $HOSTSTUBGEN_RC != 0 )) ; then + echo "HostStubGen expected to finish successfully, but failed with $rc" + return 1 + fi +} + +run_hoststubgen_for_failure() { + local test_name="$1" + local expected_error_message="$2" + shift 2 + + run_hoststubgen "$test_name" "$@" + + if (( $HOSTSTUBGEN_RC == 0 )) ; then + echo "HostStubGen expected to fail, but it didn't fail" + return 1 + fi + + # The output should contain the expected message. (note we se fgrep here.) + grep -Fq "$expected_error_message" $HOSTSTUBGEN_OUT +} + +# Start the tests... + +# Pass "" as a filter to _not_ add `--annotation-allowed-classes-file`. +run_hoststubgen_for_success "No annotation filter" "" + +# Now, we use " ", so we do add `--annotation-allowed-classes-file`. +run_hoststubgen_for_failure "No classes are allowed to have annotations" \ + "not allowed to have Ravenwood annotations" \ + " " + +run_hoststubgen_for_success "All classes allowed (wildcard)" \ + " +* # Allow all classes +" + +run_hoststubgen_for_failure "All classes disallowed (wildcard)" \ + "not allowed to have Ravenwood annotations" \ + " +!* # Disallow all classes +" + +run_hoststubgen_for_failure "Some classes not allowed (1)" \ + "not allowed to have Ravenwood annotations" \ + " +android.hosttest.* +com.android.hoststubgen.* +com.supported.* +" + +run_hoststubgen_for_failure "Some classes not allowed (2)" \ + "not allowed to have Ravenwood annotations" \ + " +android.hosttest.* +com.android.hoststubgen.* +com.unsupported.* +" + +run_hoststubgen_for_success "All classes allowed (package wildcard)" \ + " +android.hosttest.* +com.android.hoststubgen.* +com.supported.* +com.unsupported.* +" + + +run_hoststubgen_for_failure "One specific class disallowed" \ + "TinyFrameworkClassAnnotations is not allowed to have Ravenwood annotations" \ + " +!com.android.hoststubgen.test.tinyframework.TinyFrameworkClassAnnotations +* # All other classes allowed +" + +run_hoststubgen_for_success "One specific class disallowed, but it doesn't use annotations" \ + " +!com.android.hoststubgen.test.tinyframework.TinyFrameworkForTextPolicy +* # All other classes allowed +" + + + +echo "All tests passed" +exit 0
\ No newline at end of file diff --git a/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/HostStubGen.kt b/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/HostStubGen.kt index 872d56856c33..f32dc721873e 100644 --- a/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/HostStubGen.kt +++ b/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/HostStubGen.kt @@ -27,6 +27,7 @@ import com.android.hoststubgen.filters.OutputFilter import com.android.hoststubgen.filters.StubIntersectingFilter import com.android.hoststubgen.filters.createFilterFromTextPolicyFile import com.android.hoststubgen.filters.printAsTextPolicy +import com.android.hoststubgen.utils.ClassFilter import com.android.hoststubgen.visitors.BaseAdapter import com.android.hoststubgen.visitors.PackageRedirectRemapper import org.objectweb.asm.ClassReader @@ -167,6 +168,14 @@ class HostStubGen(val options: HostStubGenOptions) { filter ) + val annotationAllowedClassesFilter = options.annotationAllowedClassesFile.let { filename -> + if (filename == null) { + ClassFilter.newNullFilter(true) // Allow all classes + } else { + ClassFilter.loadFromFile(filename, false) + } + } + // Next, Java annotation based filter. filter = AnnotationBasedFilter( errors, @@ -181,7 +190,8 @@ class HostStubGen(val options: HostStubGenOptions) { options.nativeSubstituteAnnotations, options.classLoadHookAnnotations, options.stubStaticInitializerAnnotations, - filter + annotationAllowedClassesFilter, + filter, ) // Next, "text based" filter, which allows to override polices without touching diff --git a/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/HostStubGenOptions.kt b/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/HostStubGenOptions.kt index d74612d48de2..aab02b8de254 100644 --- a/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/HostStubGenOptions.kt +++ b/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/HostStubGenOptions.kt @@ -51,6 +51,8 @@ class HostStubGenOptions( var packageRedirects: MutableList<Pair<String, String>> = mutableListOf(), + var annotationAllowedClassesFile: String? = null, + var defaultClassLoadHook: String? = null, var defaultMethodCallHook: String? = null, @@ -171,6 +173,9 @@ class HostStubGenOptions( "--package-redirect" -> ret.packageRedirects += parsePackageRedirect(ai.nextArgRequired(arg)) + "--annotation-allowed-classes-file" -> + ret.annotationAllowedClassesFile = ai.nextArgRequired(arg) + "--default-class-load-hook" -> ret.defaultClassLoadHook = ai.nextArgRequired(arg) @@ -314,6 +319,7 @@ class HostStubGenOptions( nativeSubstituteAnnotations=$nativeSubstituteAnnotations, classLoadHookAnnotations=$classLoadHookAnnotations, packageRedirects=$packageRedirects, + $annotationAllowedClassesFile=$annotationAllowedClassesFile, defaultClassLoadHook=$defaultClassLoadHook, defaultMethodCallHook=$defaultMethodCallHook, intersectStubJars=$intersectStubJars, diff --git a/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/Utils.kt b/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/Utils.kt index f75062b3a878..937e56c2cbb5 100644 --- a/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/Utils.kt +++ b/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/Utils.kt @@ -58,4 +58,29 @@ fun <T> addNonNullElement(a: List<T>, b: T?): List<T> { return listOf(b) } return a + b -}
\ No newline at end of file +} + + +/** + * Exception for a parse error in a file + */ +class ParseException : Exception, UserErrorException { + val hasSourceInfo: Boolean + + constructor(message: String) : super(message) { + hasSourceInfo = false + } + + constructor(message: String, file: String, line: Int) : + super("$message in file $file line $line") { + hasSourceInfo = true + } + + fun withSourceInfo(filename: String, lineNo: Int): ParseException { + if (hasSourceInfo) { + return this // Already has source information. + } else { + return ParseException(this.message ?: "", filename, lineNo) + } + } +} diff --git a/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/asm/AsmUtils.kt b/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/asm/AsmUtils.kt index a51bdcf0c793..1bcf3642082f 100644 --- a/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/asm/AsmUtils.kt +++ b/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/asm/AsmUtils.kt @@ -22,6 +22,8 @@ import org.objectweb.asm.Opcodes import org.objectweb.asm.Type import org.objectweb.asm.tree.AnnotationNode import org.objectweb.asm.tree.ClassNode +import org.objectweb.asm.tree.FieldNode +import org.objectweb.asm.tree.MethodNode /** Name of the class initializer method. */ @@ -175,3 +177,93 @@ fun isVisibilityPrivateOrPackagePrivate(access: Int): Boolean { else -> false } } + +fun ClassNode.isEnum(): Boolean { + return (this.access and Opcodes.ACC_ENUM) != 0 +} + +fun ClassNode.isAnnotation(): Boolean { + return (this.access and Opcodes.ACC_ANNOTATION) != 0 +} + +fun ClassNode.isSynthetic(): Boolean { + return (this.access and Opcodes.ACC_SYNTHETIC) != 0 +} + +fun MethodNode.isSynthetic(): Boolean { + return (this.access and Opcodes.ACC_SYNTHETIC) != 0 +} + +fun FieldNode.isEnum(): Boolean { + return (this.access and Opcodes.ACC_ENUM) != 0 +} + +fun FieldNode.isSynthetic(): Boolean { + return (this.access and Opcodes.ACC_SYNTHETIC) != 0 +} + +/* + +Dump of the members of TinyFrameworkEnumSimple: + +class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple keep + field Cat keep (ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM) + field Dog keep + field $VALUES keep (ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC) + + method values ()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; keep + ^- NOT synthetic (ACC_PUBLIC, ACC_STATIC) + method valueOf (Ljava/lang/String;)Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; keep + ^- NOT synthetic (ACC_PUBLIC, ACC_STATIC) + method <init> (Ljava/lang/String;I)V keep + ^- NOT synthetic (ACC_PRIVATE) + + method $values ()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; keep + (ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC) + method <clinit> ()V keep + +Dump of the members of TinyFrameworkEnumSimple: + +class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex keep + field RED keep + field BLUE keep + field GREEN keep + field mLongName keep + field mShortName keep + field $VALUES keep + method values ()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; keep + method valueOf (Ljava/lang/String;)Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; keep + method <init> (Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V keep + method getLongName ()Ljava/lang/String; keep + method getShortName ()Ljava/lang/String; keep + method $values ()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; keep + method <clinit> ()V keep + + */ + +fun isAutoGeneratedEnumMember(mn: MethodNode): Boolean { + if (mn.isSynthetic()) { + return true + } + if (mn.name == "<init>" && mn.desc == "(Ljava/lang/String;I)V") { + return true + } + if (mn.name == "<clinit>" && mn.desc == "()V") { + return true + } + if (mn.name == "values" && mn.desc.startsWith("()")) { + return true + } + if (mn.name == "valueOf" && mn.desc.startsWith("(Ljava/lang/String;)")) { + return true + } + + return false +} + +fun isAutoGeneratedEnumMember(fn: FieldNode): Boolean { + if (fn.isSynthetic() || fn.isEnum()) { + return true + } + return false +} diff --git a/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/filters/AnnotationBasedFilter.kt b/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/filters/AnnotationBasedFilter.kt index 9f3ec4d2b450..eda676135a49 100644 --- a/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/filters/AnnotationBasedFilter.kt +++ b/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/filters/AnnotationBasedFilter.kt @@ -25,9 +25,11 @@ import com.android.hoststubgen.asm.CLASS_INITIALIZER_NAME import com.android.hoststubgen.asm.ClassNodes import com.android.hoststubgen.asm.findAnnotationValueAsString import com.android.hoststubgen.asm.findAnyAnnotation +import com.android.hoststubgen.asm.toHumanReadableClassName import com.android.hoststubgen.asm.toHumanReadableMethodName import com.android.hoststubgen.asm.toJvmClassName import com.android.hoststubgen.log +import com.android.hoststubgen.utils.ClassFilter import org.objectweb.asm.tree.AnnotationNode import org.objectweb.asm.tree.ClassNode @@ -51,6 +53,7 @@ class AnnotationBasedFilter( nativeSubstituteAnnotations_: Set<String>, classLoadHookAnnotations_: Set<String>, stubStaticInitializerAnnotations_: Set<String>, + private val annotationAllowedClassesFilter: ClassFilter, fallback: OutputFilter, ) : DelegatingFilter(fallback) { private var stubAnnotations = convertToInternalNames(stubAnnotations_) @@ -62,7 +65,8 @@ class AnnotationBasedFilter( private var substituteAnnotations = convertToInternalNames(substituteAnnotations_) private var nativeSubstituteAnnotations = convertToInternalNames(nativeSubstituteAnnotations_) private var classLoadHookAnnotations = convertToInternalNames(classLoadHookAnnotations_) - private var stubStaticInitializerAnnotations = convertToInternalNames(stubStaticInitializerAnnotations_) + private var stubStaticInitializerAnnotations = + convertToInternalNames(stubStaticInitializerAnnotations_) /** Annotations that control API visibility. */ private var visibilityAnnotations: Set<String> = convertToInternalNames( @@ -129,37 +133,57 @@ class AnnotationBasedFilter( } } + fun findAnyAnnotation( + className: String, + anyAnnotations: Set<String>, + visibleAnnotations: List<AnnotationNode>?, + invisibleAnnotations: List<AnnotationNode>?, + ): AnnotationNode? { + val ret = findAnyAnnotation(anyAnnotations, visibleAnnotations, invisibleAnnotations) + + if (ret != null) { + if (!annotationAllowedClassesFilter.matches(className)) { + throw InvalidAnnotationException( + "Class ${className.toHumanReadableClassName()} is not allowed to have " + + "Ravenwood annotations. Contact g/ravenwood for more details.") + } + } + + return ret + } + /** * Find a visibility annotation. * * name1 - 4 are only used in exception messages. */ private fun findAnnotation( - visibles: List<AnnotationNode>?, - invisibles: List<AnnotationNode>?, - type: String, - name1: String, - name2: String = "", - name3: String = "", + className: String, + visibles: List<AnnotationNode>?, + invisibles: List<AnnotationNode>?, + type: String, + name1: String, + name2: String = "", + name3: String = "", ): FilterPolicyWithReason? { detectInvalidAnnotations(visibles, invisibles, type, name1, name2, name3) - findAnyAnnotation(stubAnnotations, visibles, invisibles)?.let { + findAnyAnnotation(className, stubAnnotations, visibles, invisibles)?.let { return FilterPolicy.Stub.withReason(reasonAnnotation) } - findAnyAnnotation(stubClassAnnotations, visibles, invisibles)?.let { + findAnyAnnotation(className, stubClassAnnotations, visibles, invisibles)?.let { return FilterPolicy.StubClass.withReason(reasonClassAnnotation) } - findAnyAnnotation(keepAnnotations, visibles, invisibles)?.let { + findAnyAnnotation(className, keepAnnotations, visibles, invisibles)?.let { return FilterPolicy.Keep.withReason(reasonAnnotation) } - findAnyAnnotation(keepClassAnnotations, visibles, invisibles)?.let { + findAnyAnnotation(className, keepClassAnnotations, visibles, invisibles)?.let { return FilterPolicy.KeepClass.withReason(reasonClassAnnotation) } - findAnyAnnotation(throwAnnotations, visibles, invisibles)?.let { + findAnyAnnotation(className, throwAnnotations, visibles, invisibles)?.let { return FilterPolicy.Throw.withReason(reasonAnnotation) } - findAnyAnnotation(removeAnnotations, visibles, invisibles)?.let { + findAnyAnnotation(className, removeAnnotations, visibles, invisibles)?.let { return FilterPolicy.Remove.withReason(reasonAnnotation) } @@ -170,6 +194,7 @@ class AnnotationBasedFilter( val cn = classes.getClass(className) findAnnotation( + cn.name, cn.visibleAnnotations, cn.invisibleAnnotations, "class", @@ -193,6 +218,7 @@ class AnnotationBasedFilter( cn.fields?.firstOrNull { it.name == fieldName }?.let {fn -> findAnnotation( + cn.name, fn.visibleAnnotations, fn.invisibleAnnotations, "field", @@ -214,7 +240,7 @@ class AnnotationBasedFilter( val cn = classes.getClass(className) if (methodName == CLASS_INITIALIZER_NAME && descriptor == CLASS_INITIALIZER_DESC) { - findAnyAnnotation(stubStaticInitializerAnnotations, + findAnyAnnotation(cn.name, stubStaticInitializerAnnotations, cn.visibleAnnotations, cn.invisibleAnnotations)?.let { return FilterPolicy.Stub.withReason(reasonAnnotation) } @@ -229,6 +255,7 @@ class AnnotationBasedFilter( // If there's no substitution, then we check the annotation. findAnnotation( + cn.name, mn.visibleAnnotations, mn.invisibleAnnotations, "method", diff --git a/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/filters/ImplicitOutputFilter.kt b/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/filters/ImplicitOutputFilter.kt index 07a023c66926..9c0fa69f8a14 100644 --- a/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/filters/ImplicitOutputFilter.kt +++ b/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/filters/ImplicitOutputFilter.kt @@ -22,6 +22,9 @@ import com.android.hoststubgen.asm.CLASS_INITIALIZER_NAME import com.android.hoststubgen.asm.isAnonymousInnerClass import com.android.hoststubgen.log import com.android.hoststubgen.asm.ClassNodes +import com.android.hoststubgen.asm.isAnnotation +import com.android.hoststubgen.asm.isAutoGeneratedEnumMember +import com.android.hoststubgen.asm.isEnum import com.android.hoststubgen.asm.isVisibilityPrivateOrPackagePrivate import org.objectweb.asm.tree.ClassNode @@ -57,18 +60,8 @@ class ImplicitOutputFilter( override fun getPolicyForClass(className: String): FilterPolicyWithReason { val fallback = super.getPolicyForClass(className) - // TODO: This check should be cached. val cn = classes.getClass(className) - if (cn.superName == "java/lang/Enum" && - fallback.policy == FilterPolicy.Keep) { - return FilterPolicy.KeepClass.withReason("enum") - } - if (cn.interfaces.contains("java/lang/annotation/Annotation") && - fallback.policy == FilterPolicy.Keep) { - return FilterPolicy.KeepClass.withReason("annotation") - } - // Use the implicit policy, if any. getClassImplicitPolicy(className, cn)?.let { return it } @@ -95,16 +88,78 @@ class ImplicitOutputFilter( } } + val cn = classes.getClass(className) + // If we throw from the static initializer, the class would be useless, so we convert it // "keep" instead. - if (methodName == CLASS_INITIALIZER_NAME && descriptor == CLASS_INITIALIZER_DESC && - fallback.policy == FilterPolicy.Throw) { + // Unless it's an enum -- in that case, the below code would handle it. + if (!cn.isEnum() && + fallback.policy == FilterPolicy.Throw && + methodName == CLASS_INITIALIZER_NAME && descriptor == CLASS_INITIALIZER_DESC) { // TODO Maybe show a warning?? But that'd be too noisy with --default-throw. return FilterPolicy.Ignore.withReason( "'throw' on static initializer is handled as 'ignore'" + " [original throw reason: ${fallback.reason}]") } + val classPolicy = super.getPolicyForClass(className) + + log.d("Class ${cn.name} Class policy: $classPolicy") + if (classPolicy.policy.needsInImpl) { + // Do it only when the class needs to be kept... + + // Member policy should be "keep" or "stub". + val memberPolicy = classPolicy.policy.resolveClassWidePolicy() + + // Keep (or stub) the generated enum members. + if (cn.isEnum()) { + classes.findMethod(className, methodName, descriptor)?.let { mn -> + if (isAutoGeneratedEnumMember(mn)) { + return memberPolicy.withReason(classPolicy.reason).wrapReason("enum") + } + } + } + + // Keep (or stub) all members of annotations. + if (cn.isAnnotation()) { + return memberPolicy.withReason(classPolicy.reason).wrapReason("annotation") + } + } + + return fallback + } + + override fun getPolicyForField( + className: String, + fieldName: String + ): FilterPolicyWithReason { + val fallback = super.getPolicyForField(className, fieldName) + + val cn = classes.getClass(className) + val classPolicy = super.getPolicyForClass(className) + + log.d("Class ${cn.name} Class policy: $classPolicy") + if (classPolicy.policy.needsInImpl) { + // Do it only when the class needs to be kept... + + // Member policy should be "keep" or "stub". + val memberPolicy = classPolicy.policy.resolveClassWidePolicy() + + // Keep (or stub) the generated enum members. + if (cn.isEnum()) { + classes.findField(className, fieldName)?.let { fn -> + if (isAutoGeneratedEnumMember(fn)) { + return memberPolicy.withReason(classPolicy.reason).wrapReason("enum") + } + } + } + + // Keep (or stub) all members of annotations. + if (cn.isAnnotation()) { + return memberPolicy.withReason(classPolicy.reason).wrapReason("annotation") + } + } + return fallback } }
\ No newline at end of file diff --git a/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/filters/TextFileFilterPolicyParser.kt b/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/filters/TextFileFilterPolicyParser.kt index 46546e8b9491..416f08505867 100644 --- a/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/filters/TextFileFilterPolicyParser.kt +++ b/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/filters/TextFileFilterPolicyParser.kt @@ -15,7 +15,7 @@ */ package com.android.hoststubgen.filters -import com.android.hoststubgen.UserErrorException +import com.android.hoststubgen.ParseException import com.android.hoststubgen.asm.ClassNodes import com.android.hoststubgen.log import com.android.hoststubgen.normalizeTextLine @@ -46,30 +46,6 @@ private fun isVisible(access: Int): Boolean { return (access and (Opcodes.ACC_PUBLIC or Opcodes.ACC_PROTECTED)) != 0 } -/** - * Exception for a parse error. - */ -private class ParseException : Exception, UserErrorException { - val hasSourceInfo: Boolean - - constructor(message: String) : super(message) { - hasSourceInfo = false - } - - constructor(message: String, file: String, line: Int) : - super("$message in file $file line $line") { - hasSourceInfo = true - } - - fun withSourceInfo(filename: String, lineNo: Int): ParseException { - if (hasSourceInfo) { - return this // Already has source information. - } else { - return ParseException(this.message ?: "", filename, lineNo) - } - } -} - private const val FILTER_REASON = "file-override" /** diff --git a/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/utils/ClassFilter.kt b/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/utils/ClassFilter.kt new file mode 100644 index 000000000000..01a7ab3eacfa --- /dev/null +++ b/tools/hoststubgen/hoststubgen/src/com/android/hoststubgen/utils/ClassFilter.kt @@ -0,0 +1,141 @@ +/* + * 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.hoststubgen.utils + +import com.android.hoststubgen.ParseException +import com.android.hoststubgen.asm.toHumanReadableClassName +import com.android.hoststubgen.asm.toJvmClassName +import com.android.hoststubgen.normalizeTextLine +import java.io.File + +/** + * General purpose filter for class names. + */ +class ClassFilter private constructor ( + val defaultResult: Boolean, +) { + private data class FilterElement( + val allowed: Boolean, + val internalName: String, + val isPrefix: Boolean, + ) { + fun matches(classInternalName: String): Boolean { + if (isPrefix) { + return classInternalName.startsWith(internalName) + } else { + return classInternalName == internalName + } + } + } + + private val elements: MutableList<FilterElement> = mutableListOf() + + private val cache: MutableMap<String, Boolean> = mutableMapOf() + + /** + * Takes an internal class name (e.g. "com/android/hoststubgen/ClassName") and returns if + * matches the filter or not. + */ + fun matches(classInternalName: String): Boolean { + cache[classInternalName]?.let { + return it + } + + var result = defaultResult + run outer@{ + elements.forEach { e -> + if (e.matches(classInternalName)) { + result = e.allowed + return@outer // break equivalent. + } + } + } + cache[classInternalName] = result + + return result + } + + fun getCacheSizeForTest(): Int { + return cache.size + } + + companion object { + /** + * Return a filter that alawys returns true or false. + */ + fun newNullFilter(defaultResult: Boolean): ClassFilter { + return ClassFilter(defaultResult) + } + + /** Build a filter from a file. */ + fun loadFromFile(filename: String, defaultResult: Boolean): ClassFilter { + return buildFromString(File(filename).readText(), defaultResult, filename) + } + + /** Build a filter from a string (for unit tests). */ + fun buildFromString( + filterString: String, + defaultResult: Boolean, + filenameForErrorMessage: String + ): ClassFilter { + val ret = ClassFilter(defaultResult) + + var lineNo = 0 + filterString.split('\n').forEach { s -> + lineNo++ + + var line = normalizeTextLine(s) + + if (line.isEmpty()) { + return@forEach // skip empty lines. + } + + line = line.toHumanReadableClassName() // Convert all the slashes to periods. + + var allow = true + if (line.startsWith("!")) { + allow = false + line = line.substring(1).trimStart() + } + + // Special case -- matches any class names. + if (line == "*") { + ret.elements.add(FilterElement(allow, "", true)) + return@forEach + } + + // Handle wildcard -- e.g. "package.name.*" + if (line.endsWith(".*")) { + ret.elements.add(FilterElement( + allow, line.substring(0, line.length - 2).toJvmClassName(), true)) + return@forEach + } + + // Any other uses of "*" would be an error. + if (line.contains('*')) { + throw ParseException( + "Wildcard (*) can only show up as the last element", + filenameForErrorMessage, + lineNo + ) + } + ret.elements.add(FilterElement(allow, line.toJvmClassName(), false)) + } + + return ret + } + } +}
\ No newline at end of file diff --git a/tools/hoststubgen/hoststubgen/test-tiny-framework/Android.bp b/tools/hoststubgen/hoststubgen/test-tiny-framework/Android.bp index 3dc6da348937..e7873d6eecc3 100644 --- a/tools/hoststubgen/hoststubgen/test-tiny-framework/Android.bp +++ b/tools/hoststubgen/hoststubgen/test-tiny-framework/Android.bp @@ -16,6 +16,7 @@ java_library { static_libs: [ "hoststubgen-annotations", ], + visibility: ["//frameworks/base/tools/hoststubgen:__subpackages__"], } // Create stub/impl jars from "hoststubgen-test-tiny-framework", using the following 3 rules. @@ -30,6 +31,7 @@ java_genrule_host { ":hoststubgen-test-tiny-framework", "policy-override-tiny-framework.txt", ], + visibility: ["//visibility:private"], } java_genrule_host { @@ -41,6 +43,7 @@ java_genrule_host { out: [ "host_stub.jar", ], + visibility: ["//visibility:private"], } java_genrule_host { @@ -52,6 +55,7 @@ java_genrule_host { out: [ "host_impl.jar", ], + visibility: ["//visibility:private"], } // Same as "hoststubgen-test-tiny-framework-host", but with more options, to test more hoststubgen @@ -71,6 +75,7 @@ java_genrule_host { ":hoststubgen-test-tiny-framework", "policy-override-tiny-framework.txt", ], + visibility: ["//visibility:private"], } java_genrule_host { @@ -82,6 +87,7 @@ java_genrule_host { out: [ "host_stub.jar", ], + visibility: ["//visibility:private"], } java_genrule_host { @@ -93,6 +99,7 @@ java_genrule_host { out: [ "host_impl.jar", ], + visibility: ["//visibility:private"], } // Compile the test jar, using 2 rules. diff --git a/tools/hoststubgen/hoststubgen/test-tiny-framework/annotation-allowed-classes-tiny-framework.txt b/tools/hoststubgen/hoststubgen/test-tiny-framework/annotation-allowed-classes-tiny-framework.txt new file mode 100644 index 000000000000..bd9e85e17890 --- /dev/null +++ b/tools/hoststubgen/hoststubgen/test-tiny-framework/annotation-allowed-classes-tiny-framework.txt @@ -0,0 +1,29 @@ +# Only classes listed here can use the hoststubgen annotations. + +# For each class, we check each item in this file, and when a match is found, we +# either allow it if the line doesn't have a !, or disallow if the line has a !. +# All the lines after the matching line will be ignored. + + +# To allow a specific class to use annotations: +# com.android.hoststubgen.test.tinyframework.TinyFrameworkClassAnnotations + +# To disallow a specific class to use annotations: +# !com.android.hoststubgen.test.tinyframework.TinyFrameworkClassAnnotations + +# To allow a specific package to use annotations: +# com.android.hoststubgen.test.* + +# To disallow a specific package to use annotations: +# !com.android.hoststubgen.test.* + + +com.android.hoststubgen.test.tinyframework.* +com.supported.* +com.unsupported.* + +# Use this to allow all packages +# * + +# Use this to allow all packages +# !*
\ No newline at end of file diff --git a/tools/hoststubgen/hoststubgen/test-tiny-framework/golden-output/01-hoststubgen-test-tiny-framework-orig-dump.txt b/tools/hoststubgen/hoststubgen/test-tiny-framework/golden-output/01-hoststubgen-test-tiny-framework-orig-dump.txt index f627c6e7d7b5..78a4fa692c21 100644 --- a/tools/hoststubgen/hoststubgen/test-tiny-framework/golden-output/01-hoststubgen-test-tiny-framework-orig-dump.txt +++ b/tools/hoststubgen/hoststubgen/test-tiny-framework/golden-output/01-hoststubgen-test-tiny-framework-orig-dump.txt @@ -879,6 +879,314 @@ RuntimeInvisibleAnnotations: android.hosttest.annotation.HostSideTestStub x: #x() android.hosttest.annotation.HostSideTestStaticInitializerStub +## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex.class + Compiled from "TinyFrameworkEnumComplex.java" +public final class com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex extends java.lang.Enum<com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex> + minor version: 0 + major version: 61 + flags: (0x4031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER, ACC_ENUM + this_class: #x // com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex + super_class: #x // java/lang/Enum + interfaces: 0, fields: 6, methods: 7, attributes: 3 + public static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex RED; + descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + public static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex GREEN; + descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + public static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex BLUE; + descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + private final java.lang.String mLongName; + descriptor: Ljava/lang/String; + flags: (0x0012) ACC_PRIVATE, ACC_FINAL + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestKeep + + private final java.lang.String mShortName; + descriptor: Ljava/lang/String; + flags: (0x0012) ACC_PRIVATE, ACC_FINAL + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestKeep + + private static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex[] $VALUES; + descriptor: [Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x101a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC + + public static com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex[] values(); + descriptor: ()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x0009) ACC_PUBLIC, ACC_STATIC + Code: + stack=1, locals=0, args_size=0 + x: getstatic #x // Field $VALUES:[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + x: invokevirtual #x // Method "[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex;".clone:()Ljava/lang/Object; + x: checkcast #x // class "[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex;" + x: areturn + LineNumberTable: + + public static com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex valueOf(java.lang.String); + descriptor: (Ljava/lang/String;)Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x0009) ACC_PUBLIC, ACC_STATIC + Code: + stack=2, locals=1, args_size=1 + x: ldc #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex + x: aload_0 + x: invokestatic #x // Method java/lang/Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum; + x: checkcast #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex + x: areturn + LineNumberTable: + LocalVariableTable: + Start Length Slot Name Signature + 0 10 0 name Ljava/lang/String; + + private com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex(java.lang.String, java.lang.String); + descriptor: (Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V + flags: (0x0002) ACC_PRIVATE + Code: + stack=3, locals=5, args_size=5 + x: aload_0 + x: aload_1 + x: iload_2 + x: invokespecial #x // Method java/lang/Enum."<init>":(Ljava/lang/String;I)V + x: aload_0 + x: aload_3 + x: putfield #x // Field mLongName:Ljava/lang/String; + x: aload_0 + x: aload 4 + x: putfield #x // Field mShortName:Ljava/lang/String; + x: return + LineNumberTable: + LocalVariableTable: + Start Length Slot Name Signature + 0 18 0 this Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + 0 18 3 longName Ljava/lang/String; + 0 18 4 shortName Ljava/lang/String; + Signature: #x // (Ljava/lang/String;Ljava/lang/String;)V + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + public java.lang.String getLongName(); + descriptor: ()Ljava/lang/String; + flags: (0x0001) ACC_PUBLIC + Code: + stack=1, locals=1, args_size=1 + x: aload_0 + x: getfield #x // Field mLongName:Ljava/lang/String; + x: areturn + LineNumberTable: + LocalVariableTable: + Start Length Slot Name Signature + 0 5 0 this Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + public java.lang.String getShortName(); + descriptor: ()Ljava/lang/String; + flags: (0x0001) ACC_PUBLIC + Code: + stack=1, locals=1, args_size=1 + x: aload_0 + x: getfield #x // Field mShortName:Ljava/lang/String; + x: areturn + LineNumberTable: + LocalVariableTable: + Start Length Slot Name Signature + 0 5 0 this Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + private static com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex[] $values(); + descriptor: ()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC + Code: + stack=4, locals=0, args_size=0 + x: iconst_3 + x: anewarray #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex + x: dup + x: iconst_0 + x: getstatic #x // Field RED:Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + x: aastore + x: dup + x: iconst_1 + x: getstatic #x // Field GREEN:Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + x: aastore + x: dup + x: iconst_2 + x: getstatic #x // Field BLUE:Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + x: aastore + x: areturn + LineNumberTable: + + static {}; + descriptor: ()V + flags: (0x0008) ACC_STATIC + Code: + stack=6, locals=0, args_size=0 + x: new #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex + x: dup + x: ldc #x // String RED + x: iconst_0 + x: ldc #x // String Red + x: ldc #x // String R + x: invokespecial #x // Method "<init>":(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V + x: putstatic #x // Field RED:Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + x: new #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex + x: dup + x: ldc #x // String GREEN + x: iconst_1 + x: ldc #x // String Green + x: ldc #x // String G + x: invokespecial #x // Method "<init>":(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V + x: putstatic #x // Field GREEN:Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + x: new #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex + x: dup + x: ldc #x // String BLUE + x: iconst_2 + x: ldc #x // String Blue + x: ldc #x // String B + x: invokespecial #x // Method "<init>":(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V + x: putstatic #x // Field BLUE:Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + x: invokestatic #x // Method $values:()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + x: putstatic #x // Field $VALUES:[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + x: return + LineNumberTable: +} +Signature: #x // Ljava/lang/Enum<Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex;>; +SourceFile: "TinyFrameworkEnumComplex.java" +RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub +## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple.class + Compiled from "TinyFrameworkEnumSimple.java" +public final class com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple extends java.lang.Enum<com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple> + minor version: 0 + major version: 61 + flags: (0x4031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER, ACC_ENUM + this_class: #x // com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple + super_class: #x // java/lang/Enum + interfaces: 0, fields: 3, methods: 5, attributes: 3 + public static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple CAT; + descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + public static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple DOG; + descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + private static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple[] $VALUES; + descriptor: [Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + flags: (0x101a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC + + public static com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple[] values(); + descriptor: ()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + flags: (0x0009) ACC_PUBLIC, ACC_STATIC + Code: + stack=1, locals=0, args_size=0 + x: getstatic #x // Field $VALUES:[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + x: invokevirtual #x // Method "[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple;".clone:()Ljava/lang/Object; + x: checkcast #x // class "[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple;" + x: areturn + LineNumberTable: + + public static com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple valueOf(java.lang.String); + descriptor: (Ljava/lang/String;)Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + flags: (0x0009) ACC_PUBLIC, ACC_STATIC + Code: + stack=2, locals=1, args_size=1 + x: ldc #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple + x: aload_0 + x: invokestatic #x // Method java/lang/Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum; + x: checkcast #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple + x: areturn + LineNumberTable: + LocalVariableTable: + Start Length Slot Name Signature + 0 10 0 name Ljava/lang/String; + + private com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple(); + descriptor: (Ljava/lang/String;I)V + flags: (0x0002) ACC_PRIVATE + Code: + stack=3, locals=3, args_size=3 + x: aload_0 + x: aload_1 + x: iload_2 + x: invokespecial #x // Method java/lang/Enum."<init>":(Ljava/lang/String;I)V + x: return + LineNumberTable: + LocalVariableTable: + Start Length Slot Name Signature + 0 7 0 this Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + Signature: #x // ()V + + private static com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple[] $values(); + descriptor: ()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC + Code: + stack=4, locals=0, args_size=0 + x: iconst_2 + x: anewarray #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple + x: dup + x: iconst_0 + x: getstatic #x // Field CAT:Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + x: aastore + x: dup + x: iconst_1 + x: getstatic #x // Field DOG:Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + x: aastore + x: areturn + LineNumberTable: + + static {}; + descriptor: ()V + flags: (0x0008) ACC_STATIC + Code: + stack=4, locals=0, args_size=0 + x: new #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple + x: dup + x: ldc #x // String CAT + x: iconst_0 + x: invokespecial #x // Method "<init>":(Ljava/lang/String;I)V + x: putstatic #x // Field CAT:Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + x: new #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple + x: dup + x: ldc #x // String DOG + x: iconst_1 + x: invokespecial #x // Method "<init>":(Ljava/lang/String;I)V + x: putstatic #x // Field DOG:Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + x: invokestatic #x // Method $values:()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + x: putstatic #x // Field $VALUES:[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + x: return + LineNumberTable: +} +Signature: #x // Ljava/lang/Enum<Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple;>; +SourceFile: "TinyFrameworkEnumSimple.java" +RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub ## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkExceptionTester.class Compiled from "TinyFrameworkExceptionTester.java" public class com.android.hoststubgen.test.tinyframework.TinyFrameworkExceptionTester diff --git a/tools/hoststubgen/hoststubgen/test-tiny-framework/golden-output/02-hoststubgen-test-tiny-framework-host-stub-dump.txt b/tools/hoststubgen/hoststubgen/test-tiny-framework/golden-output/02-hoststubgen-test-tiny-framework-host-stub-dump.txt index d7f0149494c0..df63815ea0ae 100644 --- a/tools/hoststubgen/hoststubgen/test-tiny-framework/golden-output/02-hoststubgen-test-tiny-framework-host-stub-dump.txt +++ b/tools/hoststubgen/hoststubgen/test-tiny-framework/golden-output/02-hoststubgen-test-tiny-framework-host-stub-dump.txt @@ -446,6 +446,230 @@ RuntimeInvisibleAnnotations: android.hosttest.annotation.HostSideTestStub x: #x() android.hosttest.annotation.HostSideTestStaticInitializerStub +## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex.class + Compiled from "TinyFrameworkEnumComplex.java" +public final class com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex extends java.lang.Enum<com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex> + minor version: 0 + major version: 61 + flags: (0x4031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER, ACC_ENUM + this_class: #x // com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex + super_class: #x // java/lang/Enum + interfaces: 0, fields: 4, methods: 7, attributes: 4 + public static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex RED; + descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + public static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex GREEN; + descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + public static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex BLUE; + descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + private static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex[] $VALUES; + descriptor: [Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x101a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC + + public static com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex[] values(); + descriptor: ()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x0009) ACC_PUBLIC, ACC_STATIC + Code: + stack=3, locals=0, args_size=0 + x: new #x // class java/lang/RuntimeException + x: dup + x: ldc #x // String Stub! + x: invokespecial #x // Method java/lang/RuntimeException."<init>":(Ljava/lang/String;)V + x: athrow + + public static com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex valueOf(java.lang.String); + descriptor: (Ljava/lang/String;)Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x0009) ACC_PUBLIC, ACC_STATIC + Code: + stack=3, locals=1, args_size=1 + x: new #x // class java/lang/RuntimeException + x: dup + x: ldc #x // String Stub! + x: invokespecial #x // Method java/lang/RuntimeException."<init>":(Ljava/lang/String;)V + x: athrow + + private com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex(java.lang.String, java.lang.String); + descriptor: (Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V + flags: (0x0002) ACC_PRIVATE + Code: + stack=3, locals=5, args_size=5 + x: new #x // class java/lang/RuntimeException + x: dup + x: ldc #x // String Stub! + x: invokespecial #x // Method java/lang/RuntimeException."<init>":(Ljava/lang/String;)V + x: athrow + Signature: #x // (Ljava/lang/String;Ljava/lang/String;)V + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + public java.lang.String getLongName(); + descriptor: ()Ljava/lang/String; + flags: (0x0001) ACC_PUBLIC + Code: + stack=3, locals=1, args_size=1 + x: new #x // class java/lang/RuntimeException + x: dup + x: ldc #x // String Stub! + x: invokespecial #x // Method java/lang/RuntimeException."<init>":(Ljava/lang/String;)V + x: athrow + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + public java.lang.String getShortName(); + descriptor: ()Ljava/lang/String; + flags: (0x0001) ACC_PUBLIC + Code: + stack=3, locals=1, args_size=1 + x: new #x // class java/lang/RuntimeException + x: dup + x: ldc #x // String Stub! + x: invokespecial #x // Method java/lang/RuntimeException."<init>":(Ljava/lang/String;)V + x: athrow + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + private static com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex[] $values(); + descriptor: ()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC + Code: + stack=3, locals=0, args_size=0 + x: new #x // class java/lang/RuntimeException + x: dup + x: ldc #x // String Stub! + x: invokespecial #x // Method java/lang/RuntimeException."<init>":(Ljava/lang/String;)V + x: athrow + + static {}; + descriptor: ()V + flags: (0x0008) ACC_STATIC + Code: + stack=3, locals=0, args_size=0 + x: new #x // class java/lang/RuntimeException + x: dup + x: ldc #x // String Stub! + x: invokespecial #x // Method java/lang/RuntimeException."<init>":(Ljava/lang/String;)V + x: athrow +} +Signature: #x // Ljava/lang/Enum<Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex;>; +SourceFile: "TinyFrameworkEnumComplex.java" +RuntimeVisibleAnnotations: + x: #x() + com.android.hoststubgen.hosthelper.HostStubGenProcessedStubClass + x: #x() + com.android.hoststubgen.hosthelper.HostStubGenProcessedKeepClass +RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub +## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple.class + Compiled from "TinyFrameworkEnumSimple.java" +public final class com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple extends java.lang.Enum<com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple> + minor version: 0 + major version: 61 + flags: (0x4031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER, ACC_ENUM + this_class: #x // com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple + super_class: #x // java/lang/Enum + interfaces: 0, fields: 3, methods: 5, attributes: 4 + public static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple CAT; + descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + public static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple DOG; + descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + private static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple[] $VALUES; + descriptor: [Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + flags: (0x101a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC + + public static com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple[] values(); + descriptor: ()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + flags: (0x0009) ACC_PUBLIC, ACC_STATIC + Code: + stack=3, locals=0, args_size=0 + x: new #x // class java/lang/RuntimeException + x: dup + x: ldc #x // String Stub! + x: invokespecial #x // Method java/lang/RuntimeException."<init>":(Ljava/lang/String;)V + x: athrow + + public static com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple valueOf(java.lang.String); + descriptor: (Ljava/lang/String;)Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + flags: (0x0009) ACC_PUBLIC, ACC_STATIC + Code: + stack=3, locals=1, args_size=1 + x: new #x // class java/lang/RuntimeException + x: dup + x: ldc #x // String Stub! + x: invokespecial #x // Method java/lang/RuntimeException."<init>":(Ljava/lang/String;)V + x: athrow + + private com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple(); + descriptor: (Ljava/lang/String;I)V + flags: (0x0002) ACC_PRIVATE + Code: + stack=3, locals=3, args_size=3 + x: new #x // class java/lang/RuntimeException + x: dup + x: ldc #x // String Stub! + x: invokespecial #x // Method java/lang/RuntimeException."<init>":(Ljava/lang/String;)V + x: athrow + Signature: #x // ()V + + private static com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple[] $values(); + descriptor: ()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC + Code: + stack=3, locals=0, args_size=0 + x: new #x // class java/lang/RuntimeException + x: dup + x: ldc #x // String Stub! + x: invokespecial #x // Method java/lang/RuntimeException."<init>":(Ljava/lang/String;)V + x: athrow + + static {}; + descriptor: ()V + flags: (0x0008) ACC_STATIC + Code: + stack=3, locals=0, args_size=0 + x: new #x // class java/lang/RuntimeException + x: dup + x: ldc #x // String Stub! + x: invokespecial #x // Method java/lang/RuntimeException."<init>":(Ljava/lang/String;)V + x: athrow +} +Signature: #x // Ljava/lang/Enum<Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple;>; +SourceFile: "TinyFrameworkEnumSimple.java" +RuntimeVisibleAnnotations: + x: #x() + com.android.hoststubgen.hosthelper.HostStubGenProcessedStubClass + x: #x() + com.android.hoststubgen.hosthelper.HostStubGenProcessedKeepClass +RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub ## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkExceptionTester.class Compiled from "TinyFrameworkExceptionTester.java" public class com.android.hoststubgen.test.tinyframework.TinyFrameworkExceptionTester diff --git a/tools/hoststubgen/hoststubgen/test-tiny-framework/golden-output/03-hoststubgen-test-tiny-framework-host-impl-dump.txt b/tools/hoststubgen/hoststubgen/test-tiny-framework/golden-output/03-hoststubgen-test-tiny-framework-host-impl-dump.txt index 131e0b1f8b48..2218d8d0b2e1 100644 --- a/tools/hoststubgen/hoststubgen/test-tiny-framework/golden-output/03-hoststubgen-test-tiny-framework-host-impl-dump.txt +++ b/tools/hoststubgen/hoststubgen/test-tiny-framework/golden-output/03-hoststubgen-test-tiny-framework-host-impl-dump.txt @@ -798,6 +798,324 @@ RuntimeInvisibleAnnotations: android.hosttest.annotation.HostSideTestStub x: #x() android.hosttest.annotation.HostSideTestStaticInitializerStub +## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex.class + Compiled from "TinyFrameworkEnumComplex.java" +public final class com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex extends java.lang.Enum<com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex> + minor version: 0 + major version: 61 + flags: (0x4031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER, ACC_ENUM + this_class: #x // com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex + super_class: #x // java/lang/Enum + interfaces: 0, fields: 6, methods: 7, attributes: 4 + public static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex RED; + descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + public static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex GREEN; + descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + public static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex BLUE; + descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + private final java.lang.String mLongName; + descriptor: Ljava/lang/String; + flags: (0x0012) ACC_PRIVATE, ACC_FINAL + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestKeep + + private final java.lang.String mShortName; + descriptor: Ljava/lang/String; + flags: (0x0012) ACC_PRIVATE, ACC_FINAL + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestKeep + + private static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex[] $VALUES; + descriptor: [Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x101a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC + + public static com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex[] values(); + descriptor: ()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x0009) ACC_PUBLIC, ACC_STATIC + Code: + stack=1, locals=0, args_size=0 + x: getstatic #x // Field $VALUES:[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + x: invokevirtual #x // Method "[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex;".clone:()Ljava/lang/Object; + x: checkcast #x // class "[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex;" + x: areturn + LineNumberTable: + + public static com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex valueOf(java.lang.String); + descriptor: (Ljava/lang/String;)Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x0009) ACC_PUBLIC, ACC_STATIC + Code: + stack=2, locals=1, args_size=1 + x: ldc #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex + x: aload_0 + x: invokestatic #x // Method java/lang/Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum; + x: checkcast #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex + x: areturn + LineNumberTable: + LocalVariableTable: + Start Length Slot Name Signature + 0 10 0 name Ljava/lang/String; + + private com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex(java.lang.String, java.lang.String); + descriptor: (Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V + flags: (0x0002) ACC_PRIVATE + Code: + stack=3, locals=5, args_size=5 + x: aload_0 + x: aload_1 + x: iload_2 + x: invokespecial #x // Method java/lang/Enum."<init>":(Ljava/lang/String;I)V + x: aload_0 + x: aload_3 + x: putfield #x // Field mLongName:Ljava/lang/String; + x: aload_0 + x: aload 4 + x: putfield #x // Field mShortName:Ljava/lang/String; + x: return + LineNumberTable: + LocalVariableTable: + Start Length Slot Name Signature + 0 18 0 this Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + 0 18 3 longName Ljava/lang/String; + 0 18 4 shortName Ljava/lang/String; + Signature: #x // (Ljava/lang/String;Ljava/lang/String;)V + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + public java.lang.String getLongName(); + descriptor: ()Ljava/lang/String; + flags: (0x0001) ACC_PUBLIC + Code: + stack=1, locals=1, args_size=1 + x: aload_0 + x: getfield #x // Field mLongName:Ljava/lang/String; + x: areturn + LineNumberTable: + LocalVariableTable: + Start Length Slot Name Signature + 0 5 0 this Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + public java.lang.String getShortName(); + descriptor: ()Ljava/lang/String; + flags: (0x0001) ACC_PUBLIC + Code: + stack=1, locals=1, args_size=1 + x: aload_0 + x: getfield #x // Field mShortName:Ljava/lang/String; + x: areturn + LineNumberTable: + LocalVariableTable: + Start Length Slot Name Signature + 0 5 0 this Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + private static com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex[] $values(); + descriptor: ()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC + Code: + stack=4, locals=0, args_size=0 + x: iconst_3 + x: anewarray #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex + x: dup + x: iconst_0 + x: getstatic #x // Field RED:Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + x: aastore + x: dup + x: iconst_1 + x: getstatic #x // Field GREEN:Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + x: aastore + x: dup + x: iconst_2 + x: getstatic #x // Field BLUE:Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + x: aastore + x: areturn + LineNumberTable: + + static {}; + descriptor: ()V + flags: (0x0008) ACC_STATIC + Code: + stack=6, locals=0, args_size=0 + x: new #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex + x: dup + x: ldc #x // String RED + x: iconst_0 + x: ldc #x // String Red + x: ldc #x // String R + x: invokespecial #x // Method "<init>":(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V + x: putstatic #x // Field RED:Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + x: new #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex + x: dup + x: ldc #x // String GREEN + x: iconst_1 + x: ldc #x // String Green + x: ldc #x // String G + x: invokespecial #x // Method "<init>":(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V + x: putstatic #x // Field GREEN:Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + x: new #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex + x: dup + x: ldc #x // String BLUE + x: iconst_2 + x: ldc #x // String Blue + x: ldc #x // String B + x: invokespecial #x // Method "<init>":(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V + x: putstatic #x // Field BLUE:Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + x: invokestatic #x // Method $values:()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + x: putstatic #x // Field $VALUES:[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + x: return + LineNumberTable: +} +Signature: #x // Ljava/lang/Enum<Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex;>; +SourceFile: "TinyFrameworkEnumComplex.java" +RuntimeVisibleAnnotations: + x: #x() + com.android.hoststubgen.hosthelper.HostStubGenProcessedStubClass + x: #x() + com.android.hoststubgen.hosthelper.HostStubGenProcessedKeepClass +RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub +## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple.class + Compiled from "TinyFrameworkEnumSimple.java" +public final class com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple extends java.lang.Enum<com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple> + minor version: 0 + major version: 61 + flags: (0x4031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER, ACC_ENUM + this_class: #x // com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple + super_class: #x // java/lang/Enum + interfaces: 0, fields: 3, methods: 5, attributes: 4 + public static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple CAT; + descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + public static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple DOG; + descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + private static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple[] $VALUES; + descriptor: [Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + flags: (0x101a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC + + public static com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple[] values(); + descriptor: ()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + flags: (0x0009) ACC_PUBLIC, ACC_STATIC + Code: + stack=1, locals=0, args_size=0 + x: getstatic #x // Field $VALUES:[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + x: invokevirtual #x // Method "[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple;".clone:()Ljava/lang/Object; + x: checkcast #x // class "[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple;" + x: areturn + LineNumberTable: + + public static com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple valueOf(java.lang.String); + descriptor: (Ljava/lang/String;)Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + flags: (0x0009) ACC_PUBLIC, ACC_STATIC + Code: + stack=2, locals=1, args_size=1 + x: ldc #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple + x: aload_0 + x: invokestatic #x // Method java/lang/Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum; + x: checkcast #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple + x: areturn + LineNumberTable: + LocalVariableTable: + Start Length Slot Name Signature + 0 10 0 name Ljava/lang/String; + + private com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple(); + descriptor: (Ljava/lang/String;I)V + flags: (0x0002) ACC_PRIVATE + Code: + stack=3, locals=3, args_size=3 + x: aload_0 + x: aload_1 + x: iload_2 + x: invokespecial #x // Method java/lang/Enum."<init>":(Ljava/lang/String;I)V + x: return + LineNumberTable: + LocalVariableTable: + Start Length Slot Name Signature + 0 7 0 this Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + Signature: #x // ()V + + private static com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple[] $values(); + descriptor: ()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC + Code: + stack=4, locals=0, args_size=0 + x: iconst_2 + x: anewarray #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple + x: dup + x: iconst_0 + x: getstatic #x // Field CAT:Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + x: aastore + x: dup + x: iconst_1 + x: getstatic #x // Field DOG:Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + x: aastore + x: areturn + LineNumberTable: + + static {}; + descriptor: ()V + flags: (0x0008) ACC_STATIC + Code: + stack=4, locals=0, args_size=0 + x: new #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple + x: dup + x: ldc #x // String CAT + x: iconst_0 + x: invokespecial #x // Method "<init>":(Ljava/lang/String;I)V + x: putstatic #x // Field CAT:Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + x: new #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple + x: dup + x: ldc #x // String DOG + x: iconst_1 + x: invokespecial #x // Method "<init>":(Ljava/lang/String;I)V + x: putstatic #x // Field DOG:Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + x: invokestatic #x // Method $values:()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + x: putstatic #x // Field $VALUES:[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + x: return + LineNumberTable: +} +Signature: #x // Ljava/lang/Enum<Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple;>; +SourceFile: "TinyFrameworkEnumSimple.java" +RuntimeVisibleAnnotations: + x: #x() + com.android.hoststubgen.hosthelper.HostStubGenProcessedStubClass + x: #x() + com.android.hoststubgen.hosthelper.HostStubGenProcessedKeepClass +RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub ## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkExceptionTester.class Compiled from "TinyFrameworkExceptionTester.java" public class com.android.hoststubgen.test.tinyframework.TinyFrameworkExceptionTester diff --git a/tools/hoststubgen/hoststubgen/test-tiny-framework/golden-output/12-hoststubgen-test-tiny-framework-host-ext-stub-dump.txt b/tools/hoststubgen/hoststubgen/test-tiny-framework/golden-output/12-hoststubgen-test-tiny-framework-host-ext-stub-dump.txt index d7f0149494c0..df63815ea0ae 100644 --- a/tools/hoststubgen/hoststubgen/test-tiny-framework/golden-output/12-hoststubgen-test-tiny-framework-host-ext-stub-dump.txt +++ b/tools/hoststubgen/hoststubgen/test-tiny-framework/golden-output/12-hoststubgen-test-tiny-framework-host-ext-stub-dump.txt @@ -446,6 +446,230 @@ RuntimeInvisibleAnnotations: android.hosttest.annotation.HostSideTestStub x: #x() android.hosttest.annotation.HostSideTestStaticInitializerStub +## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex.class + Compiled from "TinyFrameworkEnumComplex.java" +public final class com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex extends java.lang.Enum<com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex> + minor version: 0 + major version: 61 + flags: (0x4031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER, ACC_ENUM + this_class: #x // com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex + super_class: #x // java/lang/Enum + interfaces: 0, fields: 4, methods: 7, attributes: 4 + public static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex RED; + descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + public static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex GREEN; + descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + public static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex BLUE; + descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + private static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex[] $VALUES; + descriptor: [Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x101a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC + + public static com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex[] values(); + descriptor: ()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x0009) ACC_PUBLIC, ACC_STATIC + Code: + stack=3, locals=0, args_size=0 + x: new #x // class java/lang/RuntimeException + x: dup + x: ldc #x // String Stub! + x: invokespecial #x // Method java/lang/RuntimeException."<init>":(Ljava/lang/String;)V + x: athrow + + public static com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex valueOf(java.lang.String); + descriptor: (Ljava/lang/String;)Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x0009) ACC_PUBLIC, ACC_STATIC + Code: + stack=3, locals=1, args_size=1 + x: new #x // class java/lang/RuntimeException + x: dup + x: ldc #x // String Stub! + x: invokespecial #x // Method java/lang/RuntimeException."<init>":(Ljava/lang/String;)V + x: athrow + + private com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex(java.lang.String, java.lang.String); + descriptor: (Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V + flags: (0x0002) ACC_PRIVATE + Code: + stack=3, locals=5, args_size=5 + x: new #x // class java/lang/RuntimeException + x: dup + x: ldc #x // String Stub! + x: invokespecial #x // Method java/lang/RuntimeException."<init>":(Ljava/lang/String;)V + x: athrow + Signature: #x // (Ljava/lang/String;Ljava/lang/String;)V + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + public java.lang.String getLongName(); + descriptor: ()Ljava/lang/String; + flags: (0x0001) ACC_PUBLIC + Code: + stack=3, locals=1, args_size=1 + x: new #x // class java/lang/RuntimeException + x: dup + x: ldc #x // String Stub! + x: invokespecial #x // Method java/lang/RuntimeException."<init>":(Ljava/lang/String;)V + x: athrow + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + public java.lang.String getShortName(); + descriptor: ()Ljava/lang/String; + flags: (0x0001) ACC_PUBLIC + Code: + stack=3, locals=1, args_size=1 + x: new #x // class java/lang/RuntimeException + x: dup + x: ldc #x // String Stub! + x: invokespecial #x // Method java/lang/RuntimeException."<init>":(Ljava/lang/String;)V + x: athrow + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + private static com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex[] $values(); + descriptor: ()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC + Code: + stack=3, locals=0, args_size=0 + x: new #x // class java/lang/RuntimeException + x: dup + x: ldc #x // String Stub! + x: invokespecial #x // Method java/lang/RuntimeException."<init>":(Ljava/lang/String;)V + x: athrow + + static {}; + descriptor: ()V + flags: (0x0008) ACC_STATIC + Code: + stack=3, locals=0, args_size=0 + x: new #x // class java/lang/RuntimeException + x: dup + x: ldc #x // String Stub! + x: invokespecial #x // Method java/lang/RuntimeException."<init>":(Ljava/lang/String;)V + x: athrow +} +Signature: #x // Ljava/lang/Enum<Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex;>; +SourceFile: "TinyFrameworkEnumComplex.java" +RuntimeVisibleAnnotations: + x: #x() + com.android.hoststubgen.hosthelper.HostStubGenProcessedStubClass + x: #x() + com.android.hoststubgen.hosthelper.HostStubGenProcessedKeepClass +RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub +## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple.class + Compiled from "TinyFrameworkEnumSimple.java" +public final class com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple extends java.lang.Enum<com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple> + minor version: 0 + major version: 61 + flags: (0x4031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER, ACC_ENUM + this_class: #x // com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple + super_class: #x // java/lang/Enum + interfaces: 0, fields: 3, methods: 5, attributes: 4 + public static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple CAT; + descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + public static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple DOG; + descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + private static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple[] $VALUES; + descriptor: [Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + flags: (0x101a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC + + public static com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple[] values(); + descriptor: ()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + flags: (0x0009) ACC_PUBLIC, ACC_STATIC + Code: + stack=3, locals=0, args_size=0 + x: new #x // class java/lang/RuntimeException + x: dup + x: ldc #x // String Stub! + x: invokespecial #x // Method java/lang/RuntimeException."<init>":(Ljava/lang/String;)V + x: athrow + + public static com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple valueOf(java.lang.String); + descriptor: (Ljava/lang/String;)Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + flags: (0x0009) ACC_PUBLIC, ACC_STATIC + Code: + stack=3, locals=1, args_size=1 + x: new #x // class java/lang/RuntimeException + x: dup + x: ldc #x // String Stub! + x: invokespecial #x // Method java/lang/RuntimeException."<init>":(Ljava/lang/String;)V + x: athrow + + private com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple(); + descriptor: (Ljava/lang/String;I)V + flags: (0x0002) ACC_PRIVATE + Code: + stack=3, locals=3, args_size=3 + x: new #x // class java/lang/RuntimeException + x: dup + x: ldc #x // String Stub! + x: invokespecial #x // Method java/lang/RuntimeException."<init>":(Ljava/lang/String;)V + x: athrow + Signature: #x // ()V + + private static com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple[] $values(); + descriptor: ()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC + Code: + stack=3, locals=0, args_size=0 + x: new #x // class java/lang/RuntimeException + x: dup + x: ldc #x // String Stub! + x: invokespecial #x // Method java/lang/RuntimeException."<init>":(Ljava/lang/String;)V + x: athrow + + static {}; + descriptor: ()V + flags: (0x0008) ACC_STATIC + Code: + stack=3, locals=0, args_size=0 + x: new #x // class java/lang/RuntimeException + x: dup + x: ldc #x // String Stub! + x: invokespecial #x // Method java/lang/RuntimeException."<init>":(Ljava/lang/String;)V + x: athrow +} +Signature: #x // Ljava/lang/Enum<Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple;>; +SourceFile: "TinyFrameworkEnumSimple.java" +RuntimeVisibleAnnotations: + x: #x() + com.android.hoststubgen.hosthelper.HostStubGenProcessedStubClass + x: #x() + com.android.hoststubgen.hosthelper.HostStubGenProcessedKeepClass +RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub ## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkExceptionTester.class Compiled from "TinyFrameworkExceptionTester.java" public class com.android.hoststubgen.test.tinyframework.TinyFrameworkExceptionTester diff --git a/tools/hoststubgen/hoststubgen/test-tiny-framework/golden-output/13-hoststubgen-test-tiny-framework-host-ext-impl-dump.txt b/tools/hoststubgen/hoststubgen/test-tiny-framework/golden-output/13-hoststubgen-test-tiny-framework-host-ext-impl-dump.txt index 3318c7de13f9..3ac9c6a816f1 100644 --- a/tools/hoststubgen/hoststubgen/test-tiny-framework/golden-output/13-hoststubgen-test-tiny-framework-host-ext-impl-dump.txt +++ b/tools/hoststubgen/hoststubgen/test-tiny-framework/golden-output/13-hoststubgen-test-tiny-framework-host-ext-impl-dump.txt @@ -1046,6 +1046,390 @@ RuntimeInvisibleAnnotations: android.hosttest.annotation.HostSideTestStub x: #x() android.hosttest.annotation.HostSideTestStaticInitializerStub +## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex.class + Compiled from "TinyFrameworkEnumComplex.java" +public final class com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex extends java.lang.Enum<com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex> + minor version: 0 + major version: 61 + flags: (0x4031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER, ACC_ENUM + this_class: #x // com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex + super_class: #x // java/lang/Enum + interfaces: 0, fields: 6, methods: 7, attributes: 4 + public static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex RED; + descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + public static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex GREEN; + descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + public static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex BLUE; + descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + private final java.lang.String mLongName; + descriptor: Ljava/lang/String; + flags: (0x0012) ACC_PRIVATE, ACC_FINAL + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestKeep + + private final java.lang.String mShortName; + descriptor: Ljava/lang/String; + flags: (0x0012) ACC_PRIVATE, ACC_FINAL + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestKeep + + private static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex[] $VALUES; + descriptor: [Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x101a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC + + public static com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex[] values(); + descriptor: ()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x0009) ACC_PUBLIC, ACC_STATIC + Code: + stack=4, locals=0, args_size=0 + x: ldc #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex + x: ldc #x // String values + x: ldc #x // String ()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + x: ldc #x // String com.android.hoststubgen.hosthelper.HostTestUtils.logMethodCall + x: invokestatic #x // Method com/android/hoststubgen/hosthelper/HostTestUtils.callMethodCallHook:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + x: getstatic #x // Field $VALUES:[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + x: invokevirtual #x // Method "[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex;".clone:()Ljava/lang/Object; + x: checkcast #x // class "[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex;" + x: areturn + LineNumberTable: + + public static com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex valueOf(java.lang.String); + descriptor: (Ljava/lang/String;)Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x0009) ACC_PUBLIC, ACC_STATIC + Code: + stack=4, locals=1, args_size=1 + x: ldc #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex + x: ldc #x // String valueOf + x: ldc #x // String (Ljava/lang/String;)Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + x: ldc #x // String com.android.hoststubgen.hosthelper.HostTestUtils.logMethodCall + x: invokestatic #x // Method com/android/hoststubgen/hosthelper/HostTestUtils.callMethodCallHook:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + x: ldc #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex + x: aload_0 + x: invokestatic #x // Method java/lang/Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum; + x: checkcast #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex + x: areturn + LineNumberTable: + LocalVariableTable: + Start Length Slot Name Signature + 11 10 0 name Ljava/lang/String; + + private com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex(java.lang.String, java.lang.String); + descriptor: (Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V + flags: (0x0002) ACC_PRIVATE + Code: + stack=4, locals=5, args_size=5 + x: ldc #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex + x: ldc #x // String <init> + x: ldc #x // String (Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V + x: ldc #x // String com.android.hoststubgen.hosthelper.HostTestUtils.logMethodCall + x: invokestatic #x // Method com/android/hoststubgen/hosthelper/HostTestUtils.callMethodCallHook:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + x: aload_0 + x: aload_1 + x: iload_2 + x: invokespecial #x // Method java/lang/Enum."<init>":(Ljava/lang/String;I)V + x: aload_0 + x: aload_3 + x: putfield #x // Field mLongName:Ljava/lang/String; + x: aload_0 + x: aload 4 + x: putfield #x // Field mShortName:Ljava/lang/String; + x: return + LineNumberTable: + LocalVariableTable: + Start Length Slot Name Signature + 11 18 0 this Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + 11 18 3 longName Ljava/lang/String; + 11 18 4 shortName Ljava/lang/String; + Signature: #x // (Ljava/lang/String;Ljava/lang/String;)V + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + public java.lang.String getLongName(); + descriptor: ()Ljava/lang/String; + flags: (0x0001) ACC_PUBLIC + Code: + stack=4, locals=1, args_size=1 + x: ldc #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex + x: ldc #x // String getLongName + x: ldc #x // String ()Ljava/lang/String; + x: ldc #x // String com.android.hoststubgen.hosthelper.HostTestUtils.logMethodCall + x: invokestatic #x // Method com/android/hoststubgen/hosthelper/HostTestUtils.callMethodCallHook:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + x: aload_0 + x: getfield #x // Field mLongName:Ljava/lang/String; + x: areturn + LineNumberTable: + LocalVariableTable: + Start Length Slot Name Signature + 11 5 0 this Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + public java.lang.String getShortName(); + descriptor: ()Ljava/lang/String; + flags: (0x0001) ACC_PUBLIC + Code: + stack=4, locals=1, args_size=1 + x: ldc #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex + x: ldc #x // String getShortName + x: ldc #x // String ()Ljava/lang/String; + x: ldc #x // String com.android.hoststubgen.hosthelper.HostTestUtils.logMethodCall + x: invokestatic #x // Method com/android/hoststubgen/hosthelper/HostTestUtils.callMethodCallHook:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + x: aload_0 + x: getfield #x // Field mShortName:Ljava/lang/String; + x: areturn + LineNumberTable: + LocalVariableTable: + Start Length Slot Name Signature + 11 5 0 this Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + private static com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumComplex[] $values(); + descriptor: ()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC + Code: + stack=4, locals=0, args_size=0 + x: ldc #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex + x: ldc #x // String $values + x: ldc #x // String ()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + x: ldc #x // String com.android.hoststubgen.hosthelper.HostTestUtils.logMethodCall + x: invokestatic #x // Method com/android/hoststubgen/hosthelper/HostTestUtils.callMethodCallHook:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + x: iconst_3 + x: anewarray #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex + x: dup + x: iconst_0 + x: getstatic #x // Field RED:Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + x: aastore + x: dup + x: iconst_1 + x: getstatic #x // Field GREEN:Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + x: aastore + x: dup + x: iconst_2 + x: getstatic #x // Field BLUE:Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + x: aastore + x: areturn + LineNumberTable: + + static {}; + descriptor: ()V + flags: (0x0008) ACC_STATIC + Code: + stack=6, locals=0, args_size=0 + x: ldc #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex + x: ldc #x // String <clinit> + x: ldc #x // String ()V + x: ldc #x // String com.android.hoststubgen.hosthelper.HostTestUtils.logMethodCall + x: invokestatic #x // Method com/android/hoststubgen/hosthelper/HostTestUtils.callMethodCallHook:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + x: ldc #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex + x: ldc #x // String com.android.hoststubgen.hosthelper.HostTestUtils.logClassLoaded + x: invokestatic #x // Method com/android/hoststubgen/hosthelper/HostTestUtils.onClassLoaded:(Ljava/lang/Class;Ljava/lang/String;)V + x: new #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex + x: dup + x: ldc #x // String RED + x: iconst_0 + x: ldc #x // String Red + x: ldc #x // String R + x: invokespecial #x // Method "<init>":(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V + x: putstatic #x // Field RED:Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + x: new #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex + x: dup + x: ldc #x // String GREEN + x: iconst_1 + x: ldc #x // String Green + x: ldc #x // String G + x: invokespecial #x // Method "<init>":(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V + x: putstatic #x // Field GREEN:Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + x: new #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex + x: dup + x: ldc #x // String BLUE + x: iconst_2 + x: ldc #x // String Blue + x: ldc #x // String B + x: invokespecial #x // Method "<init>":(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V + x: putstatic #x // Field BLUE:Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + x: invokestatic #x // Method $values:()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + x: putstatic #x // Field $VALUES:[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex; + x: return + LineNumberTable: +} +Signature: #x // Ljava/lang/Enum<Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex;>; +SourceFile: "TinyFrameworkEnumComplex.java" +RuntimeVisibleAnnotations: + x: #x() + com.android.hoststubgen.hosthelper.HostStubGenProcessedStubClass + x: #x() + com.android.hoststubgen.hosthelper.HostStubGenProcessedKeepClass +RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub +## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple.class + Compiled from "TinyFrameworkEnumSimple.java" +public final class com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple extends java.lang.Enum<com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple> + minor version: 0 + major version: 61 + flags: (0x4031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER, ACC_ENUM + this_class: #x // com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple + super_class: #x // java/lang/Enum + interfaces: 0, fields: 3, methods: 5, attributes: 4 + public static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple CAT; + descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + public static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple DOG; + descriptor: Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM + RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub + + private static final com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple[] $VALUES; + descriptor: [Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + flags: (0x101a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC + + public static com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple[] values(); + descriptor: ()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + flags: (0x0009) ACC_PUBLIC, ACC_STATIC + Code: + stack=4, locals=0, args_size=0 + x: ldc #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple + x: ldc #x // String values + x: ldc #x // String ()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + x: ldc #x // String com.android.hoststubgen.hosthelper.HostTestUtils.logMethodCall + x: invokestatic #x // Method com/android/hoststubgen/hosthelper/HostTestUtils.callMethodCallHook:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + x: getstatic #x // Field $VALUES:[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + x: invokevirtual #x // Method "[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple;".clone:()Ljava/lang/Object; + x: checkcast #x // class "[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple;" + x: areturn + LineNumberTable: + + public static com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple valueOf(java.lang.String); + descriptor: (Ljava/lang/String;)Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + flags: (0x0009) ACC_PUBLIC, ACC_STATIC + Code: + stack=4, locals=1, args_size=1 + x: ldc #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple + x: ldc #x // String valueOf + x: ldc #x // String (Ljava/lang/String;)Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + x: ldc #x // String com.android.hoststubgen.hosthelper.HostTestUtils.logMethodCall + x: invokestatic #x // Method com/android/hoststubgen/hosthelper/HostTestUtils.callMethodCallHook:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + x: ldc #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple + x: aload_0 + x: invokestatic #x // Method java/lang/Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum; + x: checkcast #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple + x: areturn + LineNumberTable: + LocalVariableTable: + Start Length Slot Name Signature + 11 10 0 name Ljava/lang/String; + + private com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple(); + descriptor: (Ljava/lang/String;I)V + flags: (0x0002) ACC_PRIVATE + Code: + stack=4, locals=3, args_size=3 + x: ldc #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple + x: ldc #x // String <init> + x: ldc #x // String (Ljava/lang/String;I)V + x: ldc #x // String com.android.hoststubgen.hosthelper.HostTestUtils.logMethodCall + x: invokestatic #x // Method com/android/hoststubgen/hosthelper/HostTestUtils.callMethodCallHook:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + x: aload_0 + x: aload_1 + x: iload_2 + x: invokespecial #x // Method java/lang/Enum."<init>":(Ljava/lang/String;I)V + x: return + LineNumberTable: + LocalVariableTable: + Start Length Slot Name Signature + 11 7 0 this Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + Signature: #x // ()V + + private static com.android.hoststubgen.test.tinyframework.TinyFrameworkEnumSimple[] $values(); + descriptor: ()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC + Code: + stack=4, locals=0, args_size=0 + x: ldc #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple + x: ldc #x // String $values + x: ldc #x // String ()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + x: ldc #x // String com.android.hoststubgen.hosthelper.HostTestUtils.logMethodCall + x: invokestatic #x // Method com/android/hoststubgen/hosthelper/HostTestUtils.callMethodCallHook:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + x: iconst_2 + x: anewarray #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple + x: dup + x: iconst_0 + x: getstatic #x // Field CAT:Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + x: aastore + x: dup + x: iconst_1 + x: getstatic #x // Field DOG:Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + x: aastore + x: areturn + LineNumberTable: + + static {}; + descriptor: ()V + flags: (0x0008) ACC_STATIC + Code: + stack=4, locals=0, args_size=0 + x: ldc #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple + x: ldc #x // String <clinit> + x: ldc #x // String ()V + x: ldc #x // String com.android.hoststubgen.hosthelper.HostTestUtils.logMethodCall + x: invokestatic #x // Method com/android/hoststubgen/hosthelper/HostTestUtils.callMethodCallHook:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + x: ldc #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple + x: ldc #x // String com.android.hoststubgen.hosthelper.HostTestUtils.logClassLoaded + x: invokestatic #x // Method com/android/hoststubgen/hosthelper/HostTestUtils.onClassLoaded:(Ljava/lang/Class;Ljava/lang/String;)V + x: new #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple + x: dup + x: ldc #x // String CAT + x: iconst_0 + x: invokespecial #x // Method "<init>":(Ljava/lang/String;I)V + x: putstatic #x // Field CAT:Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + x: new #x // class com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple + x: dup + x: ldc #x // String DOG + x: iconst_1 + x: invokespecial #x // Method "<init>":(Ljava/lang/String;I)V + x: putstatic #x // Field DOG:Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + x: invokestatic #x // Method $values:()[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + x: putstatic #x // Field $VALUES:[Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple; + x: return + LineNumberTable: +} +Signature: #x // Ljava/lang/Enum<Lcom/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple;>; +SourceFile: "TinyFrameworkEnumSimple.java" +RuntimeVisibleAnnotations: + x: #x() + com.android.hoststubgen.hosthelper.HostStubGenProcessedStubClass + x: #x() + com.android.hoststubgen.hosthelper.HostStubGenProcessedKeepClass +RuntimeInvisibleAnnotations: + x: #x() + android.hosttest.annotation.HostSideTestStub ## Class: com/android/hoststubgen/test/tinyframework/TinyFrameworkExceptionTester.class Compiled from "TinyFrameworkExceptionTester.java" public class com.android.hoststubgen.test.tinyframework.TinyFrameworkExceptionTester diff --git a/tools/hoststubgen/hoststubgen/test-tiny-framework/run-test-manually.sh b/tools/hoststubgen/hoststubgen/test-tiny-framework/run-test-manually.sh index e212890592ff..872bbf878de4 100755 --- a/tools/hoststubgen/hoststubgen/test-tiny-framework/run-test-manually.sh +++ b/tools/hoststubgen/hoststubgen/test-tiny-framework/run-test-manually.sh @@ -93,6 +93,7 @@ run $HOSTSTUBGEN \ --gen-keep-all-file out/tiny-framework_keep_all.txt \ --gen-input-dump-file out/tiny-framework_dump.txt \ --package-redirect com.unsupported:com.supported \ + --annotation-allowed-classes-file annotation-allowed-classes-tiny-framework.txt \ $HOSTSTUBGEN_OPTS # Extract the jar files, so we can look into them. diff --git a/tools/hoststubgen/hoststubgen/test-tiny-framework/tiny-framework/src/com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex.java b/tools/hoststubgen/hoststubgen/test-tiny-framework/tiny-framework/src/com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex.java new file mode 100644 index 000000000000..51f48188fe74 --- /dev/null +++ b/tools/hoststubgen/hoststubgen/test-tiny-framework/tiny-framework/src/com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumComplex.java @@ -0,0 +1,51 @@ +/* + * 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.hoststubgen.test.tinyframework; + +import android.hosttest.annotation.HostSideTestKeep; +import android.hosttest.annotation.HostSideTestStub; + +@HostSideTestStub +public enum TinyFrameworkEnumComplex { + @HostSideTestStub + RED("Red", "R"), + @HostSideTestStub + GREEN("Green", "G"), + @HostSideTestStub + BLUE("Blue", "B"); + + @HostSideTestKeep + private final String mLongName; + + @HostSideTestKeep + private final String mShortName; + + @HostSideTestStub + TinyFrameworkEnumComplex(String longName, String shortName) { + mLongName = longName; + mShortName = shortName; + } + + @HostSideTestStub + public String getLongName() { + return mLongName; + } + + @HostSideTestStub + public String getShortName() { + return mShortName; + } +} diff --git a/tools/hoststubgen/hoststubgen/test-tiny-framework/tiny-framework/src/com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple.java b/tools/hoststubgen/hoststubgen/test-tiny-framework/tiny-framework/src/com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple.java new file mode 100644 index 000000000000..f440d8667fb4 --- /dev/null +++ b/tools/hoststubgen/hoststubgen/test-tiny-framework/tiny-framework/src/com/android/hoststubgen/test/tinyframework/TinyFrameworkEnumSimple.java @@ -0,0 +1,26 @@ +/* + * 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.hoststubgen.test.tinyframework; + +import android.hosttest.annotation.HostSideTestStub; + +@HostSideTestStub +public enum TinyFrameworkEnumSimple { + @HostSideTestStub + CAT, + @HostSideTestStub + DOG, +} diff --git a/tools/hoststubgen/hoststubgen/test-tiny-framework/tiny-test/src/com/android/hoststubgen/test/tinyframework/TinyFrameworkClassTest.java b/tools/hoststubgen/hoststubgen/test-tiny-framework/tiny-test/src/com/android/hoststubgen/test/tinyframework/TinyFrameworkClassTest.java index 29aabc702809..ecb181ba4bbf 100644 --- a/tools/hoststubgen/hoststubgen/test-tiny-framework/tiny-test/src/com/android/hoststubgen/test/tinyframework/TinyFrameworkClassTest.java +++ b/tools/hoststubgen/hoststubgen/test-tiny-framework/tiny-test/src/com/android/hoststubgen/test/tinyframework/TinyFrameworkClassTest.java @@ -199,4 +199,43 @@ public class TinyFrameworkClassTest { public void testPackageRedirect() throws Exception { assertThat(TinyFrameworkPackageRedirect.foo(1)).isEqualTo(1); } + + @Test + public void testEnumSimple() throws Exception { + assertThat(TinyFrameworkEnumSimple.CAT.ordinal()).isEqualTo(0); + assertThat(TinyFrameworkEnumSimple.CAT.name()).isEqualTo("CAT"); + + assertThat(TinyFrameworkEnumSimple.DOG.ordinal()).isEqualTo(1); + assertThat(TinyFrameworkEnumSimple.DOG.name()).isEqualTo("DOG"); + + assertThat(TinyFrameworkEnumSimple.valueOf("DOG").ordinal()).isEqualTo(1); + + assertThat(TinyFrameworkEnumSimple.values()).isEqualTo( + new TinyFrameworkEnumSimple[] { + TinyFrameworkEnumSimple.CAT, + TinyFrameworkEnumSimple.DOG, + } + ); + } + + @Test + public void testEnumComplex() throws Exception { + assertThat(TinyFrameworkEnumComplex.RED.ordinal()).isEqualTo(0); + assertThat(TinyFrameworkEnumComplex.RED.name()).isEqualTo("RED"); + + assertThat(TinyFrameworkEnumComplex.RED.getShortName()).isEqualTo("R"); + + assertThat(TinyFrameworkEnumComplex.GREEN.ordinal()).isEqualTo(1); + assertThat(TinyFrameworkEnumComplex.GREEN.name()).isEqualTo("GREEN"); + + assertThat(TinyFrameworkEnumComplex.valueOf("BLUE").ordinal()).isEqualTo(2); + + assertThat(TinyFrameworkEnumComplex.values()).isEqualTo( + new TinyFrameworkEnumComplex[] { + TinyFrameworkEnumComplex.RED, + TinyFrameworkEnumComplex.GREEN, + TinyFrameworkEnumComplex.BLUE, + } + ); + } } diff --git a/tools/hoststubgen/hoststubgen/test/com/android/hoststubgen/utils/ClassFilterTest.kt b/tools/hoststubgen/hoststubgen/test/com/android/hoststubgen/utils/ClassFilterTest.kt new file mode 100644 index 000000000000..f6515142ccdb --- /dev/null +++ b/tools/hoststubgen/hoststubgen/test/com/android/hoststubgen/utils/ClassFilterTest.kt @@ -0,0 +1,87 @@ +/* + * 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.hoststubgen.utils + +import com.android.hoststubgen.ParseException +import com.google.common.truth.Truth.assertThat +import org.junit.Assert.fail +import org.junit.Test + +class ClassFilterTest { + @Test + fun testDefaultTrue() { + val f = ClassFilter.newNullFilter(true) + assertThat(f.matches("a/b/c")).isEqualTo(true) + } + + @Test + fun testDefaultFalse() { + val f = ClassFilter.newNullFilter(false) + assertThat(f.matches("a/b/c")).isEqualTo(false) + } + + @Test + fun testComplex1() { + val f = ClassFilter.buildFromString(""" + # ** this is a comment ** + a.b.c # allow + !a.b.d # disallow + * # allow all + """.trimIndent(), false, "X") + assertThat(f.getCacheSizeForTest()).isEqualTo(0) + + assertThat(f.matches("a/b/c")).isEqualTo(true) + assertThat(f.getCacheSizeForTest()).isEqualTo(1) + + assertThat(f.matches("a/b/d")).isEqualTo(false) + assertThat(f.matches("x")).isEqualTo(true) + + assertThat(f.getCacheSizeForTest()).isEqualTo(3) + + // Make sure the cache is working + assertThat(f.matches("x")).isEqualTo(true) + } + + @Test + fun testComplex2() { + val f = ClassFilter.buildFromString(""" + a.b.c # allow + !a.* # disallow everything else in package "a". + !d.e.f # disallow d.e.f. + + # everything else is allowed by default + """.trimIndent(), true, "X") + assertThat(f.matches("a/b/c")).isEqualTo(true) + assertThat(f.matches("a/x")).isEqualTo(false) + assertThat(f.matches("d/e/f")).isEqualTo(false) + assertThat(f.matches("d/e/f/g")).isEqualTo(true) + assertThat(f.matches("x")).isEqualTo(true) + } + + @Test + fun testBadFilter1() { + try { + ClassFilter.buildFromString(""" + a* + """.trimIndent(), true, "FILENAME") + fail("ParseException didn't happen") + } catch (e: ParseException) { + assertThat(e.message).contains("Wildcard") + assertThat(e.message).contains("FILENAME") + assertThat(e.message).contains("line 1") + } + } +}
\ No newline at end of file diff --git a/tools/hoststubgen/scripts/run-all-tests.sh b/tools/hoststubgen/scripts/run-all-tests.sh index ba1d404eba68..4afa2d7a659a 100755 --- a/tools/hoststubgen/scripts/run-all-tests.sh +++ b/tools/hoststubgen/scripts/run-all-tests.sh @@ -33,6 +33,9 @@ MUST_BUILD_MODULES=( # First, build all the test / etc modules. This shouldn't fail. run m "${MUST_BUILD_MODULES[@]}" +# Run the hoststubgen unittests / etc +run atest hoststubgentest hoststubgen-invoke-test + # Next, run the golden check. This should always pass too. # The following scripts _should_ pass too, but they depend on the internal paths to soong generated # files, and they may fail when something changes in the build system. |